我想创建一个基于类的用户注册门户,为此我想添加一些用户名。但如果他们已经被采取,那么代码应该提示 用户添加另一个用户名,我尝试使用此代码。
a=0
User=['name123']
username=raw_input("Enter username : ")
while a==0:
for i in User:
if i==username:
a=0
break
else:
a=1
if a==0:
usernarme=raw_input("Username already taken.\nEnter another username :")
但它会卡在循环中并重复显示以下消息 甚至在输入有效的用户名后。我做错了什么?
“已使用的用户名”
答案 0 :(得分:1)
这样可以解决循环中的所有问题。
User=['name123']
username=raw_input("Enter username : ")
while username in User:
username=raw_input("Username already taken.\nEnter another username :")
P.S。我强烈建议您阅读Dive Into Python和The Zen of Python
答案 1 :(得分:1)
这是您的代码的更加pythonic版本,更容易理解和修复:
users = ['name123']
username = raw_input("Enter username : ")
while username in users:
username = raw_input("Username already taken.\nEnter another username :")
注意:
in
而不是在循环中显式循环用户。break
,而是更改值
你的循环条件。答案 2 :(得分:-1)
a = 0
while a==0:
a=0
User=['name123']
username=input("Enter username : ")
for i in User:
if i==username:
a=0
else:
a=1
if a==0:
username=input("Username already taken.\nEnter another username :")
a = 1