使用append函数收集用户输入数字时首项未被添加的问题求助
问题分析与修复方案
问题根源
- 第一个输入数字丢失:你在进入
while循环前已经获取了第一个number值,但循环内部直接重新输入并覆盖了这个初始值,完全没有把第一个输入的数字添加到list_number中。 - 无效值混入列表:退出时输入的
-1被错误地添加到了列表里,会导致平均值计算结果失真。
修复后的代码方案(更简洁的实现)
list_number = [] while True: number = float(input("Please enter any number (enter (-1) when done): ")) if number == -1: print("You have exited the loop") break list_number.append(number) print(list_number) if not list_number: print("No numbers entered, cannot calculate average.") else: total_num = sum(list_number) num_entries = len(list_number) average = total_num / num_entries print("Average: ", average)
核心修改说明
- 改用
while True循环结构,每次先获取用户输入,直接判断是否为退出指令-1:是则终止循环,否则将有效数字加入列表,彻底避免了初始输入丢失的问题。 - 新增空列表判断逻辑,防止用户直接输入
-1时出现除以0的报错。
内容的提问来源于stack exchange,提问作者Youzohka
相关产品推荐
相关产品推荐

