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()
posted @ 2020-03-19 17:52  Lance_王  阅读(121)  评论(0编辑  收藏  举报