欢迎访问宙启技术站
智能推送

Python函数——如何将字符串转换为数字?

发布时间:2023-06-30 00:33:57

Python中可以使用内置的函数int()float()或者一些其他技巧来将字符串转换为数字。

1. 使用int()函数将字符串转换为整数:

num_str = "12345"
num_int = int(num_str)
print(num_int)   # 输出:12345

2. 使用float()函数将字符串转换为浮点数:

num_str = "3.14"
num_float = float(num_str)
print(num_float)   # 输出:3.14

3. 使用eval()函数将字符串转换为数字(支持转换为整数或浮点数):

num_str = "12345"
num = eval(num_str)
print(num)   # 输出:12345

num_str = "3.14"
num = eval(num_str)
print(num)   # 输出:3.14

注意:eval()函数会根据字符串的内容自动判断应该转换为整数还是浮点数。

4. 使用isdigit()函数判断字符串是否为纯数字,然后再进行转换:

num_str = "12345"
if num_str.isdigit():
    num_int = int(num_str)
    print(num_int)   # 输出:12345
else:
    print("输入的不是一个纯数字字符串")

num_str = "3.14"
if num_str.isdigit():
    num_float = float(num_str)
    print(num_float)
else:
    print("输入的不是一个纯数字字符串")

5. 使用正则表达式匹配数字,并提取:

import re

num_str = "The number is 12345."
match = re.search(r'\d+', num_str)
if match:
    num_int = int(match.group())
    print(num_int)   # 输出:12345
else:
    print("没有找到数字")

num_str = "The number is 3.14."
match = re.search(r'\d+(\.\d+)?', num_str)
if match:
    num_float = float(match.group())
    print(num_float)   # 输出:3.14
else:
    print("没有找到数字")

无论使用哪种方法,都需要确保传入的字符串是一个有效的数字形式,否则会导致转换失败并抛出异常。如果字符串中包含非数字字符,则无法直接转换为数字。在转换之前,需要对字符串进行处理,确保其中只包含数字字符。