如何将整数转换为字符串?
42 ⟶ "42"
相反,请参阅如何将字符串解析为浮点数或整数?。浮点数可以类似地处理,但处理小数点可能很棘手,因为浮点值不精确。有关更具体的建议,请参阅将浮点数转换为字符串而不进行舍入。
>>> str(42)
'42'
>>> int('42')
42
文档链接:
str(x)
通过调用 x
将任何对象 x.__str__()
转换为字符串,如果 repr(x)
没有
x
方法,则调用 __str__()
。
试试这个:
str(i)
Python 中没有类型转换和类型强制。您必须以显式方式转换变量。
要将对象转换为字符串,请使用
str()
函数。它适用于任何定义了名为 __str__()
的方法的对象。事实上
str(a)
相当于
a.__str__()
如果您想将某些内容转换为
int
、float
等,也同样
管理非整数输入:
number = raw_input()
try:
value = int(number)
except ValueError:
value = 0
>>> 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
对于 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
在 Python => 3.6 中,您可以使用
f
格式:
>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
我认为最体面的方式是``。
i = 32 --> `i` == '32'
您可以使用
%s
或 .format
:
>>> "%s" % 10
'10'
>>>
或者:
>>> '{}'.format(10)
'10'
>>>
对于想要将 int 转换为特定数字的 string 的人,建议使用以下方法。
month = "{0:04d}".format(localtime[1])
更多详情,可以参考Stack Overflow问题显示带前导零的数字。
随着 Python 3.6 中引入 f-strings,这也将起作用:
f'{10}' == '10'
它实际上比调用
str()
更快,但代价是可读性。
事实上,它比
%x
字符串格式化和 .format()
! 更快
在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'>)
这是一个更简单的解决方案:
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]
您也可以致电
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('_', '.')