在 Python 中将整数转换为字符串
- 2025-01-03 08:40:00
- admin 原创
- 99
问题描述:
如何将整数转换为字符串?
42 ⟶ "42"
反向操作请参见如何将字符串解析为浮点数或整数?。浮点数可以用类似方式处理,但处理小数点可能比较棘手,因为浮点值不精确。有关更具体的建议,请参见将浮点数转换为字符串而不进行四舍五入。
解决方案 1:
>>> str(42)
'42'
>>> int('42')
42
文档链接:
int()
str()
str(x)
通过调用将任何对象转换x
为字符串,或者如果没有方法。x.__str__()
`repr(x)x
__str__()`
解决方案 2:
尝试一下:
str(i)
解决方案 3:
Python 中没有类型转换和类型强制。你必须以显式方式转换变量。
要将对象转换为字符串,请使用该str()
函数。它适用于任何具有名为 defined 的方法的对象__str__()
。事实上
str(a)
相当于
a.__str__()
如果您想将某些东西转换为int
、float
等,方法也是一样。
解决方案 4:
要管理非整数输入:
number = raw_input()
try:
value = int(number)
except ValueError:
value = 0
解决方案 5:
>>> 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
解决方案 6:
对于 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 转换为字符串和将 Python 字符串转换为 Int
解决方案 7:
在 Python => 3.6 中,您可以使用f
格式化:
>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
解决方案 8:
我认为最得体的方式是“”。
i = 32 --> `i` == '32'
解决方案 9:
您可以使用%s
或.format
:
>>> "%s" % 10
'10'
>>>
或者:
>>> '{}'.format(10)
'10'
>>>
解决方案 10:
对于想要将 int 转换为特定数字的字符串的人,建议使用下面的方法。
month = "{0:04d}".format(localtime[1])
有关更多详细信息,可以参考 Stack Overflow 问题显示带有前导零的数字。
解决方案 11:
随着Python 3.6 中f 字符串的引入,这也可以起作用:
f'{10}' == '10'
它实际上比调用更快str()
,但是以可读性为代价。
事实上,它比%x
字符串格式化更快.format()
!
解决方案 12:
在 Python 中,有几种方法可以将整数转换为字符串。您可以使用 [ str(integer here) ] 函数、f 字符串 [ f'{integer here}']、.format() 函数 [ '{}'.format(integer here) 甚至 '%s'% 关键字 [ '%s'% integer here]。所有这些方法都可以将整数转换为字符串。
参见以下示例
#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'>)
解决方案 13:
这是一个更简单的解决方案:
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]
解决方案 14:
您也可以致电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('_', '.')