2017-06-18 83 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转换为整数 - 如果失败,将打印“给我一个整数,请“