2017-05-13 48 views
1

我想弄清楚我的任務,但我努力努力。如何限制用戶輸入到一個整數範圍 - python 3.6

所以我需要的是將變量'age'的用戶輸入限制爲等於或大於18.如果輸入是字符串或小於18,我想顯示自己的錯誤消息並終止程序。

此外,我已經注意到,當輸入字母時,程序會自動顯示ValueError,因爲我已將int()用於輸入。但是我想把這個錯誤信息改成我自己的。我讀了某處調用並檢查值,然後int()他們,所以我嘗試了輸入()本身,但不認爲它的工作。

這裏是我現在的年齡部分:

age = int(input('Enter age')) 
if not age.isdigit(): 
    sys.stderr.write('Please enter appropriate age') 
    sys.exit(1) 
elif age < 18: 
    print('You have to be at least 18 years old') 
    sys.exit(1) 
else: 
    age = int(age) 

我試圖做類似設定的條件爲它退出,那麼對於其他的條件下,它會繼續下去...... ....但我不知道,如果其他人可以使用,如果不能去,我不認爲它的工作:(

任何幫助表示讚賞!

+0

一個Python的方式來實現,這是使用 - [見這裏](https://docs.python.org/3/tutorial/errors .html#handling-exceptions),這個鏈接甚至有你幾乎確切的例子! – xjcl

+0

@aryamccarthy,但是這不會讓我顯示我的錯誤消息時使用str作爲輸入!它只會顯示我的錯誤消息,如果年齡小於18,並顯示ValueError是否使用其他字符:( – yeonsy

+0

這是一個很容易檢查添加。 –

回答

-1

使用try和except來處理異常,例如

age = input() 
try: 
    age = int(age) 
except ValueError: 
    # Add your custom error 
    print ("Error Message") 

這捕獲所有的3個錯誤,只是嘗試對ValueError異常

+0

*「這會捕獲所有3個錯誤」* - 以及'age = int(age)'如何引發'TypeError'或'NameError'? – jonrsharpe

相關問題