Форум сайта python.su
0
Всем Бодрого времени суток. Сразу извиняюсь за нубство. Вот кусок кода:
import pyowm
owm = pyowm.OWM('dsfdsgfergdfg', language = “ru”)
place = “Владивосток”
observation = owm.weather_at_place(place)
w = observation.get_weather()
temp = w.get_temperature('celsius')
print(“Сегодня в нашем городе ” +str(temp)+“ градусов Цельсия”)
print(“ ”)
if w.get_detailed_status() == “сыро”:
print(“бла-бла”)
if w.get_detailed_status() == “пасмурно”:
print(“бла”)
if w.get_detailed_status() == “облачно”:
print(“облака”)
else:
print(“ все сломалось я не знаю такой погоды, как ”+“\”“+w.get_detailed_status()+”\“”)
При пасмурно, выводится и строка “бла” и условие else. По чему, в чем ошибка?
Мне кажется что условие “else” должно срабатывать, когда другие условия не срабатывают.
Отредактировано Bodriy (Авг. 26, 2019 20:46:03)
Офлайн
72
Если “пасмурно”, то первый if не выполняется, второй if выполняется, а третий if не выполняется, но else относящееся только к третьему if будет выполняться. Вам нужно второй и третий if заменить на elif, тогда будет правильно.
Офлайн
0
rami
Если “пасмурно”, то первый if не выполняется, второй if выполняется, а третий if не выполняется, но else относящееся только к третьему if будет выполняться. Вам нужно второй и третий if заменить на elif, тогда будет правильно.
Офлайн
72
Не правильно, каждый блок условий должен содержать только один if, любое количество elif (дополнительные условия) и заключительное else (если ни одно условие не выполнилось). Минимальный блок условий состоит только из одного if (elif и else могут отсутствовать). В вашем примере три if, следовательно три независимых блока условий, последний содержит else.
Вам нужен один блок условий с дополнительными условиями elif и else, как я сказал раньше.
Офлайн
44
как то так
# coding: utf-8 import pyowm owm = pyowm.OWM('dsfdsgfergdfg', language = "ru") place = "Владивосток" observation = owm.weather_at_place(place) w = observation.get_weather() temp = w.get_temperature('celsius') test = {"сыро":"бла-бла", "пасмурно":"бла", "облачно":"облака"} if w in test.keys() : print("Сегодня в нашем городе", str(temp), "градусов Цельсия", test.get(w)) else: print("все сломалось я не знаю такой погоды, как", "\n", w.get_detailed_status(), "\n") # зы а еще у вас кавычки и окончание строки не той конструкции # ... были ...
и вставьте ссылку на его url Отредактировано AD0DE412 (Авг. 30, 2019 15:55:17)
Офлайн