python的嵌套循环

python的嵌套循环,python,nested,Python,Nested,我有一个嵌套循环问题。在一年中,我希望我的循环将一年中每个月的每个数字相加。当这一年结束时,我希望它在0开始,而不是把去年的数字加起来,再加上新的一年 最后,它应该告诉我每年的总数,并给我所有年份的平均值 这是我的样本,如果有人能帮我完成它: total_rain = 0 month = 12 y = 0 rain = 0 month_rain = 0 years = int(input("How many years: ")) for y in range(years): y +=

我有一个嵌套循环问题。在一年中,我希望我的循环将一年中每个月的每个数字相加。当这一年结束时,我希望它在0开始,而不是把去年的数字加起来,再加上新的一年

最后,它应该告诉我每年的总数,并给我所有年份的平均值

这是我的样本,如果有人能帮我完成它:

total_rain = 0
month = 12
y = 0
rain = 0
month_rain = 0
years = int(input("How many years: "))

for y in range(years):
    y += 1
    print()
    print("In the year", y,"There will be:")

    for m in range(month):
        rain = float(input('How many inch of rainfall have fallen: ')) 
    total_rain += rain
    print(month_rain)
main() 
每次循环结束时,它都会添加上一年的数字。我希望新循环再次从0开始,并将数字相加

total_rain = 0
month = 12
rain = 0
years = int(input("How many years: "))

for y in range(years):
    month_rain = 0
    print()
    print("In the year", y,"There will be:")

    for m in range(month):
        rain = float(input('How many inch of rainfall have fallen: ')) 
        month_rain += rain
    total_rain += month_rain
    print("year %s: %s" % (y, month_rain) )
print("total rain: %s" % (total_rain/years))
首先,我更正了“total_rain+=rain”的缩进,因为它嵌套在第二个for循环之外,因此它实际上不会添加每次输入的rain

然后我所做的就是将总降雨量设置为0以重置它


它就像一个符咒,与您自己的代码非常相似。

不要在循环中增加
y
。的
已经做到了这一点。@jspurim:OP正在为范围(1年+1年)内的y实现
我建议您看看为什么调用main(),有必要吗?@inspectorG4dget Ohh我理解。无论如何,他应该这样做,而不是迭代下面的一个值并在每次迭代时进行更正。你能解释一下,如果你从未使用过它,为什么要打印月雨吗?这只是为了检查我的程序是否工作正常。我是python新手,所以我总是这样做,以确保我的程序符合我的要求。@haifzhan谢谢!我忘了计算它。编辑。我仍在读我的书《重复结构》的第5章,所以我还没有读到列表章节,但我会保存你的作品,当我读到列表章节时,检查你的作品并尝试理解步骤。非常感谢。伟大的请考虑将我的答案标记为已接受。(点击我答案左边的灰色复选标记接受)
total_rain = []
months = 12
years = int(input("How many years: "))
for y in range(1, years+1):
    print("In the year", y,"There will be:")
    annual_rain = []
    for m in range(1,13):
        rain = float(input('How many inch of rainfall have fallen in month %s: ' %m))
        annual_rain.append(rain)
    total_rain.append(annual_rain)

for y,year in enumerate(total_rain, 1):
    print("Total rain in year %s: %s. Average monthly rain: %s" %(y, sum(year), sum(year)/len(year)))
for y in range(years):
    y += 1
    for m in range(month):
        rain = float(input('How many inch of rainfall have fallen: '))
        total_rain += rain
    print("In the year", y,"There will be:", total_rain," inches of rain")
    #reset variable
    total_rain = 0