Нужно сделать так, чтобы пока ошибка выдается, делать input
import pyowm
owm = pyowm.OWM('Тут мой API с сайта openweathermap')
try:
place = input('What city do you want to know the weather in? ')
observation = owm.weather_manager().weather_at_place(place)
w = observation.weather
except:
place = input(('No such city. Try again: '))
Нужно, чтобы пока выдается ошибка, спрашивать значение переменной place. И когда ошибка перестанет выдаваться, сделать остальные действия.
Изменено: код должен быть БЕЗ continue и break. Можно сделать с ними:
import pyowm
owm = pyowm.OWM('api-key')
while True:
try:
place = input('What city do you want to know the weather in? ')
observation = owm.weather_manager().weather_at_place(place)
w = observation.weather
print(w.status)
break
except:
continue
но это плохой пример написания кода.
Изменено 2: кажется решил! проверьте, нормальный код или нет.
import pyowm
owm = pyowm.OWM('api-key')
flag = True
while flag == True:
try:
place = input('What city do you want to know the weather in? ')
observation = owm.weather_manager().weather_at_place(place)
w = observation.weather
print(w.status)
flag = False
except:
flag = True
Ответы (3 шт):
Автор решения: dIm0n
→ Ссылка
Необязательно использовать break и continue:
import pyowm
owm = pyowm.OWM('api-key')
answered = False
while not answered:
try:
place = input('What city do you want to know the weather in? ')
observation = owm.weather_manager().weather_at_place(place)
w = observation.weather
print(w.status)
answered = True
except:
pass
Автор решения: eri
→ Ссылка
import pyowm
owm = pyowm.OWM('api-key')
w = None
while not w:
try:
place = input('What city do you want to know the weather in? ')
observation = owm.weather_manager().weather_at_place(place)
w = observation.weather
print(w.status)
except:
pass
Автор решения: Ivan Shevtsov
→ Ссылка
import pyowm
owm = pyowm.OWM('api-key')
while True:
try:
place = input('What city do you want to know the weather in? ')
observation = owm.weather_manager().weather_at_place(place)
w = observation.weather
print(w.status)
break
except:
pass
kpolyakov.blogspot.com/2012/10/break-break.html здесь про это рассказывается. Теперь я согласен, мой код с break лучше, так как без break я задаю новую переменную и поэтому ухудшается читаемость и оптимальность кода.