• 作业 3/19


    作业要求:下述所有代码画图以及分析代码执行流程
    1、以定义阶段为准,先画出名称空间的嵌套关系图
    2、然后找到调用函数的位置,写出函数调用时代码的执行过程,涉及到名字的查找时,参照1中画好
    的嵌套图,标明查找顺序,一层一层直到找到位置

     ===================题目一===================
    input=333
    def func():
        input=444
    func()
    print(input)
    

    答:func() ——> def func(): 代码块 ——> 局部变量input = 444 ——> print(input) 全局变量 input = 333(打印333)

     ===================题目二===================
    def func():
        print(x)
    x=111
    
    func()
    

    答:func() ——> def func():代码块 ——> 全局变量:x =111 ——> print(x)

     ===================题目三===================
    x=1
    def func():
       print(x)
    
    
    def foo():
        x=222
        func()
    
    foo()
    

    答:foo() ——> 局部变量x = 222 ,func() ——> 全局变量x = 1 ,print(x)

     ===================题目四===================
    input=111
    def f1():
        def f2():
            # input=333
            print(input)
        input=222
        f2()
    
    f1()
    

    答:f1() ——> f2() ——> e层:input = 222 ——> print(input)

     ===================题目五===================
    x=111
    def func():
        print(x)
        x=222
    
    func()
    

    答:报错,x = 222 被标记成局部变量,使用前没有被赋值

     ===================题目六===================
    x=111
    
    def foo():
        print(x,)
    
    def bar():
        print(x)
    
    foo()
    bar()
    

    答:foo() ——> 全局变量x = 111 ——> print(x) ——> bar() ——> x = 111 ——> print(x)

     ===================题目七===================
    x=1
    def func2():
        func1()
    
    x=2
    def func1():
        print(x)
    
    x=3
    
    func2()
    

    答:x =1 ——> x = 2 ——> x = 3 ——> func2() ——> func1() ——> print(x)

    =题目八=
    1、如下全局变量记录了当前登录用户,编写登录功能,一旦用户登录成功,则将全局变量赋值为当前登录的用户名
    2、针对之前编写的查询余额的功能,添加额外的逻辑:如果用户没有登录,则先执行登录功能

    def login():
        global login_user
        while not login_user:
            with open('users.txt','r',encoding = 'utf-8') as f:
                user = input('请输入入账号:').strip()
                pwd = input('请输入密码:').strip()
                for line in f:
                    user1,pwd1 = line.strip().split(':')
                    if user == user1:
                        if pwd == pwd1:
                            login_user = user
                            print('登陆成功')
                            return
                        else:
                            print('登陆失败')
                            break
                else:
                    print('没有这个用户哦')
    
    
    def look_at_it(user):
        while not login_user:
            login()
        with open('db.txt','r',encoding = 'utf-8') as f1:
            for line in f1:
                user1, money = line.strip().split(':')
                if user == user1:
                    print('余额为:{}'.format(money))
                    return
            else:
                print('没有这个用户哦')
    
    
    login_user=None
    login()
    print(login_user)
    look_at_it(login_user)
    
  • 相关阅读:
    脑机接口不断迎来重大突破,“思想钢印”还会远吗?
    ICLR 2020 | 神经网络架构搜索(NAS)论文推荐
    人工智能理解常识的数十年挑战,如何让 AI 不再“智障”?
    You Are All Excellent 排序
    sort
    sort
    绝对值排序
    绝对值排序
    排序
    排序
  • 原文地址:https://www.cnblogs.com/pythonwl/p/12526457.html
Copyright © 2020-2023  润新知