2016-10-04 5 views
1

各都市の圧力を表示しようとしています。リスト内の要素をforループ内の関数に渡す方法

リストの都市を使用する代わりに、「都市」という都市の圧力を返しています。

これに新しいものがあり、この特定のものに対する回答が見つかりません。ありがとう!!!!!!

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']) 
+3

なぜすべての名前を「都市」としていますか? – roganjosh

+1

また、 'city_weather = owm.weather_at_place(i)'を意味しますか? – roganjosh

+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に変更しました。その変数は変数になります。つまり、1つの都市の名前です。 iは、アイテムではなくインデックスであると予想されるため、名前が貧弱です。Python forループはそのように機能しません。 for city in citiesは実際に何が起こっているかを表現していますか?
  • 後者は市という名前の都市の検索と同じように、むしろ定数文字列"city"より変数city(リストから都市)を使用するweather_at_place()への呼び出しを変更しました。
  • cityを使用するのではなく、中間値が使用されないため、前者が返す値を保持するのではなく、weather_at_place()およびget_weather()を呼び出します。また、都市以外の何かのために変数cityの使用を排除します。
  • 結果がget_weather()の変数がにweatherからcityに変更されました。これは都市ではなく天気が含まれているためです。

コードを読む人がそれを書いた人でも、読みやすさは重要です(特に!)。 今混乱している場合は、初めてコードを書くとき、6ヶ月以内にコードを修正しようとするとどのように混乱するか想像してみてください!

+0

ありがとう、ありがとう!私は本当に助けに感謝し、コードは完全に動作します。私はそれを感謝します<3 –

+0

@ HanleySoilsmithこれがあなたの問題を解決すれば、それを正しい印をつけてください(答えを左に灰色の刻みをつけて緑に変えてください)。両方とも回答者に報酬を与え、この問題が解決されたことを他の人に伝えます。 – roganjosh

0

Hanley、私はあなたのコードを書き直してもらえたらいいと思います。

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']) 
+0

ああ、私は唯一の人ではなく、より遅い人です。 – Bouke

+1

ありがとうございました!それは完全に動作します –

+0

答えの1つを受け入れることがとても親切でしょうか(私はkindallの答えを提案します、彼ははるかに精巧です(ああ、私はとても控えめです...))。 – Bouke

関連する問題