Python 字符转数字
1. 引言
在编程中,经常需要将字符转换为对应的数字。例如在处理字符串数据时,我们可能需要将字符串中的数字字符转换为实际的数字,以进行数值计算或比较。Python 提供了很多方式来实现字符转数字的操作,本文将详细介绍这些方法。
2. 内置函数 ord()
Python 中的内置函数 ord()
可以返回一个字符的 Unicode 数值。Unicode 是一种字符编码标准,为每个字符分配一个唯一的数值。
2.1 基本用法
下面是使用 ord()
函数将字符转换为对应的 Unicode 数值的基本用法:
char = 'A'
unicode_value = ord(char)
print(unicode_value)
运行上述代码,将输出字符 'A'
对应的 Unicode 数值 65
。
2.2 示例
下面是一个示例,将字符串中的每个字符转换为对应的 Unicode 数值并输出:
string = 'Hello'
for char in string:
unicode_value = ord(char)
print(unicode_value)
运行上述代码,将输出字符串 'Hello'
中每个字符的 Unicode 数值:
72
101
108
108
111
3. 字符串转整数
3.1 内置函数 int()
Python 中的内置函数 int()
可以将字符串转换为整数。该函数支持不同的进制转换,默认将字符串解释为十进制数字。
3.2 基本用法
下面是使用 int()
函数将字符串转换为整数的基本用法:
string = '1234'
integer = int(string)
print(integer)
运行上述代码,将输出字符串 '1234'
对应的整数 1234
。
3.3 注意事项
- 当字符串中包含非数字字符时,将会引发
ValueError
异常。为了避免这种情况,我们可以使用try-except
语句来捕获异常。 -
当字符串表示的整数超出可表示范围时,将引发
OverflowError
异常。在处理大数时,可以使用其他方法或第三方库,例如numpy
的numpy.int64
类型。
3.4 示例
下面是一个示例,将字符串列表转换为整数并输出:
strings = ['123', '456', '789']
for string in strings:
try:
integer = int(string)
print(integer)
except ValueError:
print(f'Cannot convert "{string}" to integer')
运行上述代码,将输出字符串列表 ['123', '456', '789']
中每个字符串对应的整数:
123
456
789
4. 字符串转浮点数
4.1 内置函数 float()
Python 中的内置函数 float()
可以将字符串转换为浮点数。与 int()
函数类似,float()
函数也支持不同的进制转换,默认将字符串解释为十进制浮点数。
4.2 基本用法
下面是使用 float()
函数将字符串转换为浮点数的基本用法:
string = '3.14'
float_number = float(string)
print(float_number)
运行上述代码,将输出字符串 '3.14'
对应的浮点数 3.14
。
4.3 注意事项
- 当字符串中包含无效浮点数(例如
'NaN'
和'Infinity'
)或非数字字符时,将会引发ValueError
异常。 -
当字符串表示的浮点数超出可表示范围时,将引发
OverflowError
异常。
4.4 示例
下面是一个示例,将字符串列表转换为浮点数并输出:
strings = ['3.14', '2.718', 'NaN', 'Infinity', 'abc']
for string in strings:
try:
float_number = float(string)
print(float_number)
except ValueError:
print(f'Cannot convert "{string}" to float')
运行上述代码,将输出字符串列表 ['3.14', '2.718', 'NaN', 'Infinity', 'abc']
中每个字符串对应的浮点数或异常信息:
3.14
2.718
Cannot convert "NaN" to float
Cannot convert "Infinity" to float
Cannot convert "abc" to float
5. 字符串转布尔值
5.1 内置函数 bool()
Python 中的内置函数 bool()
可以将字符串转换为布尔值。在字符串转换为布尔值时,遵循以下规则:
'False'
、'0'
、''
(空字符串)和None
被转换为False
。- 其他字符串被转换为
True
。
5.2 基本用法
下面是使用 bool()
函数将字符串转换为布尔值的基本用法:
string1 = 'True'
bool_value1 = bool(string1)
print(bool_value1)
string2 = 'False'
bool_value2 = bool(string2)
print(bool_value2)
string3 = '0'
bool_value3 = bool(string3)
print(bool_value3)
string4 = ''
bool_value4 = bool(string4)
print(bool_value4)
运行上述代码,将输出字符串 'True'
对应的布尔值 True
、字符串 'False'
对应的布尔值 False
、字符串 '0'
对应的布尔值 False
、空字符串对应的布尔值 False
。
5.3 示例
下面是一个示例,将字符串列表转换为布尔值并输出:
strings = ['True', 'False', '0', '', 'Python']
for string in strings:
bool_value = bool(string)
print(f'{string}: {bool_value}')
运行上述代码,将输出字符串列表 ['True', 'False', '0', '', 'Python']
中每个字符串对应的布尔值:
True: True
False: True
0: False
: False
Python: True
6. 结论
Python 提供了多种方式来实现字符转数字的操作。本文介绍了以下方法:
- 使用内置函数
ord()
将字符转换为 Unicode 数值。 - 使用内置函数
int()
将字符串转换为整数。 - 使用内置函数
float()
将字符串转换为浮点数。 - 使用内置函数
bool()
将字符串转换为布尔值。
在实际应用中,根据具体的需求选择合适的方法进行转换即可。