Python列表追加问题:无法按预期添加多个不同输入值
解决方法:按指定次数读取多个输入值并添加到列表
原代码问题分析
- 仅在循环外部读取一次输入值,导致列表中反复添加的都是第一个输入的数值,没有读取后续输入
- 循环条件
x <= num_of_floats错误,会让循环执行次数比指定次数多1次(例如输入5时,会执行6次循环)
修正后的代码(while循环版本)
num_of_floats = int(input()) data_nums = [] x = 0 while x < num_of_floats: # 每次循环读取新的输入值 user = float(input()) data_nums.append(user) x += 1 print(data_nums)
更简洁的列表推导式版本
num_of_floats = int(input()) # 直接通过列表推导式生成目标列表 data_nums = [float(input()) for _ in range(num_of_floats)] print(data_nums)
修正说明
- 将输入读取操作移到循环内部,确保每次循环都获取新的用户输入
- 调整循环条件为
x < num_of_floats,保证循环执行次数与指定的num_of_floats完全一致 - 列表推导式版本利用Python语法糖,用更简洁的方式实现需求,可读性和效率更优
内容的提问来源于stack exchange,提问作者Ronaldo Gomez Santos
相关产品推荐
相关产品推荐

