得到错误答案。这段代码有什么问题?

时间:2015-11-26 04:45:55

标签: python python-2.7

x=raw_input('what is your favorite number? ')
n=x*10
print n

如果我插入5,我不会得到50.我得到5555555

我尝试过声明浮动(n)和工具。没什么帮助。我意识到这是一个小联盟,但我只是开始自学python。 谢谢,托德

3 个答案:

答案 0 :(得分:1)

您将号码视为raw_input,这意味着它将作为字符串返回给程序。当你将一个字符串乘以一个整数并打印结果时,它只打印字符串x次,在你的情况下为10,因为你试图乘以10.为了证明这一点,改变,10到20并观察什么发生。

有两种方法可以解决这个问题。第一个是使用input()而不是raw_input(),因此它会返回一个数字作为结果。

x=input("Please enter a number here.\n")

第二种方法是使用函数xint()重新分配给字符串的等价整数。

x=int(x) # Will turn "10", which is what you have, into 10

这应该可以解决您的问题。

祝你好运,编码愉快!

答案 1 :(得分:1)

这是因为raw_input()的默认数据类型是string。您必须将字符串输入强制转换为整数以获得所需的结果。

答案 2 :(得分:0)

当您从用户输入中读取值时,它就像一个字符串。所以x实际上等于字符串'5',但你真正想要的是数字5.

int(x) * 10