我正试图打印每个城市的压力。
不是使用列表中的城市,而是回归一个名为“城市”的城市的压力。
超级新到这个并没有找到这个具体的答案。感谢!!!!!!
import pyowm
owm = pyowm.OWM('eb68e3b0c908251771e67882d7a8ddff')
city = ["tokyo", "jakarta"]
for i in city:
city = owm.weather_at_place('city')
city = city.get_weather()
print (city.get_pressure()['press'])
答案 0 :(得分:2)
使用更好的名字,事情会变得更清晰:
import pyowm
owm = pyowm.OWM('eb68e3b0c908251771e67882d7a8ddff')
cities = ["tokyo", "jakarta"]
for city in cities:
weather = owm.weather_at_place(city).get_weather()
print (weather.get_pressure()['press'])
变更和理由:
city
更改为cities
。名为city
的变量应包含城市。不是他们的清单。for
循环使用的迭代变量更改为city
,因为这是变量中的内容:一个城市的名称。 i
是一个很糟糕的名字,因为你希望它是一个索引,而不是项目,并且Python for
循环不起作用。看看for city in cities
表达实际发生的情况有多好?weather_at_place()
以使用变量 city
(列表中的城市)而不是常量字符串"city"
,因为后者会搜索名为City的城市 weather_at_place()
和get_weather()
,而不是使用city
来保存前者返回的值,因为从不使用中间值。同时也消除了将变量city
用于非城市的其他内容。get_weather()
结果的变量从weather
更改为city
,因为它包含天气,而不是城市。当阅读代码的人是编写代码的人时,可读性很重要,甚至(特别是!)。如果您现在感到困惑,第一次编写代码,想象一下当您尝试在六个月内修改代码时会有多么困惑!
答案 1 :(得分:0)
汉利,我希望你不要介意我改写你的代码。
import pyowm
owm = pyowm.OWM('eb68e3b0c908251771e67882d7a8ddff')
cities = ["tokyo", "jakarta"]
for city in cities:
city_weather = owm.weather_at_place(city)
weather = city_weather.get_weather()
print(weather.get_pressure()['press'])