pythonwhiletrue中不能使用else吗_python修饰器while循环中给全局变量赋值为什么不能用...

flag=Falsedeflogin(func):definner(*args,**kwargs):globalflagifflag:func(*args,**kwargs)else:i=1whilei<4:user_name=input('请输入用户名:')password=input('请输入密码')witho...

flag = False

def login(func):

def inner(*args,**kwargs):

global flag

if flag:

func(*args,**kwargs)

else:

i = 1

while i < 4:

user_name = input('请输入用户名:')

password = input('请输入密码')

with open('log',encoding = 'utf-8') as f:

content = eval(f.read())

if content['name'] == user_name and content['password'] == password:

flag = True

func(*args,**kwargs)

else:

print('用户名或密码错误,你还有%s次输入机会'% (3-i))

i += 1

break

else:

print('你已经超出试登次数')

flag = False

return inner

@login

def home():

print('欢迎来到主页')

@login

def article():

print('欢迎来到文章页')

@login

def diary():

print('欢迎来到日记页')

article()

diary()

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值