Python求数字平均值程序异常:输入2、3、4结果为2而非3
问题分析与解决方案
你的代码问题在于把终止输入的-1也计入了计算列表。比如输入2、3、4后输入-1,列表会变成[2,3,4,-1],总和是8,长度是4,8/4=2,这就是得到错误平均值的原因。
修正方案一:添加前判断是否为-1
修改循环逻辑,只有当输入的数字不是-1时,才添加到列表中:
number_list = [] while True: number = int(input('Enter a number: ')) if number == -1: break number_list.append(number) # 避免空列表报错 if number_list: print(sum(number_list) / len(number_list)) else: print('没有输入有效数字')
修正方案二:循环结束后移除-1
如果坚持保留原while-else结构,可以在计算前把列表末尾的-1移除:
number = 0 number_list = [] while number != -1: number = int(input('Enter a number: ')) number_list.append(number) else: # 移除终止用的-1 number_list.pop() if number_list: print(sum(number_list) / len(number_list)) else: print('没有输入有效数字')
注意:两种方案都加入了空列表判断,避免用户直接输入-1导致除以0的错误。
内容的提问来源于stack exchange,提问作者churlish404
相关产品推荐
相关产品推荐

