質問: gps.longitude[0]: print("same") ``` ### 補足変更追記 1GPSが”35.0000, 139.0000”の形で35.000はgps.latitude[0]へ、139.0000はgps.longitude[0]へ格納されます。 GPSが繰り返し取得されるので、上記1が繰り返し動作しgps.latitude[0],gps.longitude[0]はその都度更新されます。 そこで一つ前のデータと今取得したデータが異なる場合にのみ動作させたく、プログラムを動作した直後一度目のgps.latitude[0],gps.longitude[0]データをlat及びlonに格納し2回目以降はlatとgps.latitude[0]を,lonとgps.longitude[0]を比較しようと思いました。 しかしこの通りに動作しなかったため、どのように変更すれば良いのかをお聞きした次第でございます。
回答: 前回取得データと今回取得データを比較し、 前回取得データと今回取得データが異なれば処理を実行し、 前回取得データへ今回取得したデータを入れる。 上記の処理をループするだけで実現可能かと思います、 「同じであるか?」を確認するのではなく、「違うか?」を確認して処理をすれば、 「同じである場合何もしない」という記述そのものが必要なくなります。 また、ループの前に「前回取得データ」を入れる必要もありません。 (初回実行時は前回取得データ(0)と比較され"異なる"と判断されるため) 下記をループ ``` if lat != gps.latitude[0] or lon != gps.longitude[0]: ~新しい位置データの処理~ lat = gps.latitude[0] lon = gps.longitude[0] ``` あと、元コードの lat == gps.latitude[0] or lon == gps.longitude[0]: は、 or ではなく and が正しのでは?