我试图通过查找高低之间的平均日常温度,然后将总时间范围内的平均值除以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."
答案 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']
之前的空白区域。
否则,这条线实际应该做什么?