![](/img/trans.png)
[英]how to convert data with float, int and strings to just strings and float
[英]Convert strings to int or float in Python 3?
integer = input("Number: ")
rslt = int(integer)+2
print('2 + ' + integer + ' = ' + rslt)
double = input("Point Number: ")
print('2.5 + ' +double+' = ' +(float(double)+2.5))
给我
Traceback (most recent call last):
File "C:\...", line 13, in <module>
print('2 + ' + integer + ' = ' + rslt)
TypeError: Can't convert 'int' object to str implicitly
我对编程很新,我的背景主要是C#的基础知识到目前为止。 我想通过在Python上完成我所有的C#学校项目来学习Python。 我习惯了C#的简单语法,它看起来像这样:
int integer = Convert.ToInt32(Console.ReadLine())
要么
double double = Convert.ToDouble(Console.ReadLine())
它接受用户输入字符串并将其转换为我指定的字符串。
我想我读过py2.x有一个叫做raw_input的命令,在这方面比py3.x的输入命令好一点。
我试图发现自己的格式与我在C#中习惯使用的格式类似,但是在找到一个方法将用户输入字符串转换为整数后,所有这些谷歌搜索并尝试一切我能想到(我在谷歌上发现)我觉得是时候问了。 你能帮我吗?
您必须将整数转换为字符串:
print('2 + ' + str(integer) + ' = ' + str(rslt))
或者将其作为参数传递给print
和打印将为您完成:
print('2 +', integer, '=', rslt)
我会使用字符串格式化:
print('2 + {} = {}'.format(integer, rslt))
您的问题不是将输入转换为整数。 问题是当你写' = ' + rslt
你试图在字符串中添加一个整数,而你不能这样做。
你有几个选择。 您可以将integer
和rslt
转换回字符串,将它们添加到字符串的其余部分:
print('2 + ' + str(integer) + ' = ' + str(rslt))
或者你可以打印多个东西:
print('2 + ', integer, ' = ', rslt)
或使用字符串格式:
print('2 + {0} = {1}'.format(integer, rslt))
在Python 3.x中 - input
相当于Python 2.x的raw_input
...
您应该使用字符串格式 - 并执行一些错误检查:
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...")
另一个选项 - 看起来有点复杂是允许解释器对值进行最佳猜测,然后提出不是int
或float
东西:
from ast import literal_eval
try:
value = literal_eval(input('test: '))
if not isinstance(value, (int, float)):
raise ValueError
print value + 2
except ValueError as e:
print('oooops - not int or float')
如果你想要复杂的数字或列表或元组作为输入,这允许更多的灵活性......
如果要将值转换为整数,请使用int
内置函数,并将值转换为浮点数,请使用float
built in函数。 然后,您可以使用str
内置函数将这些值转换回字符串。 内置函数input
返回字符串,因此您可以在代码中使用这些函数,如下所示:
integer = input("Number: ")
rslt = int(integer)+2
print('2 + ' + integer + ' = ' + str(rslt))
double = input("Point Number: ")
print('2.5 + ' +str(double)+' = ' +str(float(double)+2.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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.