Python输入列表函数结果异常求助:输入5和2为何得到[5.0,5.0,2.0,12.0]
问题原因分析
你的代码逻辑错误在于每次输入一个数字后就立刻将当前列表的总和追加到列表中,而非等所有数字输入完成后再统一计算总和。
具体执行流程拆解:
- 第一次输入
5:- 将
5.0添加到my_list,此时列表为[5.0] - 计算当前列表的总和
5.0并追加,列表变为[5.0, 5.0]
- 将
- 第二次输入
2:- 将
2.0添加到my_list,此时列表为[5.0, 5.0, 2.0] - 计算当前列表的总和
5.0+5.0+2.0=12.0并追加,列表最终变成[5.0,5.0,2.0,12.0]
- 将
修正后的代码
def input_list(): my_list = [] while True: num = input('') if num == '': break my_list.append(float(num)) # 所有数字输入完成后,再计算总和并追加 my_list.append(sum(my_list)) return my_list
测试输入5和2后,会得到预期的[5.0, 2.0, 7.0]。
内容的提问来源于stack exchange,提问作者Husam
相关产品推荐
相关产品推荐

