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()将字符串转换为布尔值。
在实际应用中,根据具体的需求选择合适的方法进行转换即可。
极客笔记