代码之家  ›  专栏  ›  技术社区  ›  abenol

外部嵌套循环Python的累加器

  •  0
  • abenol  · 技术社区  · 7 年前

    我正在自学python并解决问题。在一个问题中,用户输入一年中每个月在一段时间内的降雨量。我需要找出每年的平均降雨量(月降雨量)/月降雨量,以及该时期的平均降雨量,例如两年。在下面的代码中,我可以得到每年的平均值(为了避免繁琐的输入,我只用了3个月而不是12个月),但是我不知道我需要在哪里放置一个累加器来计算这段时间内的总降雨量,然后取平均值。我感谢你的帮助。

    number_of_months = 3
    years_in_period = int(input("Please enter the number of years in the period. \n"))
    
    for year in range(years_in_period):
        yearly_rain = 0
        print('Year', year+1) 
        print('−−−−−−−−−−−−−−−−−')
        for month in range(number_of_months):
            print('Month', month+1, end='')
            monthly_rain = float(input("Please enter rainfall for this month: \n"))
            yearly_rain += monthly_rain
            average_yearly_rainfall = yearly_rain / number_of_months
        print("Average yearly rainfall of year ", year+1, " is ", average_yearly_rainfall)
        print("Year total rain is", yearly_rain)
        print()
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Pedro Martins de Souza Regeesh Chandran    7 年前

    如果我理解了你想要的(计算该期间降雨量的绝对平均值),这应该可以做到:

    number_of_months = 3
    years_in_period = int(input("Please enter the number of years in the period. \n"))
    
    total_rain = 0
    
    for year in range(years_in_period):
        yearly_rain = 0
        print('Year', year+1) 
        print('−−−−−−−−−−−−−−−−−')
    
        for month in range(number_of_months):
            print('Month', month+1, end='')
            monthly_rain = float(input("Please enter rainfall for this month: \n"))
    
            yearly_rain += monthly_rain
    
            total_rain += monthly_rain
    
            average_yearly_rainfall = yearly_rain / number_of_months
    
        print("Average yearly rainfall of year ", year+1, " is ", average_yearly_rainfall)
        print("Year total rain is", yearly_rain)
        print()
    
    
    total_months = years_in_period * number_of_months
    print("Absolute average of rain/month was", total_rain/total_months)
    print("Absolute average of rain/year was", total_rain/years_in_period)