2017-10-21 166 views
-1

我想創建一個基於用戶註冊門戶網站併爲此我想添加一些用戶名。但是,如果它們已被佔用,那麼代碼應該提示 用戶添加另一個用戶名,我試圖用此代碼來完成此操作。用戶名輸入和匹配使用python-(陷入while循環)

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

變量名可能是最後一行的錯字。順便說一句,如果在提供的代碼段中沒有'class',爲什麼還要添加'class'標籤? –

回答

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

+0

感謝它的工作。 –

-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 
+1

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 –

+0

我爲你修復^享受 –

1

這是你的代碼的一個更Python版本,這是容易理解和修復:

users = ['name123'] 
username = raw_input("Enter username : ") 
while username in users: 
    username = raw_input("Username already taken.\nEnter another username :") 

注:

  • 始終使用低情況下的變量名稱。
  • 使用in而不是循環顯式地循環用戶。
  • 避免break在一個while循環,而是改變你的循環條件值 。
+0

你不能編輯答案,你能嗎? –

+0

它看起來像我們在同一時間寫我們的答案。如果這就是您的想法,我沒有竊取您的代碼。 – SaturnFromTitan

+0

沒關係,因爲我懶得寫,爲什麼我的代碼比提供的更好。 –