在Python中将整数转换为字符串

问题描述 投票:0回答:14

如何将整数转换为字符串?

42   ⟶   "42"

相反,请参阅如何将字符串解析为浮点数或整数?。浮点数可以类似地处理,但处理小数点可能很棘手,因为浮点值不精确。有关更具体的建议,请参阅将浮点数转换为字符串而不进行舍入

python string integer
14个回答
2347
投票
>>> str(42)
'42'

>>> int('42')
42

文档链接:

str(x)
通过调用
x
将任何对象
x.__str__()
转换为字符串,如果 repr(x)
 没有 
x
方法,则调用
__str__()


154
投票

试试这个:

str(i)

72
投票

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

要将对象转换为字符串,请使用

str()
函数。它适用于任何定义了名为
__str__()
的方法的对象。事实上

str(a)

相当于

a.__str__()

如果您想将某些内容转换为

int
float
等,也同样


21
投票

管理非整数输入:

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

19
投票
>>> 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

16
投票

对于 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'>

更详细的答案,可以查看这篇文章:Converting Python Int to String and Python String to Int


13
投票

在 Python => 3.6 中,您可以使用

f
格式:

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

8
投票

我认为最体面的方式是``。

i = 32   -->    `i` == '32'

8
投票

您可以使用

%s
.format
:

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

或者:

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

7
投票

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

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

更多详情,可以参考Stack Overflow问题显示带前导零的数字


5
投票

随着 Python 3.6 中引入 f-strings,这也将起作用:

f'{10}' == '10'

它实际上比调用

str()
更快,但代价是可读性。

事实上,它比

%x
字符串格式化和
.format()

更快

1
投票

在Python中有多种将整数转换为字符串的方法。 您可以使用 [ str(integer here) ] 函数、f 字符串 [ f'{integer here}']、.format() 函数 [ '{}'.format(integer here) 甚至 '%s' % 关键字 [ '%s'% 此处为整数]。所有这些方法都可以将整数转换为字符串。

见下面的例子

#Examples of converting an intger to string

#Using the str() function
number = 1
convert_to_string = str(number)
print(type(convert_to_string)) # output (<class 'str'>)

#Using the f-string
number = 1
convert_to_string = f'{number}'
print(type(convert_to_string)) # output (<class 'str'>)

#Using the  {}'.format() function
number = 1
convert_to_string = '{}'.format(number)
print(type(convert_to_string)) # output (<class 'str'>)

#Using the  '% s '% keyword
number = 1
convert_to_string = '% s '% number
print(type(convert_to_string)) # output (<class 'str'>)



0
投票

这是一个更简单的解决方案:

one = "1"
print(int(one))

输出控制台

>>> 1

在上面的程序中,int()用于转换整数的字符串表示形式。

注意:字符串格式的变量只有完全由数字组成时才能转换为整数。

同样,str()用于将整数转换为字符串。

number = 123567
a = []
a.append(str(number))
print(a) 

我使用列表来打印输出以突出显示变量 (a) 是一个字符串。

输出控制台

>>> ["123567"]

但是要了解列表存储字符串和整数的区别,请先查看下面的代码,然后再查看输出。

代码

a = "This is a string and next is an integer"
listone=[a, 23]
print(listone)

输出控制台

>>> ["This is a string and next is an integer", 23]

0
投票

您也可以致电

format()

format(42)                 # 42 --> '42'

如果您想添加千位分隔符:

num = 123456789
format(num, ",")           # '123,456,789'
f"{num:,}"
"{:,}".format(num)

或转换为浮点数的字符串表示形式

format(num, ",.2f")        # '123,456,789.00'
f"{num:,.2f}"
'{:,.2f}'.format(num)

对于“欧洲”分隔符:

format(num, "_.2f").replace('.', ',').replace('_', '.')   # '123.456.789,00'
f"{num:_.2f}".replace('.', ',').replace('_', '.')
"{:_.2f}".format(num).replace('.', ',').replace('_', '.')
© www.soinside.com 2019 - 2024. All rights reserved.