Python实现无列表提取字符串数字并统计数量、求和及平均值的函数需求
Python函数:提取字符串数字并统计(无列表实现)
嘿,这就给你搞定这个需求!咱们要写一个不依赖列表的Python函数,从用户输入的字符串(包含a-z字母和最多8位数字)里提取数字,还得统计个数、总和和平均值。直接上代码:
def process_string(input_str): digit_count = 0 digit_total = 0 # 遍历字符串的每个字符 for char in input_str: if char.isdigit(): # 转换为整数并更新统计值 num = int(char) digit_count += 1 digit_total += num # 计算平均值,处理无数字的情况 if digit_count == 0: return (0, 0, None) digit_average = digit_total / digit_count return (digit_count, digit_total, digit_average) # 调用函数并处理用户输入 if __name__ == "__main__": user_input = input("请输入包含字母和数字的字符串:") count, total, avg = process_string(user_input) if count > 0: print(f"提取到的数字个数:{count}") print(f"数字总和:{total}") print(f"数字平均值:{avg:.2f}") else: print("输入的字符串里没有数字哦!")
代码细节说明:
- 核心逻辑:完全不用列表,靠两个变量
digit_count和digit_total分别跟踪数字的数量和总和。遍历每个字符时用isdigit()判断是否为数字,是的话就转成整数更新统计值。 - 边界处理:特意考虑了输入无数字的情况,返回
None作为平均值,避免触发除以0的错误,调用时会给出友好提示。 - 输出优化:平均值保留两位小数,让结果更直观易读。
测试示例:
如果输入hello123world45,输出会是:
提取到的数字个数:5 数字总和:15 数字平均值:3.00
如果输入onlyletters,则输出:
输入的字符串里没有数字哦!
内容的提问来源于stack exchange,提问作者simpleasthat
相关产品推荐
相关产品推荐

