为什么我的While循环省略了最后一个输入并在列表中添加了一个0 ?



我想构建一个程序,获取7天每天的降雨量,然后输出这些天的总降雨量和平均降雨量。

首先,我创建了一个while循环来接受输入:

rainfall = 0
rain = []
counter = 1
while counter < 8:
rain.append(rainfall)
rainfall = float(input("Enter the rainfall of day {0}: ".format(counter)))
counter += 1
print(rain)

但是生成的输出不是我所期望的:

[0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0]

它将输入一个0作为第一个值,然后省略最后一个输入(这里输入为1到7为例)

这是符合你目标的正确版本。

rain = []
counter = 1
while counter <= 7:
rainfall = float(input("Enter the rainfall of day {0}: ".format(counter)))
rain.append(rainfall)
counter += 1
print(rain)

您正在传递为降雨创建的默认参数。无需设置默认降雨量

在while的第一行:

rain.append(rainfall)

此时因为没有重新赋值,所以rainfall仍然是之前设置的值:

rainfall = 0

和你的while for the numbers

1, 2, 3, 4, 5, 6, 7

因为它们是整数< 8

最新更新