我試圖編寫一個程序,用戶輸入一個兩位數的整數,輸出結果是第二位數字打印第一位數字所指示的次數。以下是我迄今爲止:如何檢查Python 3.2中的整數?
number = input('Type two-digit integer \n')
a = int(number)//10
b = int(number)%10
if len(number) != 2:
print(number, 'is not a two-digit integer')
else:
print(a*str(b))
當我測試了這一點,它做什麼,我打算只要它做的事,如數字有人類型。如果有人輸入,也就是說,6R,錯誤消息將彈出說:
一個= INT(數字)// 10
ValueError異常:無效的字面INT()基數爲10:「6R '
所以我會假設有些東西需要放在代碼的第二行來測試輸入實際上是一個整數,我該怎麼做?用不同的方式改寫它會更好嗎?請記住,我正在參加Python入門課程,這是我正在採用的練習期中的一個問題,所以在這種情況下,我必須在實際期中回答這樣的問題,我不能使用很多複雜的過程。
這是我嘗試過,如果有人輸入的東西不是一個整數,但由於某種原因,我不知道它給非整數相同的消息整數,不起作用打算:
number = input('Type two-digit integer \n')
if (isinstance(number, int)) == False:
print(number, 'is not a two-digit integer')
elif len(number) != 2:
print(number, 'is not a two-digit integer')
else:
a = int(number)//10
b = int(number)%10
print(a*str(b))
幫助將不勝感激!
我個人的偏好是當你通常使用'試穿except'不會期望一個無效的輸入,並且當你期望在大多數時間內輸入無效時使用'if-elif-else'。既然你期待用戶輸入一個int,'try-except'將是最好的構造。這絕對是最好的答案! –
@ThaneBrimhall從性能和代碼清晰度的角度來看,這是一個很好的方法,儘管我不知道應該在每個**時間都應該執行捕獲異常的情況,比如處理文件系統的任何地方(因爲存在競爭條件的可能性)。 –
這是一個很好的觀點。我的規定絕對有*例外*。 'try:my_rule();除了:do_something_else()'。 –