名称空间与作用域

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

 

posted @ 2020-12-26 15:47  Avery_W  阅读(70)  评论(0编辑  收藏  举报