有python的输出问题;循环总数和平均值

时间:2016-09-27 21:52:56

标签: python loops nested

我的嵌套循环有一些输出问题,通常我会使用break在代码中添加一些行或print()

当我在我的代码中使用print()时,我的输出看起来像是在新行上输入总数而不是我想要的

以下是我当前输出的图片,我需要一个空行;

enter image description here

第二件事:

我的代码没有正确计算信息以查找每月的总降雨量和平均降雨量。

代码如下

def main():

#define accumulators
monthRain = 0
year = 0
monthTotal = 0
months = 0
total = 0 

#get # of years
year = int(input("Enter the number of years to collect data for: "))

#blank line
print()

#define month total befor it is changed below with year + 1
monthTotal = year * 12

#define how many months per year
months = 12

#Find average rainfall per month
for year in range(year):
    #accumulator for rain per month
    total = 0
    #get rainfall per month
    print('Next you will enter 12 months of rainfall data for year', year + 1)
    for month in range(months):
        print("Enter the rainfall for month", month + 1, end='')
        monthRain = float(input(': '))

        #add monthly raingfall to accumulator
        total += monthRain
        average = total / monthTotal

#total months of data 
print('You have entered data for', monthTotal,'months')

#blank line
print()

#total rainfall
print('The total rainfall for the collected months is:', total)
print('The average monthly rainfall for the collected months is:', average)


main()

1 个答案:

答案 0 :(得分:0)

  

以下是我当前输出的图片以及我需要一个空白行的位置

要在You have entered data for之前获得一个空行,请在字符串的开头添加\n。它代表了新的路线。因此,您的print语句应为:

print("\nYou have entered data for")
  

我的代码没有正确计算信息以查找每月的总降雨量和平均降雨量。

在划分两个int值时,python返回int,默认情况下不包括浮点精度。为了获得float值,将分子或分母转换为float。例如:

>>> 1/5
0  # <-- Ignored float value as between two int
>>> 1/float(5)
0.2  #<-- Float value to conversion of denomenator to float

此外,在average = total / monthTotal中,我认为每月需要average。它应该是month而不是monthTotal。因为total将会有month个月的降雨量。为了在month个月内获得平均降雨量,您的等式应为:

average = total / float(month)