在 Python 中,将整数(int)转换为字符串(str)非常简单,主要使用内置的 str() 函数,下面是详细的说明和示例。

最简单的方法:使用 str() 函数
这是最直接、最常用的方法。str() 函数是 Python 的内置函数,可以将任何对象(包括整数)转换为其字符串表示形式。
语法:
str(object)
示例:
# 定义一个整数变量
my_int = 123
# 使用 str() 函数将其转换为字符串
my_str = str(my_int)
# 检查类型
print(f"原始变量: {my_int}, 类型: {type(my_int)}")
print(f"转换后变量: {my_str}, 类型: {type(my_str)}")
# 输出结果:
# 原始变量: 123, 类型: <class 'int'>
# 转换后变量: 123, 类型: <class 'str'>
进制转换:int 到其他进制字符串
如果你需要将整数转换为特定进制的字符串表示(如二进制、八进制、十六进制),可以使用内置的 bin(), oct(), 和 hex() 函数,这些函数会返回一个带有前缀的字符串。

转换为二进制字符串(以 0b 为前缀)
使用 bin() 函数。
示例:
my_int = 10
binary_str = bin(my_int)
print(f"整数 {my_int} 的二进制字符串是: {binary_str}")
# 输出: 整数 10 的二进制字符串是: 0b1010
转换为八进制字符串(以 0o 为前缀)
使用 oct() 函数。
示例:
my_int = 255
octal_str = oct(my_int)
print(f"整数 {my_int} 的八进制字符串是: {octal_str}")
# 输出: 整数 255 的八进制字符串是: 0o377
转换为十六进制字符串(以 0x 为前缀)
使用 hex() 函数。
示例:
my_int = 255
hex_str = hex(my_int)
print(f"整数 {my_int} 的十六进制字符串是: {hex_str}")
# 输出: 整数 255 的十六进制字符串是: 0xff
去掉前缀的进制转换
有时候你可能不想要 0b, 0o, 0x 这样的前缀,你可以通过字符串切片([2:])来轻松去除它们。
示例:
my_int = 255
# 二进制,无前缀
binary_str_no_prefix = bin(my_int)[2:]
print(f"无前缀的二进制: {binary_str_no_prefix}") # 输出: 11111111
# 八进制,无前缀
octal_str_no_prefix = oct(my_int)[2:]
print(f"无前缀的八进制: {octal_str_no_prefix}") # 输出: 377
# 十六进制,无前缀
hex_str_no_prefix = hex(my_int)[2:]
print(f"无前缀的十六进制: {hex_str_no_prefix}") # 输出: ff
格式化字符串(f-string)
在 Python 3.6 及更高版本中,你可以使用 f-string 来进行更灵活的转换和格式化,这是一种非常现代和推荐的方式。
示例:
my_int = 42
# 基本转换
str_via_fstring = f"{my_int}"
print(f"f-string 转换: {str_via_fstring}, 类型: {type(str_via_fstring)}")
# 格式化为特定宽度的字符串
formatted_str = f"{my_int:10d}" # 宽度为10,右对齐
print(f"格式化为宽度10: '{formatted_str}'")
# 格式化为带填充字符的字符串
padded_str = f"{my_int:05d}" # 宽度为5,用0填充
print(f"用0填充到宽度5: '{padded_str}'")
# 格式化为二进制、八进制、十六进制(无前缀)
bin_via_fstring = f"{my_int:b}"
oct_via_fstring = f"{my_int:o}"
hex_via_fstring = f"{my_int:x}"
print(f"f-string 二进制: {bin_via_fstring}") # 输出: 101010
print(f"f-string 八进制: {oct_via_fstring}") # 输出: 52
print(f"f-string 十六进制: {hex_via_fstring}") # 输出: 2a
| 方法 | 用途 | 示例 (int 123) |
输出 |
|---|---|---|---|
str() |
通用转换(最常用) | str(123) |
'123' |
bin() |
转换为二进制字符串 | bin(123) |
'0b1111011' |
oct() |
转换为八进制字符串 | oct(123) |
'0o173' |
hex() |
转换为十六进制字符串 | hex(123) |
'0x7b' |
| f-string | 现代、灵活的转换和格式化 | f"{123}" |
'123' |
| f-string (进制) | 无前缀的进制转换 | f"{123:b}" |
'1111011' |
- 如果你只需要一个简单的字符串表示,
str()是你的最佳选择。 - 如果你需要处理特定进制(二进制、八进制、十六进制),使用
bin(),oct(),hex(),并记得用切片[2:]去掉前缀。 - 如果你需要更复杂的格式化(如设置宽度、填充字符等),强烈推荐使用 f-string。
