3.19---名称空间练习
作业要求:下述所有代码画图以及分析代码执行流程
(所有的图均需将内建名称空间改为内置名称空间
内置名称空间保存的是内建函数名等)
# 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 # 2、针对之前编写的查询余额的功能,添加额外的逻辑:如果用户没有登录,则先执行登录功能 def login(): name = input("请输入用户名:") password = input("请输入密码:") with open("db.txt",mode="rt",encoding="utf-8") as f: for line in f: username,pwd = line.strip().split(":") if name == username and password == pwd: print("登录成功!") global login_user login_user = name break else: print("账号密码错误,登陆失败!") login() print(login_user)