day15

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

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

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

=题目一=

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

1 题目二=

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

func() #111

image-20200319144009553

=题目三=

x=1
def func():
   print(x) #1

def foo():
    x=222
    func()

foo()
image-20200319144700624

=题目四=

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

f1()
image-20200319145229033

=题目五=

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

func()
image-20200319145607454

=题目六=

x=111

def foo():
    print(x,) #111

def bar():
    print(x)  #111

foo()
bar()
image-20200319145924922

=题目七=

x=1
def func2():
    func1()

x=2
def func1():
    print(x) #3

x=3

func2()

image-20200319151230260

=题目八=

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

login_user=None
username='egon'
password='123'
def login():
    user_name = input('请输入用户名:').strip()
    user_pwd = input('请输入密码:').strip()
    if user_name ==username and user_pwd:
        print('登录成功')
        global login_user
        login_user = user_name

login()
print(login_user) 


结果展示:
请输入用户名:egon
请输入密码:123
登录成功
egon

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

def check_balance():
    '''查看余额功能'''
    if login_user:
        with open('user_info.txt', 'r', encoding='utf-8')as f:
            for line in f:
                username,password , balance = line.strip().split(':')
                if user_info['username'] == username:
                    print(f'用户{username}余额为:{balance}')
    else:
        print('请先登录!')
        login()
原文地址:https://www.cnblogs.com/xy-han/p/12526577.html