2015-09-01 34 views
-6

我需要的代碼可確保用戶沒有輸入任何隨機字符和數字爲他們答覆他們的名字在那裏驗證了一個名稱輸入。到目前爲止,我嘗試使用.isdigit()命令,但不允許用戶重新嘗試輸入他們的名字。如何在Python中驗證名稱?

name = input("\nWhat Is Your Name? : ") 

if name.isdigit(): 
    print ("Invalid!") 
    name = input("\nWhat Is Your Name? : ") 
    continue 
else : 
    print("\nHi {}! Welcome to the Arithmetic quiz!".format(name)) 
+0

所以這個名字應該不包含任何數字 – The6thSense

+1

似乎有兩個問題:1 )如何檢查輸入的字符串是否是有效的名稱(.isalpha()?)和2)如何重複用戶提示,直到輸入有效。 – wap26

+0

@VigneshKalai是的,這就是目標 –

回答

3

繼續只能在循環,但在這裏,是對你的工作循環,你想要做什麼:

while True: 
    name = input("\nWhat Is Your Name? : ") 
    if not name.isalpha(): 
     print ("Invalid!") 
    else: 
     break  

print("\nHi {}! Welcome to the Arithmetic quiz!".format(name)) 
+0

謝謝,偉大的工作,我想我很接近。 –

+0

你可以解釋'While True'這行背後的原因嗎? @gkusner –

+1

@MysticMods'while循環'循環,直到給出的條件是同時TRUE'那張循環由於將永遠不會失敗,不斷在此條件下循環。所以它只會如果破環這種情況下,'假一' break'語句滿足其在其他情況下遇到了',而真正在這種情況下會循環,直到給定的名稱是valid' – The6thSense