首页 > 解决方案 > 如何将循环中给出的所有值输入到列表中?

问题描述

我正在尝试创建一个天气程序,根据数据为您提供一年中每月的平均降水量以及一年中的最大和最小降水量。我一直试图将程序中的所有值输入到每个单独值的列表中。当我尝试使用代码时,它只是成为程序中为所有 12 个值给出的最后一个数字。

def Input():
values = -1
num_values = 0
n = 0
       
while (num_values < 12):
    num_values += 1
    n += 1
    answer = input('Enter precipitation data for month ' + str(n) + ': ')
    arr = [];
    for A in range(1,12):
        values = int(answer)
        arr.append(values);
for inp in arr:
    print(inp)

任何帮助表示赞赏。

标签: python-3.x

解决方案


原因是列表arr在每次迭代中都被初始化,因此只有最后一次迭代数据被附加到它:

arr = [] # init the list outside the loop, without the semi-colon ;)
while (num_values < 12):
    num_values += 1
    n += 1
    answer = input('Enter precipitation data for month ' + str(n) + ': ')
    for A in range(1,12):
        values = int(answer)
        arr.append(values);
for inp in arr:
    print(inp)

推荐阅读