Python从字符串中提取连续数字并计算总和与平均值的实现方法
Python实现提取连续数字并计算总和与平均值
推荐用正则模块实现,代码最简洁:
正则实现代码
import re input_str = input() # 提取所有连续数字并转为整数 num_list = list(map(int, re.findall(r'\d+', input_str))) sum_val = sum(num_list) avg_val = sum_val / len(num_list) print(sum_val) print(f"{avg_val:.2f}")
代码说明
re.findall(r'\d+', input_str):\d+是正则匹配规则,代表匹配1个及以上连续的阿拉伯数字,会自动跳过所有非数字字符,返回所有匹配到的数字字符串列表map(int, ...):将匹配到的字符串格式的数字批量转为整数,方便数值计算- f-string的
.2f格式化规则会自动将平均值四舍五入保留两位小数,符合输出要求
如果你不想用正则模块,也可以用手动遍历字符的方式实现:
input_str = input() num_list = [] current = '' for char in input_str: if char.isdigit(): current += char else: if current: num_list.append(int(current)) current = '' # 处理字符串末尾可能存在的未收尾数字 if current: num_list.append(int(current)) sum_val = sum(num_list) avg_val = sum_val / len(num_list) print(sum_val) print(f"{avg_val:.2f}")
内容的提问来源于stack exchange,提问作者pran
相关产品推荐
相关产品推荐

