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