使用split方法存储输入值并计算数字平均值的Python实现咨询
现有代码问题分析
- 直接对
input()返回的字符串调用int()转换,得到的是单个整数对象,整数没有split()方法,运行时会直接抛出属性错误。 - 即使去掉外层的
int()转换,split()返回的是字符串列表,直接对列表元素执行加法会触发字符串拼接逻辑,无法得到正确的数值运算结果。
修复后的基础实现(适配固定3个数字输入的需求)
a, b, c = map(int, input("enter 3 numbers:").split()) average = (a + b + c) / 3 print(average)
通用优化方案(支持任意数量数字输入,无需硬编码变量)
该方案不用提前限定输入的数字个数,可自动适配用户输入的有效数字数量计算平均值:
nums = list(map(int, input("请输入任意个数字,用空格分隔:").split())) average = sum(nums) / len(nums) print(f"平均值为:{average}")
如果需要提升程序鲁棒性,避免用户输入非数字、空内容时程序崩溃,可以增加输入校验逻辑:
while True: input_content = input("请输入任意个数字,用空格分隔:").strip() # 校验空输入 if not input_content: print("未输入任何内容,请重新输入") continue try: nums = list(map(int, input_content.split())) break except ValueError: print("输入包含非数字内容,请重新输入") average = sum(nums) / len(nums) # 保留两位小数输出,可按需调整格式 print(f"平均值为:{average:.2f}")
内容的提问来源于stack exchange,提问作者Amal Sebastian
相关产品推荐
相关产品推荐

