zoukankan      html  css  js  c++  java
  • 作业 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)
    
  • 相关阅读:
    单例模式
    dubbo环境搭建
    树莓派Zero W无键盘无屏幕初始化
    Arduino连接MPU6050陀螺仪
    Raspberry Pi3驱动Oled ssh1106屏
    SonarQube 7.7默认数据库连接方法
    解决SonarQube启动时直接挂掉问题
    解决sonar的ES无法启动问题
    Jenkins自动打包并部署(以java -jar形势运行)
    python3中OpenCV imwrite保存中文路径文件
  • 原文地址:https://www.cnblogs.com/pythonwl/p/12526457.html
Copyright © 2011-2022 走看看