dic={"John":"123","Marry":"111","Tommy":"123456"} import time while True: for i in range(3,0,-1): n=input("输入用户名") if n not in dic: print("该用户不存在") print(f'你还有{i-1}次机会!') else: m=input('输入密码') if dic[n]==m: break print("成功登录") else: print("密码不正确") print(f'你还有{i-1}次机会!') continue if i-1==0: print('5秒后再试') for n in range(5,0,-1): print(n) time.sleep(1)
时间: 2024-02-14 18:05:12 浏览: 16
你好,上面的代码中存在一些问题。首先,当密码输入正确时,代码应该输出 "成功登录" 并跳出循环,而不是在 `break` 关键字之后再输出。其次,在密码输入错误时,应该打印剩余的尝试次数,而不是 `i-1`,因为此时循环变量 `i` 的值已经减去了 1。最后,在循环结束后,应该打印 "登录失败" 的提示信息。下面是修改后的代码:
```python
dic = {"John": "123", "Marry": "111", "Tommy": "123456"}
import time
while True:
for i in range(3, 0, -1):
n = input("输入用户名:")
if n not in dic:
print("该用户不存在")
print(f'你还有{i - 1}次机会!')
else:
m = input('输入密码:')
if dic[n] == m:
print("成功登录")
break
else:
print("密码不正确")
print(f'你还有{i - 1}次机会!')
continue
if i - 1 == 0:
print('5秒后再试')
for n in range(5, 0, -1):
print(n)
time.sleep(1)
else:
print("登录失败")
break
```
在上面的代码中,使用了 `else` 关键字来处理循环正常结束后的情况,即登录失败的情况。当循环正常结束时,会执行 `else` 语句块中的代码,输出 "登录失败" 的提示信息,并且跳出循环。