Reuben
Reuben

Reputation: 5736

Python (2.x) multiplication is not happening properly

Here is the code ...

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

The desired o/p should be 32. i am also getting the same in python console. But the same code is present in my product where instead of 32 the out put is coming as 44444444 (eight fours) i.e whatever value i'am giving to multiply with "a" it is just printing that much a's. If you give 12 then twelve fours will print.

Any idea what is the problem ?

Upvotes: 2

Views: 512

Answers (3)

user1251007
user1251007

Reputation: 16721

That looks like a is a string, and not an integer. Try this:

a = int(a) * int(b)

Hope that helps

Upvotes: 4

Vinod Kurup
Vinod Kurup

Reputation: 2776

'a' must be a string in your code:

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

Upvotes: 6

wim
wim

Reputation: 362707

I bet you 100 bob that in your product a is not actually the integer 4, but the string '4'.

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

This will happen, for example, if you are using something like a = raw_input('Please enter a number: ') and then you forget to convert the string a into a number.

Upvotes: 10

Related Questions