2015-11-09 56 views
1

如果用戶鍵入的內容無效,我怎麼能重複「請提供一些信息:」,直到他們提供有效的輸入,而不是在最後退出?如何爲無效的用戶輸入循環regex re.match?

input_str = raw_input("Please provide some info: ") 
if not re.match("^[a-z]*$", input_str): 
    print "Error! Only letters a-z allowed!" 
    sys.exit() 
+1

使用'而not'代替'如果not'並與'input_str'分配線替換你的'sys.exit()' –

回答

1

您只需重新分配你的input_str

input_str = raw_input("Please provide some info: ")

更換sys.exit()和包裝這在while循環

while not re.match("^[a-z]*$", input_str): 
    print "Error! Only letters a-z allowed!" 
    input_str = raw_input("Please provide some info: ") 

,或者如果你希望將自己的你同樣的設置可以在休息時使用一段時間。

while True: 
    input_str = raw_input("Please provide some info: ") 
    if not re.match("^[a-z]*$", input_str): 
     print "Error! Only letters a-z allowed!" 
    else: 
     break 
+0

您的是一個剛剛幫我解決MySQL問題的人。再次感謝,男士! – kittenparade

+0

@kittenparade哈哈真棒:)高興我可以幫助。如果你有任何問題可以隨意問:)我也會給你+1 +1 –

0

嘗試是這樣的:

input_str = raw_input("Please provide some info: ") 
while not re.match("^[a-z]*$", input_str): 
    print "Error! Only letters a-z allowed!" 
    input_str = raw_input("Please provide some info: ")