2017-05-29 83 views
-1

我有这个代码的平均降雨量,我一直试图弄清楚用户输入每月降雨量。但我不断收到此错误代码:蟒蛇 - 平均降雨量

File "/Users/brittneybutcher/Desktop/UM-Flint/Average Rainfall.py", line 17, in <module> 
    "Average rainfall: " + format(averagerainfall, ".2f")) 
TypeError: bad operand type for unary +: 'str' " 

有谁能告诉我它有什么问题吗?

for currentyear in range(1, usernumberofyears + 1): 
    for currentmonth in range(1, 13): 
     monthlyrainfallinches = float(input("Please type the inches of rainfall for month " + \ 
               format(currentmonth, "d") + ", year " + format(currentyear, "d") + \ 
               ": ")) 
     totalinchesofrainfall += monthlyrainfallinches 
     totalnumberofmonths += 1 

averagerainfall = totalinchesofrainfall/totalnumberofmonths 

print("Number of Months: " + format(totalnumberofmonths, "d"), "Total inches of rainfall: " \ 
     + format(totalinchesofrainfall, ".2f"), + \ 
     "Average rainfall: " + format(averagerainfall, ".2f")) 

回答

0

关于你的第二到最后一行,你有两个+,在一起。最后的打印声明应为:

print("Number of Months: " + format(totalnumberofmonths, "d"), "Total inches of rainfall: " \ 
     + format(totalinchesofrainfall, ".2f"), \ 
     "Average rainfall: " + format(averagerainfall, ".2f")) 
0

看起来您在打印语句的倒数第二行有一个额外的'+'。我建议打破个别组件的格式化,使其更具可读性。

像下面这样的东西应该工作:

monthStr = format(totalnumberofmonths, "d") 
inchStr = format(totalinchesofrainfall, ".2f") 
avgStr = format(averagerainfall, ".2f") 
print("Number of months: {0}\tTotal inches: {1}\tAverage rainfall: {2}".format(monthStr, inchStr, avgStr))