2015-11-19 40 views
1

我已經用Python寫的這個非常簡單的程序:我該如何解決這個簡單的程序?

a=input('Enter the grade:') 

if int(a)<5: 
    print('D') 
elif 5<=int(a)<10: 
    print('c') 
elif 10<=int(a)<15: 
    print('B') 
elif 15<=int(a)<=20: 
    print('A') 
elif 20<int(a): 
    print('You idiot !') 

else : 
    print('Write a number idiot !') 

如果用戶寫了一些程序會工作,但如果他們寫一個字符串,程序會給出這樣的錯誤:

Traceback (most recent call last): 
    File "C:\Users\sony\Desktop\Grader.py", line 2, in <module> 
    if int(a)<5: 
ValueError: invalid literal for int() with base 10: 'h' 

如何更改程序,以便用戶可以寫任何他們想要的東西!

+0

能否請您闡述一下你究竟是想幹什麼?你的投入和預期產出是什麼?順便說一句, – Rubal

+0

。打電話給用戶白癡會是我開槍的原因。 –

+0

嗯,我不是你的員工!對於像我這樣的初學者來說,這是一個練習程序,我的朋友決定讓它變得有趣一點!你認爲,我們會在一個真正的程序中稱用戶白癡(就像我們後來必須在學期末寫的一個項目)? – user82087

回答

0

您可以乙醚檢查變量的類型或做一個嘗試/除了。 (最後是最簡單的方法,看看這裏充足)

0

您可以使用此功能來檢查輸入值是否爲整數或不:

In [1]: def is_int(value): 
...:  try: 
...:   int(value) 
...:   return True 
...:  except ValueError: 
...:   return False 
...:  

In [2]: is_int(6) 
Out[2]: True 

In [3]: is_int('something') 
Out[3]: False 

希望這有助於!

1

修改:

a=input('Enter the grade:') 

到:

a = None 
while not a: 
    try: 
     a = int(input('Enter the grade:')) 
    except ValueError: 
     print("please enter a valid integer!) 
    else: 
     break 
+0

如果他們鍵入'0'會怎麼樣? – khelwood

+0

@ khelwood好趕上,在這裏你去:) – alfasin

+0

爲什麼不只是'而真'?另外,如果你不使用'e',那麼不需要'作爲e'。 –