代码有三处错误,详见以下注释:
while flag:
...
...
elif num<3 and (user_name != 'fmh199405' or passport != 'CYSTL770205'):
# 1) and运算优先级比or要高,如果不加括号,只要passport输错就会循环而不会判断输错了几次(num值)
...
...
num = num+1 # 这条语句已经实现了3次以内输入错误判断
else: # 2). else语句要缩进while循环内
print("your account is locked")
break # 3). 设置退出循环的标志,不然是死循环
# 或者设置flag = False
num = 1
while flag and num<=3:
....
...
..
..
num += 1
else往里缩一下并且改成:
elif num>=3:
print('yout account is locked!')
break
n=0
在while循环里面加一个
n=n+1
if n>3:
print('...locked')
break
如有用请采纳