Python(2.x)乘法没有正确发生

时间:2012-03-08 11:58:34

标签: python

这是代码......

a=4
b=8.0
if a and a >0:
    a=a*int(b)
    print "Value:",a 

期望的o / p应该是32.我也在python控制台中得到相同的结果。但是在我的产品中存在相同的代码,而不是32,输出将以44444444(八个四分之一)出现,即无论我用什么价值乘以“a”,它只是打印那么多。如果你给12,则将打印12个四肢。

知道这是什么问题吗?

3 个答案:

答案 0 :(得分:10)

我敢打赌,你的产品a实际上不是整数4,而是字符串'4'。

>>> a = '4'
>>> b=8.0
>>> if a and a >0:
...     a=a*int(b)
...     print "Value:",a
... 
Value: 44444444

例如,如果您使用a = raw_input('Please enter a number: ')之类的内容,则会发生这种情况,然后您忘记将字符串a转换为数字。

答案 1 :(得分:6)

'a'必须是代码中的字符串:

>>> a = 4
>>> b = 8
>>> a * b
32
>>> a = "4"
>>> a * b
'44444444'
>>> int(a) * b
32

答案 2 :(得分:4)

看起来a是一个字符串,而不是一个整数。试试这个:

a = int(a) * int(b)

希望有所帮助