2017-03-04 116 views
-1

這是我的代碼,我不斷收到錯誤。我能夠成功識別非有效整數。但是,如果我輸入一個正值,我收到此錯誤TypeError:不是在字符串格式化期間轉換的所有參數。輸入正整數時輸入錯誤

inter=(input('Enter a positive integer:')) 
if not inter.isdigit(): 
    print('You did not enter a valid input!') 
else: 
    if(inter%2==0): 
     print('You entered an even number') 
    elif(inter%7==0): 
     print('You entered an odd number that is a multiple of 7') 
    else: 
     print('You entered an odd number that is NOT a multiple of 7') 
+0

'inter'是一個字符串,因爲你使用'isdigit'暗示你知道。字符串上的'%'是C風格的格式,而不是模數。 – jonrsharpe

+0

謝謝!但是,我仍然不確定我需要做什麼才能解決問題 –

+0

在嘗試對其進行數學運算之前,將字符串轉換爲整數。 – jonrsharpe

回答

-1
try: 
    inter=int((input('Enter a positive integer:'))) 
    if(inter%2==0): 
     print('You entered an even number') 
    elif(inter%7==0): 
     print('You entered an odd number that is a multiple of 7') 
    else: 
     print('You entered an odd number that is NOT a multiple of 7') 
except:  
    print('You did not enter a valid input!') 

這是一個更好的辦法,看看是否輸入的是int或沒有。 try-except語句處理任何錯誤。如果嘗試遇到錯誤,那麼它將跳出該語句並執行except語句。所以當輸入被轉換爲一個int時,如果輸入是一個字符串,它會拋出一個錯誤。

+1

謝謝!我熟悉那種方法。但是我不得不使用isdigit函數 –

0
inter=(input('Enter a positive integer:')) 
if not inter.isdigit(): 
print('You did not enter a valid input!') 
else: 
if(int(inter)%2==0): 
    print('You entered an even number') 
elif(int(inter)%7==0): 
    print('You entered an odd number that is a multiple of 7') 
else: 
    print('You entered an odd number that is NOT a multiple of 7')