用户名输入和匹配使用python-(陷入while循环)

时间:2017-10-21 14:48:26

标签: python database class while-loop username

我想创建一个基于类的用户注册门户,为此我想添加一些用户名。但如果他们已经被采取,那么代码应该提示 用户添加另一个用户名,我尝试使用此代码。

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 :")

但它会卡在循环中并重复显示以下消息 甚至在输入有效的用户名后。我做错了什么?

  

“已使用的用户名”

3 个答案:

答案 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 PythonThe 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而不是在循环中显式循环用户。
  • 在while循环中避免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