将整数转换为字符串?


1361

我想在Python中将整数转换为字符串。我是徒劳地打字:

d = 15
d.str()

当我尝试将其转换为字符串时,它显示错误,例如int没有任何名为的属性str

Answers:




62

Python中没有类型转换,也没有类型强制。您必须以显式方式转换变量。

要使用字符串转换对象,请使用str()函数。它适用于具有称为__str__()define 的方法的任何对象。事实上

str(a)

相当于

a.__str__()

如果要将某些内容转换为int,float等,则相同。


此解决方案对我有帮助,我将字母数字字符串转换为数字字符串,将字母替换为其ascii值,但是直接使用str()函数不起作用,但__str __()起作用。例子(python2.7); s =“ 14.2.2.10a2”非工作代码:打印“” .join([str(ord(c))if(c.isalpha())else c for s in c])工作代码:打印“” .join ([[ord(c).__ str __()if(c.isalpha())else c for s in]])预期输出:14.2.2.10972
Jayant

18

要管理非整数输入:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0

14
>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5

11

在Python => 3.6中,您可以使用f格式:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>

7

对于Python 3.6,您可以使用f-strings新功能将其转换为字符串,并且与str()函数相比,它更快,它的用法如下:

age = 45
strAge = f'{age}'

因此,Python提供了str()函数。

digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>

有关更多详细的答案,请查看本文:将Python Int转换为String并将Python String转换为Int



6

可以使用%s.format

>>> "%s" % 10
'10'
>>>

(要么)

>>> '{}'.format(10)
'10'
>>>

5

对于想要将int转换为特定数字的字符串的人,建议使用以下方法。

month = "{0:04d}".format(localtime[1])

有关更多详细信息,您可以参考堆栈溢出问题显示数字前导零


4

通过在Python 3.6中引入f字符串,这也将起作用:

f'{10}' == '10'

实际上str(),它比调用速度更快,但会降低可读性。

实际上,它比%x字符串格式和.format()!快。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.