2012-07-11 68 views
3

我已經設置了該程序,該程序檢查標記爲100以進行測試。如果用戶輸入小於60,則應該說如果超過59則失敗,通過。使用整數作爲輸入進行處理的錯誤

mark = int(input("Please enter the exam mark out of 100 ")) 
if mark < 60: 
    print("\nFail") 
elif mark < 101: 
    print("\nPass") 
else: 
    print("\nThe mark is out of range") 

如果用戶沒有輸入整數,我該如何讓程序不會有錯誤。

請幫忙,14歲的孩子能理解嗎?

+0

你使用Python 3.x嗎? – Levon 2012-07-11 12:44:01

+0

如果您使用的是Python 2,請使用'raw_input'而不是'input'。然後按照下面的答案之一。 – kojiro 2012-07-11 12:46:36

+1

'如果用戶輸入少於60個,它應該說失敗,如果超過59,傳球。那麼通過得分是多少? 59.5? :) – 2012-07-11 12:47:16

回答

3
try: 
    mark = int(input("Please enter the exam mark out of 100 ")) 
except ValueError: 
    print("\nPlease only use integers") 
+3

「檢查它的類型」 - 它將**總是一個字符串**,(這就是爲什麼需要'int')。 – mgilson 2012-07-11 13:05:02

4

保存在變量輸入,並轉換爲單獨的整數:

import sys 

i = input("Please enter the exam mark out of 100 ") 
try: 
    mark = int(i) 
except ValueError: 
    print('\nYou did not enter a valid integer') 
    sys.exit(0) 
if mark < 60: 
    print("\nFail") 
elif mark < 101: 
    print("\nPass") 
else: 
    print("\nThe mark is out of range") 

如果失敗(即,你會得到一個ValueError)然後打印消息並退出。你可以解釋(到14歲),int()需要一個有效的整數作爲輸入,否則將會產生一個ValueError。這是有道理的,因爲只有包含整數的字符串可以被int()轉換。