2017-06-18 103 views
0

我已經寫了一些代碼:基本代碼需要一個修復

mon=10 
a=1 
print("You have",mon,"pounds") 
bet=input("How much do you want to bet?") 
if bet % 1==0: 
    bet=int(bet) 
else: 
    print("Give me a whole number please") 

但是,當我回答,我得到:

Traceback (most recent call last): 
    if bet % 1==0: 
TypeError: not all arguments converted during string formatting 
+2

'bet'是一個字符串,不是數字。您需要先將其轉換。當你在一個字符串上使用'%'時,你正在格式化字符串,而不是得到一個數字的模。 –

回答

3

input()返回一個字符串。

docs

如果提示參數存在時,它被寫入到標準輸出沒有尾隨換行符。該函數然後從輸入中讀取一行,將其轉換爲字符串(剝離尾隨換行符),並返回該行。

你應該改變你的代碼如下:

mon=10 
a=1 
print("You have",mon,"pounds") 
bet=input("How much do you want to bet?") 
try: 
    bet=int(bet) 
    print(bet) 
except: 
    print("Give me a whole number please") 

這樣的程序會嘗試對用戶intput轉換爲整數 - 如果失敗,將打印「給我一個整數,請「