我如何更改代码以让用户尝试输入用户名和密码 3 次

问题描述 投票:0回答:1

我已附加一个文件,总结了我需要添加到代码中的内容,请有人帮助我

在此输入图片描述

userNames = ["User1", "User2", "User3", "User4", "User5"]
print("Welcome to AQA User Registration")
for x in range(3):
  userName = input("New username: ")
  if userName in userNames:
    print("The username is already used")
  else:
    break
for x in range(3):
  userPassword = input("Password (12 characters or more): ")
  if len(userPassword) < 12:
    print("The password is not long enough")
  else:
    break
print("Your username is " + userName)
print("Your password is " + userPassword)            

我尝试使用“for x in range(2)”重复3次,但即使用户输入不同的用户名,它仍然会结束程序。它不在这段代码中,因为它非常混乱。我花了 1 个小时试图弄清楚,但我无法做到,如果有人可以帮助我,我将非常感激。

python
1个回答
0
投票

您需要两个循环 - 一个用于用户名和密码输入。如果未输入有效的用户名,那么您不应继续询问密码。

您会发现 for/else 结构很有用。

这里有一个简单的方法:

import sys

userNames = ["User1", "User2", "User3", "User4", "User5"]

print("Welcome to AQA User Registration")

for _ in range(3):
    u = input("New username: ")
    if u.lower() in map(str.lower, userNames):
        print(u, "is already in use")
    else:
        userNames.append(u)
        break
else:
    print("Too many attempts")
    sys.exit()


for _ in range(3):
    p = input("Password (12 characters or more): ")
    if len(p) >= 12:
        print("Your username is", userNames[-1])
        print("Your password is", p)
        break
    else:
        print("The password is not long enough")
else:
    print("Too many attempts")
© www.soinside.com 2019 - 2024. All rights reserved.