在本教程中,我们将学习如何在Python中将字符串转换为整数以及整数转换为字符串。在我们之前的教程中,我们学习了关于Python列表附加函数的内容。
Python字符串转整数
如果您阅读过我们之前的教程,您可能会注意到在某些时候我们使用了这种转换。实际上,在许多情况下都是必需的。例如,当您从文件中读取一些数据时,它将以字符串格式存在,您将不得不将字符串转换为整数。现在,我们将直接进入代码。如果要将以字符串表示的数字转换为整数,您必须使用int()
函数来实现。请看以下示例:
num = '123' # string data
# 打印类型
print('Type of num is :', type(num))
# 使用int()进行转换
num = int(num)
# 打印类型 again
print('Now, type of num is :', type(num))
以下代码的输出将为
Type of num is : <class 'str'>
Now, type of num is : <class 'int'>

从不同进制转换字符串为整数
如果要转换为整数的字符串属于除了十进制以外的不同进制,您可以指定转换的基数。但请记住,输出的整数始终是十进制。另一件您需要记住的事情是,给定的基数必须在2到36之间。看下面的例子,以理解带有基数参数的字符串转换为整数。
num = '123'
# 打印原始字符串
print('The original string :', num)
# 将'123'视为十进制,将其转换为十进制
print('Base 10 to base 10:', int(num))
# 将'123'视为八进制,将其转换为十进制
print('Base 8 to base 10 :', int(num, base=8))
# 将'123'视为六进制,将其转换为十进制
print('Base 6 to base 10 :', int(num, base=6))
以下代码的输出将是

将字符串转换为整数时出现 ValueError
在将字符串转换为整数时,可能会遇到 ValueError
异常。如果要转换的字符串不表示任何数字,则会出现此异常。假设你想将十六进制数转换为整数。但在 int() 函数中没有传递参数 base=16。如果存在任何不属于十进制数字系统的数字,则会引发 ValueError
异常。以下示例将说明在将字符串转换为整数时发生的此异常。
"""
Scenario 1: The interpreter will not raise any exception but you get wrong data
"""
num = '12' # this is a hexadecimal value
# 在转换期间,变量被视为十进制值
print('The value is :', int(num))
# 在转换期间,变量被视为十六进制值
print('Actual value is :', int(num, base=16))
"""
Scenario 2: The interpreter will raise ValueError exception
"""
num = '1e' # this is a hexadecimal value
# 在转换期间,变量被视为十六进制值
print('Actual value of \'1e\' is :', int(num, base=16))
# 在转换期间,变量被视为十进制值
print('The value is :', int(num)) # this will raise exception
上述代码的输出将是:
The value is : 12
Actual value is : 18
Actual value of '1e' is : 30
Traceback (most recent call last):
File "/home/imtiaz/Desktop/str2int_exception.py", line 22, in
print('The value is :', int(num)) # this will raise exception
ValueError: invalid literal for int() with base 10: '1e'

Python整数转换为字符串
将整数转换为字符串不需要任何努力或检查。你只需使用 str()
函数进行转换。请参阅以下示例。
hexadecimalValue = 0x1eff
print('Type of hexadecimalValue :', type(hexadecimalValue))
hexadecimalValue = str(hexadecimalValue)
print('Type of hexadecimalValue now :', type(hexadecimalValue))
以下代码的输出将是:
Type of hexadecimalValue : <class 'int'>
Type of hexadecimalValue now : <class 'str'>

这就是关于Python将字符串转换为整数和整数转换为字符串的全部内容。参考:Python官方文档
Source:
https://www.digitalocean.com/community/tutorials/python-string-to-int-int-to-string