我被要求寫一個程序,接受來自用戶10,只有整數和正數(大於0),並打印最大值。問題與無效文字爲int()與基地10
我寫了很多程序,給了我從用戶插入的10個最大數量,但是當我輸入負數時,它也給了我最大的數,這是錯誤的,當我把浮點數,它帶有錯誤
invalid literal for int()with base 10
任何建議來編寫一個正確的程序?
我被要求寫一個程序,接受來自用戶10,只有整數和正數(大於0),並打印最大值。問題與無效文字爲int()與基地10
我寫了很多程序,給了我從用戶插入的10個最大數量,但是當我輸入負數時,它也給了我最大的數,這是錯誤的,當我把浮點數,它帶有錯誤
invalid literal for int()with base 10
任何建議來編寫一個正確的程序?
這裏有一些代碼可以完成你所要求的功能。但是,在負數或非整數輸入的情況下,您想要編碼的內容有點不清楚。我只是把一個Exception
:
def find_max(my_list):
for x in my_list:
if x<0 or type(x) != int:
raise Exception("You must input positive integers!")
print max(my_list)
「無效的文字」錯誤是說:‘我不明白你鍵入的內容’的INT()的方式。 int()函數只能理解數字(在不同的基數/計數系統中,請參閱python int() doc)。
如果你想「保護」 agains用戶逗號的數字輸入,它包像這樣:
int(float(userinput))
這將首先使用戶輸入一個小數號碼,然後進入一個int。 請注意,float()對「」,「與」是挑剔的。「
float("3.4") # gives 3.4
float("3,4") # throws "ValueError: invalid literal for float(): 3,4"
測試如果數是負的可以通過檢查來事後parsedNumber> = 0 它在數學上完全有效的詢問關於「-1的最高數量,-2和-3」,所以python內置插件不會爲你做。您必須手動添加嚴格的標準(見@ AlexChumley的答案。)
max(-1, -2, -3)
返回-1,在「最高」數,其中「最高」的意思是「最接近正無窮大」
+1深度比我願意去的質量問題 –
謝謝;我同意質量,但我希望文件鏈接是一個很好的教學資源:-) –
你能告訴我們你的代碼?就像你已經寫的代碼一樣?如果用戶輸入負數,你想怎麼做? –