Google Maps вычисляет неправильное расстояние?

Обычная конструкция - запускать цикл до тех пор, пока что-то не будет найдено, а затем вырваться из цикла. Проблема в том, что, если я выйду из цикла или завершу цикл, мне нужно определить, какой случай произошел. Один из способов - создать флаг или переменную хранилища, которая позволит мне выполнить второй тест, чтобы увидеть, как завершился цикл.

Например, предположим, что мне нужно искать в списке и обрабатывать каждый элемент, пока не будет найден элемент флага, а затем прекратить обработку. Если элемент флажка отсутствует, необходимо создать исключение.

Использование Python for ... else построить у вас есть

for i in mylist:
    if i == theflag:
        break
    process(i)
else:
    raise ValueError("List argument missing terminal flag.")

Сравните это с методом, который не использует этот синтаксический сахар:

flagfound = False
for i in mylist:
    if i == theflag:
        flagfound = True
        break
    process(i)

if not flagfound:
    raise ValueError("List argument missing terminal flag.")

В первом случае raise тесно связан с циклом for it работает с. Во второй привязка не так сильна, и ошибки могут быть внесены во время обслуживания.

8
задан gargantuan 30 June 2009 в 00:56
поделиться

2 ответа

Если я не неправильно понимаю это:

Может ли расхождение проистекать из того факта, что Карты Google рассчитывают расстояние, которое вы проезжаете, а не «по прямой»?

1
ответ дан 5 December 2019 в 21:21
поделиться

Карты Google не рассчитывают кратчайшее прямое расстояние - оно проходит по дорогам и (воздух, вода,?)

3
ответ дан 5 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: