使用Python和weather API计算平均温度

时间:2017-06-07 14:02:58

标签: python weather-api

我试图通过查找高低之间的平均日常温度,然后将总时间范围内的平均值除以10来计算平均10天温度。我正在使用天气APi,在命令行上运行邮政编码。目前我的语法错误无效,但无法弄清楚错误 - 也许我错过了一个括号或使用了错误的括号。 错误是:打印城市['城市']         ^ SyntaxError:语法无效

任何帮助将不胜感激。

from weather import Weather
import sys

if len(sys.argv) > 1:
    weather = Weather ()
    location = weather.lookup_by_location((sys.argv[1]))
    forecast = location.forecast()
    city = location.location()


    average = 0

for f in location.forecast():
    averageTotal = f(f[int('high')] + f[int('low')] / 2 

   print city ['city']
   print "10 day average temperature:" + str(averageTotal / 10)


else:
    print "You must supply a postcode to get the atmospheric pressure."

2 个答案:

答案 0 :(得分:0)

欢迎来到python!您的代码可以通过静态代码分析器修复,如pylint。尝试使用它。此外,您在10天内计算的平均值是在for循环中为averageTotal分配新值时覆盖自身。这是一种更好的写作方式。

import sys
from weather import Weather


if len(sys.argv) > 1:
    weather = Weather()
    location = weather.lookup_by_location((sys.argv[1]))
    forecast = location.forecast()
    city = location.location()
    average = 0

print city['city']
averageTotal = 0
for f in location.forecast():
    averageTotal += (int(f['high']) + int(f['low']))

print "10 day average temperature:" + str(averageTotal / 10)

P.S。如果您不熟悉python,请不要使用for-else。这会让你感到困惑。如果您想阅读它的内容,请参阅this

答案 1 :(得分:0)

您的错误告诉您print city ['city']无效,而且非常明确。

您是否尝试在字典'city'中打印键city的值? 然后,您需要删除['city']之前的空白区域。

否则,这条线实际应该做什么?