• python第十五天作业


    作业要求:下述所有代码画图以及分析代码执行流程

      1、以定义阶段为准,先画出名称空间的嵌套关系图

      

      2、然后找到调用函数的位置,写出函数调用时代码的执行过程,涉及到名字的查找时,参照1中画好的嵌套图,标明查找顺序,一层一层直到找到位置

    1、

    input=333
    def func():
        input=444
    func()
    print(input)
    

    2、

    def func():
        print(x)
    x=111
    
    func()
    

    3、

    x=1
    def func():
       print(x)
    
    def foo():
        x=222
        func()
    
    foo()
    

    4、

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

    5、

    x=111
    def func():
        print(x) #
        x=222
    
    func()
    

    6、

    x=111
    
    def foo():
        print(x,)
    
    def bar():
        print(x)
    
    foo()
    bar()
    

    7、

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

    题目八

    1、如下全局变量记录了当前登录用户,编写登录功能,一旦用户登录成功,则将全局变量赋值为当前登录的用户名

    • login_user=None
    username = 'Lance'
    password = '123'
    login_user=None
    
    
    def login_func():
        user_name = input('输入账号:').strip()
        user_pwd = input('输入密码:').strip()
        if username == user_name and password == user_pwd:
            print('登陆成功')
            global login_user
            login_user = user_name
    
    
    print(login_user)
    login_func()
    print(login_user)
    

    2、针对之前编写的查询余额的功能,添加额外的逻辑:如果用户没有登录,则先执行登录功能

    login_user=None
    def login_func():
        user_name = input('输入账号:').strip()
        user_pwd = input('输入密码:').strip()
        with open(r'db.txt','rb') as f:
            while True:
                res = f.readline().decode('utf-8')
                x, y, z = res.strip().split(':')
                if x == user_name and y == user_pwd:
                    print('登陆成功')
                    global login_user
                    login_user = user_name
                    break
                else:
                    print('账号密码错误')
    
    
    
    def balance_func():
        global login_user
        print(login_user)
        while True:
            if not login_user:
                print('没有登陆,请重新登陆')
                login_func()
                continue
            else:
                with open(r'db.txt','rb') as f:
                    while True:
                        res = f.readline().decode('utf-8')
                        x,y,z = res.strip().split(':')
                        if x == login_user:
                            print('账号{}的余额是:{}元'.format(login_user,z))
                            break
            break
    balance_func()
    
  • 相关阅读:
    Mysql 5.7解压版安装
    Java Web 整合案例
    maven 创建Java web项目
    LintCode 数字三角形
    Hibernate 泛型Dao实现
    LintCode 将二叉查找树转换成双链表
    LintCode 删除链表中倒数第n个节点
    LintCode 二级制中有多少个1
    LintCode翻转二叉树
    SpringMVC 运行流程
  • 原文地址:https://www.cnblogs.com/Lance-WJ/p/12525911.html
Copyright © 2020-2023  润新知