Python提取输入字符串中的整数
在日常编程中,经常会遇到需要从用户的输入中提取整数的情况。本文将详细讨论如何使用Python编程语言来提取输入字符串中的整数。
1. 使用正则表达式提取整数
正则表达式是一种强大的字符串匹配工具,可以用来提取字符串中符合特定规则的部分。在Python中,可以使用re模块来操作正则表达式。
以下是一个简单的示例代码,用正则表达式提取输入字符串中的整数:
import re
def extract_integers(input_str):
pattern = r'\b\d+\b' # 匹配一个或多个数字
integers_list = re.findall(pattern, input_str)
integers = [int(i) for i in integers_list]
return integers
input_str = 'Hello 123 World 456'
integers = extract_integers(input_str)
print(integers)
运行以上代码,输出为:
[123, 456]
在这段代码中,我们定义了一个函数extract_integers
,接收一个字符串作为参数。使用正则表达式r’\b\d+\b’匹配字符串中的整数部分,并将提取到的整数转换为整数格式后返回一个整数列表。
2. 使用isdigit方法提取整数
除了使用正则表达式,我们还可以通过遍历输入字符串的每个字符,使用isdigit()方法判断是否为数字来提取整数。
以下是一个示例代码:
def extract_integers_v2(input_str):
integers = []
curr_integer = ''
for char in input_str:
if char.isdigit():
curr_integer += char
elif curr_integer:
integers.append(int(curr_integer))
curr_integer = ''
if curr_integer:
integers.append(int(curr_integer))
return integers
input_str = 'Hello 123 World 456'
integers = extract_integers_v2(input_str)
print(integers)
运行以上代码,输出为:
[123, 456]
在这段代码中,我们定义了一个函数extract_integers_v2
,遍历输入字符串的每个字符,如果是数字则添加到curr_integer
中,直到遇到非数字字符时将curr_integer
转换为整数并添加到整数列表中。
3. 使用Split函数提取整数
另一种提取整数的方法是使用字符串的split方法,根据非数字字符将输入字符串分割为多个子字符串,然后遍历每个子字符串判断是否为整数。
以下是一个示例代码:
def extract_integers_v3(input_str):
integers = []
parts = input_str.split()
for part in parts:
if part.isdigit():
integers.append(int(part))
return integers
input_str = 'Hello 123 World 456'
integers = extract_integers_v3(input_str)
print(integers)
运行以上代码,输出为:
[123, 456]
在这段代码中,我们定义了一个函数extract_integers_v3
,使用split方法根据空格分割输入字符串为多个部分,然后遍历每个部分判断是否为整数并将整数部分添加到整数列表中。
4. 性能对比
在以上三种方法中,使用正则表达式的性能最好,其次是isdigit方法,split方法相对较慢。因此在大规模文本中提取整数时,推荐使用正则表达式方法。
结语
本文详细介绍了如何使用Python提取输入字符串中的整数。通过正则表达式、isdigit方法和split方法三种方式,可以轻松地实现这一功能。在实际开发中,需要根据具体情况选择最适合的方法。