2017-06-16 63 views
-4

進入我很新的蟒蛇,我試圖創建使用基於如果一個int輸入(int(input()))得到正確的輸入類的if語句的程序。例如:如果我有去Var1 = int(input("Enter a number:..."))輸入,並且用戶輸入hello那裏,這會,而不是給一個錯誤信息,進入的一個if聲明的選項之一。如果基於無效類的語句在Python

由於代碼的其餘部分沒有被創建但我不能發表,但我已經試過,我想出瞭解決沒有成功這個問題的所有方面......誰能幫助我請?

+1

什麼當用戶在這種情況下鍵入「hello」時會發生?你有例外嗎?也許異常處理是前進的方向? – cdarke

+0

檢查'string.isdigit()'或'string.isalpha()'函數。這將解決您的要求。當你鍵入字母,當輸入是一個整數輸入你得到一個錯誤,而是的,我希望能夠在兩種不同勢段來劃分輸入在if語句 – voidpro

+0

@cdarke,一個是如果答案是一個整數如果沒有,另一個。 –

回答

0

你可以圍繞你輸入一個try..except塊和捕捉ValueErrorint()嘗試一個非整數轉換成整數,將會發生:

try: 
    var1 = int(input("Enter an integer: ")) 
except ValueError: 
    print("That's not an integer!") 

你甚至可以強制用戶輸入一個整數通過將其放置在一個循環:

var1 = None 
while var1 is None: 
    try: 
     var1 = int(input("Enter an integer: ")) 
    except ValueError: 
     print("That's not an integer!") 

或者您也可以在以後的時間做檢查:

var1 = input("Enter an integer: ") 
try: 
    var1 = int(var1) 
    print("Thank you for entering an integer.") 
except ValueError: 
    print("That's not an integer!") 
+0

謝謝,它工作正常! –

0

你可以使用try /除外:

while(True): 
    try: 
     var1 = int(input("enter a number: ")) 
     break 
    except ValueError: 
     print('it should be a number') 

注意:不要使用try /只是沒有Execption類型,如:

try: 
    printo('hi') 
except: 
    pass 

它將所有的除外甚至excetions語法錯誤

+0

我剛剛從zwer得到了同樣的答案,它的工作原理,感謝您的幫助! –