【问题标题】:I can't seem to figure out how to display something through nested loops我似乎无法弄清楚如何通过嵌套循环显示某些东西
【发布时间】:2017-03-13 21:38:49
【问题描述】:

我几乎完成了一个学校课程,但我不知道我还需要什么。问题来了:

编写一个程序,使用嵌套循环来收集数据并计算 多年的平均降雨量。该程序应首先 询问年数。外部循环将为每个迭代一次 年。内部循环将迭代十二次,每个月一次。 内部循环的每次迭代都会询问用户的英寸 那个月的降雨量。在所有迭代之后,程序应该 显示月数、总降雨量和 整个时期的每月平均降雨量。

我使用第一个循环对每年进行迭代,第二个循环对月份进行迭代,即 12。在月份循环中,我询问降雨量为多少英寸,并且使每次迭代等于 TotalYearlyRainfall,这样它将它添加到变量中。我创建了一个名为 grandTotal 的新变量来等于 TotalYearlyRainfall。

for xxx in range(1,13):

这是我在表格内工作的第三个循环,我将 xxx 作为变量来计算每次迭代以在左侧列中显示每个月。

print (xxx,"              ",Rainfall(xx)) 

我不确定如何处理此处的第二个区域,以显示用户在每个月的第二个循环中输入的内容。在这一点上,我真的只是在猜测该放什么,看看它是否有效。

这是我的源代码:

Years = int(input("Enter the number of years.")) #Based on user input, the loop will iterate 'Years' times.
TotalYearlyRainfall = 0 #define properly
grandTotal = 0 #define properly
for x in range(1,Years+1): #How many years
    for xx in range(1,13): #The months in each
        Rainfall = int(input(("How many inches of rainfall for month ",xx,"/12?")))
        TotalYearlyRainfall += Rainfall #T.Y.R is equal to Rainfall, as it adds each Rainfall.
        grandTotal = TotalYearlyRainfall
        #print (TotalYearlyRainfall)
print ("Months       Rainfall(in)") #Table
print ("-------------------------") #Table
for xxx in range(1,13): #months
    print (xxx,"              ",Rainfall(xx)) #I am stuck on this line...
print ("-------------------------") #Table
print ("Total Rainfall: ",grandTotal) #prints the grandTotal
Average = grandTotal / xx
print ("Average(in): ",Average) #Average amount of rainfall per month

'''
if 1-12 inputted for each
consecutive month,

Total: 78 inches.
Average: 6.5 inches.
'''

提前致谢!

【问题讨论】:

  • 为什么要打印表格?它似乎没有说你需要在提示中。我在想月数:12,总共 144,平均:12
  • 我正在打印一张表格来组织和使输出看起来更好,它只需要几秒钟,而且处理起来并不难。好的,但是我在如何显示用户在循环外的第二个 for 循环中输入的内容时遇到了麻烦......

标签: python loops


【解决方案1】:

在所有迭代之后,程序应该显示 月、总降雨量和平均降雨量 整个期间的月份。

所以你真正需要做的就是打印三个数字:

  1. 总月数
  2. 整个时期的总降雨量
  3. 每月平均下降量(即第 1 号/第 2 号)

不过,您需要稍微修改一下代码,因为目前您的总计在每个月之后都会被覆盖,而且在询问年数时括号太多。您也根本不需要年总降雨量!试试:

Years = int(input("Enter the number of years: ")) #Based on user input, the loop will iterate 'Years' times.
grandTotal = 0 #define properly

for x in range(1,Years+1): #How many years
    for xx in range(1,13): #The months in each
        Rainfall = int(input("How many inches of rainfall for month "+str(xx)+"/12: "))
        grandTotal += Rainfall #add that months rainfall to the total

Months = Years*12 #works out the number of months
Average = grandTotal/(Years*12) #works out the average

print ("Number of months (months): ", Months) #prints the total number of months
print ("Total Rainfall (in): ",grandTotal) #prints the grandTotal
print ("Average Rainfall (in per month): ",Average) #Average amount of rainfall per month

【讨论】:

  • 哦...我现在明白了。我被问到的大多数问题对我来说措辞都很奇怪,有时我只是从其他人那里解释它到底在问我什么。非常感谢 :) 我知道我哪里出错了。
  • 我只是很难理解整个 Variable += OtherVariable 类型的东西,以及每次迭代如何影响它等等。我想我得深入研究一下。
  • 很高兴。 variable += other_variable 只是写 variable = variable + other_variable 的一种更短的方式。他们都做同样的事情。您只是将other_variable 的值添加到variable!橡皮鸭调试将来可能会帮助您解决类似的问题 - 尝试向橡皮鸭解释您的问题。虽然他们无法告诉您答案,但有时简化问题会有所帮助!
猜你喜欢
  • 2013-04-03
  • 2021-06-04
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 2014-05-19
  • 2020-11-14
相关资源
最近更新 更多