[英]python: input validation return
我試圖返回一個數字,如果它是一個INT,並且在數字之間,則在輸入字母時出現錯誤。 您還必須輸入兩次正確的值才能獲得輸入:
def get_number():
b = False
while b == False:
try:
n = (input('Please enter a 6 digit number'))
except ValueError:
continue
if n >= 100000 and n <= 1000000:
b = True
break
return n
if __name__ == '__main__':
get_number()
print get_number()
`
將輸入更改為raw_input,如果有人輸入字母,現在可以使用。 但是,當我輸入正確的輸入時,它將繼續循環:
def get_number():
b = False
while b == False:
try:
n = (raw_input('Please enter a 6 digit number'))
except ValueError:
continue
if n >= 100000 and n <= 1000000:
b = True
break
return n
if __name__ == '__main__':
get_number()
print get_number()
您的代碼有一些問題。
input
來評估unser輸入的內容,但這很危險; 最好使用raw_input
獲取一個字符串,然后嘗試將該字符串顯式轉換為int
input
,那么您必須捕獲NameError
和SyntaxError
(可能還有更多)而不是ValueError
if
條件將允許輸入7位數字(1000000); 另外,您可以使用比較鏈接簡化條件 break
或從循環return
您可以嘗試這樣的事情:
def get_number():
while True:
try:
n = int(raw_input('Please enter a 6 digit number '))
if 100000 <= n < 1000000:
return n
except ValueError:
continue
if __name__ == '__main__':
print get_number()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.