2017-05-29 85 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))