• 作业0319


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

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

    2、然后找到调用函数的位置,写出函数调用时代码的执行过程,涉及到名字的查找时,参照1中画好

    的嵌套图,标明查找顺序,一层一层直到找到位置

    =题目一=

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

    图:

    =题目二=

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

    图:

    =题目三=

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

    图:

    =题目四=

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

    图:

    =题目五=

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

    图:

    =题目六=

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

    图:

    =题目七=

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

    图:

    =题目八=

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

    def log_in():
        '''登录功能'''
        user_info = {}
        with open(r'C:UsersccfPycharmProjectsS14day15文件user_info.txt', mode='r', encoding='utf-8') as f:
            for line in f:
                user, pwd = line.strip().split(':')
                user_info[user] = pwd
                # print(user_info)
        for x in range(0, 3):
            inp_name = input('请输入账号:').strip()
            if inp_name in user_info:
                inp_pwd = input('账户名正确,请输入密码:').strip()
                if inp_pwd == user_info[inp_name]:
                    print("登录成功")
                    login_user = inp_name
                    break
                else:
                    print("密码错误,请重新输入:")
            else:
                print("账号错误,请重新输入:")
    
    log_in()
    

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

    def check_money(username):
        dic = {}
        with open(r'C:UsersccfPycharmProjectsS14day15文件db3.txt', 'r', encoding='utf-8') as f:
            for line in f:
                user, money = line.strip().split(':')
                dic[user] = int(money)
    
        
        if not user_info.get('user'):
            
            log_in()
    
        
        if username not in dic:
            return
    
        
        return dic.get(username)
    
    check_money()
    
  • 相关阅读:
    [BZOJ 1095] [ZJOI 2007]Hide 捉迷藏
    [BZOJ 2759] 一个动态树好题
    BZOJ 3122 SDOI2013 随机数生成器
    [NOIP集训]10月18日
    [NOIP集训]10月17日
    [NOIP集训]10月16日
    [NOI题库]1.3编程基础之算术表达式与顺序执行 题解(一)
    [NOI题库]1.2编程基础之变量定义、赋值及转换 题解
    [NOI题库]1.1编程基础之输入输出 题解
    [作业]排序算法练习(二)
  • 原文地址:https://www.cnblogs.com/zuiyouyingde/p/12527627.html
Copyright © 2020-2023  润新知