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 ?
-
4The code is not exactly as such in your "product". Show the part where you "give a value" to multiply.Karl Knechtel– Karl Knechtel2012年03月08日 12:01:14 +00:00Commented Mar 8, 2012 at 12:01
3 Answers 3
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.
1 Comment
'a' must be a string in your code:
>>> a = 4
>>> b = 8
>>> a * b
32
>>> a = "4"
>>> a * b
'44444444'
>>> int(a) * b
32
1 Comment
That looks like a is a string, and not an integer. Try this:
a = int(a) * int(b)
Hope that helps