Python 中将字符串转换为数字146


在 Python 中,字符串和数字是两种不同的数据类型。有时,我们需要将字符串转换为数字才能进行进一步的处理。本文将介绍几种在 Python 中将字符串转换为数字的方法。

1. 使用内置函数 int()

int() 函数是将字符串转换为整数的最常用方法。它接受一个字符串参数并返回一个整数值。如果字符串中包含非数字字符,则会引发 ValueError 异常。
>>> int("123")
123
>>> int("456.78")
ValueError: invalid literal for int() with base 10: '456.78'

2. 使用 float()

float() 函数可用于将字符串转换为浮点数。它接受一个字符串参数并返回一个浮点值。如果字符串中包含非数字字符,则会引发 ValueError 异常。
>>> float("123.45")
123.45
>>> float("678.90")
678.9

3. 使用 ()

() 函数用于将字符串转换为 Decimal 对象。Decimal 对象提供了更高的精度,并允许进行更复杂的操作,例如舍入和四舍五入。
>>> from decimal import Decimal
>>> Decimal("123.456789")
Decimal('123.456789')

4. 使用 NumPy

NumPy 是一个科学计算库,它提供了 numpy.int64() 和 numpy.float64() 等函数来将字符串转换为数字。这些函数通常比内置函数更快,尤其是在处理大型数据时。
>>> import numpy as np
>>> np.int64("123456789")
123456789
>>> np.float64("3.14159265")
3.14159265

5. 使用正则表达式

正则表达式可以用来从字符串中提取数字。我们可以使用 () 或 () 函数来匹配字符串中的数字,然后使用 int() 或 float() 函数将匹配项转换为数字。
>>> import re
>>> digits = (r'\d+', "This is a string with numbers 123 and 456")
['123', '456']
>>> [int(d) for d in digits]
[123, 456]

注意事项

在将字符串转换为数字时,需要注意以下事项:* 进制: int() 和 float() 函数默认使用十进制。如果字符串表示其他进制(例如二进制或十六进制),则需要指定 base 参数。
* 浮点数精度: float() 函数返回的浮点数的精度可能与字符串中的数字不同。这取决于平台和 Python 版本。
* 异常:如果字符串包含非数字字符或格式不正确,则 int() 和 float() 函数会引发 ValueError 异常。

通过使用 int()、float()、()、NumPy 或正则表达式,我们可以轻松地在 Python 中将字符串转换为数字。选择最合适的方法取决于特定需求和字符串的格式。

2024-10-17


上一篇:Python 下载大文件:全面指南

下一篇:Python 中的 main 函数:深入理解