Convert Strings To Int Or Float In Python 3?
Solution 1:
You have to convert the integer into a string:
print('2 + ' + str(integer) + ' = ' + str(rslt))
Or pass it as an argument to print
and print will do it for you:
print('2 +', integer, '=', rslt)
I would do it using string formatting:
print('2 + {} = {}'.format(integer, rslt))
Solution 2:
Your problem is not with converting the input to an integer. The problem is that when you write ' = ' + rslt
you are trying to add an integer to a string, and you can't do that.
You have a few options. You can convert integer
and rslt
back into strings to add them to the rest of your string:
print('2 + ' + str(integer) + ' = ' + str(rslt))
Or you could just print multiple things:
print('2 + ', integer, ' = ', rslt)
Or use string formatting:
print('2 + {0} = {1}'.format(integer, rslt))
Solution 3:
In Python 3.x - input
is the equivalent of Python 2.x's raw_input
...
You should be using string formatting for this - and perform some error checking:
try:
integer = int(input('something: '))
print('2 + {} = {}'.format(integer, integer + 2))
except ValueError as e:
print("ooops - you didn't enter something I could make an int of...")
Another option - that looks a bit convoluted is to allow the interpreter to take its best guess at the value, then raise something that isn't int
or float
:
from ast import literal_eval
try:
value = literal_eval(input('test: '))
ifnotisinstance(value, (int, float)):
raise ValueError
print value + 2except ValueError as e:
print('oooops - not int or float')
This allows a bit more flexibility if you wanted complex numbers or lists or tuples as input for instance...
Solution 4:
If you want to convert a value to an integer, use the int
built in function, and to convert a value to a floating point number, use the float
built in function. Then you can use the str
built in function to convert those values back to strings. The built in function input
returns strings, so you would use these functions in code like this:
integer = input("Number: ")
rslt = int(integer)+2print('2 + ' + integer + ' = ' + str(rslt))
double = input("Point Number: ")
print('2.5 + ' +str(double)+' = ' +str(float(double)+2.5)
Solution 5:
integer = int(input("Number: "))
print('2 + %d = %d' % (integer, integer + 2))
double = float(input("Point Number: "))
print('2.5 + %.2f = %.2f' % (double, double + 2.5))
Post a Comment for "Convert Strings To Int Or Float In Python 3?"