[Tutor] string integers?
Steven D'Aprano
steve at pearwood.info
Mon Feb 13 00:50:03 CET 2012
William Stewart wrote:
> this is the code I have
>
> str1 = raw_input("Type in a String: ")
> str2 = raw_input("Type in a String: ")
> int1 = raw_input("Type in a integer variable: ")
> int2 = raw_input("Type in a integer variable: ")
> print str1 + str2 + int1 + int2
> import math
> int1 = int(raw_input(""))
> print str1,
> print str2,
> print int1, "*", int2
> print "="
>
> and it does not give me an error message when I run it, the program runs fine
> except its did not multiply the 2 integer variables i entered
But you haven't asked it to multiply anything. You asked it to PRINT the two
variables with an asterisk between them.
And further more, you don't have two integers. You have two strings that
merely happen to contain digits. Before you can do maths on them, you have to
tell Python to treat them as integers, not strings. You use the int() function
(int being short for integer, in case it isn't obvious) for that:
py> x = raw_input("Enter a number: ")
Enter a number: 42
py> type(x)
<type 'str'>
py> x * 10
'42424242424242424242'
py>
py> x + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
Before you can do maths on x, you have to turn it into a number:
py> x = int(x)
py> x * 10
420
py> x + 1
43
P.S. Does your computer have a Delete or Backspace key? Please trim your
replies, there is no need to quote page after page after page of old
conversation that you don't directly address.
--
Steven
More information about the Tutor
mailing list