我最近在使用python练习时,每次运行时都会遇到一个轻微的乘法问题:
nights = raw_input('How many nights do you intend to stay?:')
if len(nights) > 0 and nights.isdigit():
cost = 3000 * nights
print cost
else:
print "Error, enter a number"
我输入后会得到这个答案,例如5:
How many nights do you intend to stay?:5
55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 (basically very many fives)
任何有任何想法如何解决它的人。 感谢。
答案 0 :(得分:2)
在Python中, raw_input 返回一个字符串对象,这就是为什么你必须检查 isdigit 的原因。因此,您需要首先将夜间类型转换为int。
将您的代码更改为以下内容 -
cost = 3000 * int(nights)
您仍然没有收到错误和有效结果,因为Python支持字符串乘法,即
>>> s = 'a'
>>> s * 10
'aaaaaaaaaa'