在python中使用乘法来解决问题

时间:2015-06-10 22:07:31

标签: python

我最近在使用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)

任何有任何想法如何解决它的人。 感谢。

1 个答案:

答案 0 :(得分:2)

在Python中, raw_input 返回一个字符串对象,这就是为什么你必须检查 isdigit 的原因。因此,您需要首先将夜间类型转换为int。

将您的代码更改为以下内容 -

cost = 3000 * int(nights)

您仍然没有收到错误和有效结果,因为Python支持字符串乘法,即

>>> s = 'a'
>>> s * 10
'aaaaaaaaaa'