1. 定义域与名称空间解释
input = 333 # 定义全局变量input,赋值333
def func(): # 定义全局函数func
input = 444 # 定义局部变量input,赋值444
func() # 调用全局函数func
print(input) # 打印全局变量input的值
'''
过程:
定义全局变量input,并将其赋值为333,调用全局函数func(),执行函数func()
定义全局函数func()内局部变量input,赋值444,无返回值,func()调用结束后,
销毁func(),只剩全局变量input=333,print输出为333
调用
'''
def func(): # 定义全局变量func()
print(x) # 输出x
x = 111 # 全局变量x赋值为111
func() # 调用函数func()
'''
过程:
定义全局函数func(),定义全局变量x,赋值为111,调用全局函数func(),函数定义输出x,但函数func()并无x,到全局名称空间去找,找到x=111
输出x=111'''
x = 1 # 定义全局变量x,并赋值为111
def func(): # 定义全局函数func()
print(x) # 输出x
def foo(): # 定义全局函数foo()
x = 222 # 定义局部变量x,赋值为222
func() # 调用全局函数func()
foo() # 调用全局函数foo()
'''
过程:
定义全局变量x=1,调用全局函数foo(),执行函数foo(),定义函数foo(),内部局部变量x=222,调用全局'''
input = 111 # 定义全局变量input=111
def f1(): # 定义全局函数f1()
def f2(): # 定义局部函数f2()
print(input) # 局部函数f2输出input
input = 222 # 全局函数f1定义input=222
f2() # 调用局部函数f2
f1() # 调用全局函数f1
x = 111 # 定义全局变量x,赋值111
def func(): # 定义全局函数func(),无形参
print(x) # 输出x
x = 222 # 定义局部变量x,赋值222
func() # 调用函数func()
x = 111 # 定义全局变量x,赋值111
def foo(): # 定义全局函数foo(),无形参
print(x, ) # 输出x
def bar(): # 定义全局函数bar(),无形参
print(x) # 输出x
foo() # 调用全局函数foo()
bar() # 调用全局函数bar()
x = 1 # 定义全局变量x,赋值1
def func2(): # 定义全局函数func2(),无形参
func1() # 调用全局函数func1()
x = 2 # 定义全局变量x,赋值2
def func1(): # 定义全局函数func1(),无形参
print(x) # 输出x
x = 3 # 定义全局变量x,赋值3
func2() # 调用全局函数func2()
2. 实现登录成功记录下用户名
# 如下全局变量记录了当前登录用户,编写登录功能,一旦用户登录成功,则将全局变量赋值为当前登录的用户名login_user=None
login_user = None
def login():
account = input('请输入账号:')
password = input('请输入密码:')
if account == 'avery' and password == '123':
print('登录成功')
global login_user
login_user = account
else:
print('登陆失败')
return login_user
print(login())
3. 针对查询余额的功能,添加额外的逻辑:如果用户没有登录,则先执行登录功能
login_user = None
def login():
account = input('请输入账号:')
password = input('请输入密码:')
if account == 'avery' and password == '123':
print('登录成功')
global login_user
login_user = account
else:
print('登陆失败,请重新输入')
return login_user