使用Python和天气API计算平均温度

使用Python和天气API计算平均温度,python,weather-api,Python,Weather Api,我试图计算10天的平均温度,方法是找出每天的平均温度在高和低之间,然后将总时间范围内的平均值除以10。我正在使用WeatherAPI,运行在带有邮政编码的命令行上。目前我有无效的语法错误,但无法找出错误所在-可能我缺少括号或使用了不正确的括号。 错误是:打印城市['city'] ^ SyntaxError:无效语法 任何帮助都将不胜感激 from weather import Weather import sys if len(sys.argv) > 1: weather = W

我试图计算10天的平均温度,方法是找出每天的平均温度在高和低之间,然后将总时间范围内的平均值除以10。我正在使用WeatherAPI,运行在带有邮政编码的命令行上。目前我有无效的语法错误,但无法找出错误所在-可能我缺少括号或使用了不正确的括号。 错误是:打印城市['city'] ^ 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."

欢迎来到python!您的代码可以通过静态代码分析器(如
pylint
)修复。试着使用它。此外,当您在for循环中为
averageTotal
指定新值时,您正在计算的10天期间的平均值也会被覆盖。这里有一个更好的写作方法

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)

注意:如果您是python新手,不要将
用于else
。这只会让你困惑。如果您想阅读它的功能,请参考。

您的错误告诉您,
打印城市['city']
是无效的,它非常明确

您是否正在尝试打印dict
city
中键“city”的值? 然后需要删除
['city']
之前的空白


否则,这一行实际上应该做什么?

请包括对错误的完整回溯。当你读的时候,首先要仔细阅读。在大多数情况下,这将解决您的问题。在将来,提供实际错误将是有用的。也就是说,我认为你的问题在于
averageTotal=…
print city…
@JCVanHamme的不同缩进级别,以及他在这一行缺少一个右括号的事实:
averageTotal=f(f[int('high')]+f[int('low')]/2
。但是你的权利。他需要包括他的完整错误信息。int('high')不正确,int采用一个可以转换为数字的字符串,例如int('123')。此外,“f(f)”也可能是错误的。但为了进一步帮助您,请包含城市和位置的数据示例。forecast().我是一个初学者,并不总是很清楚每件事的作用这就是为什么我要你解释这句话应该用你的话做什么:)