Bodriy
Авг. 26, 2019 20:43:23
Всем Бодрого времени суток. Сразу извиняюсь за нубство. Вот кусок кода:
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” должно срабатывать, когда другие условия не срабатывают.
rami
Авг. 26, 2019 21:16:14
Если “пасмурно”, то первый if не выполняется, второй if выполняется, а третий if не выполняется, но else относящееся только к третьему if будет выполняться. Вам нужно второй и третий if заменить на elif, тогда будет правильно.
Bodriy
Авг. 26, 2019 21:31:20
rami
Если “пасмурно”, то первый if не выполняется, второй if выполняется, а третий if не выполняется, но else относящееся только к третьему if будет выполняться. Вам нужно второй и третий if заменить на elif, тогда будет правильно.
Я правильно понял, else всегда будет работать только для последнего if ?
rami
Авг. 26, 2019 21:49:55
Не правильно, каждый блок условий должен содержать только один if, любое количество elif (дополнительные условия) и заключительное else (если ни одно условие не выполнилось). Минимальный блок условий состоит только из одного if (elif и else могут отсутствовать). В вашем примере три if, следовательно три независимых блока условий, последний содержит else.
Вам нужен один блок условий с дополнительными условиями elif и else, как я сказал раньше.
AD0DE412
Авг. 30, 2019 10:14:05
как то так
# 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")
# зы а еще у вас кавычки и окончание строки не той конструкции
# ... были ...