Вложенный оператор if в Python
Я не могу получить второй оператор if в моем коде, чтобы вернуть то, что я хочу, а именно [текущая дата '11:00:00'].
Он возвращает только [текущая дата '09:00:00']
Что я уже пробовал:
def today_hours(): today_date = [] today_date.append(return_week_day()[0:10]) for key, value in hourly_dates.items(): if key in first_indices: if value == True: today_date.append(return_week_day()[11:19]) else: if value == morning_hours: today_date.append('09:00:00') else: if value == noon_hours: today_date.append('11:00:00') return today_date print(today_hours())
Richard MacCutchan
Вы пытаетесь использовать переменную value
для представления различных типов:True
, morning_hours
и noon_hours
, так что утверждения if будут сбиты с толку.
Member 13949923
Я думаю, что ты, возможно, что-то здесь понимаешь, но я не совсем понимаю. Будьте добры и переформулируйте, что вы имеете в виду?
Richard MacCutchan
for key, value in hourly_dates.items():
Что возвращается в переменной с именем value
?
Member 13949923
hourly_dates = {'утро': morning_hours, 'полдень': noon_hours, 'день': afternoon_hours, 'вечер': evening_hours, 'ночь': night_hours}
Если есть входной сигнал типа "Сегодня вечером" и дата-время находится в параметре "вечер" (между 18:00:00 - 21:00:00) он возвращает 'True', а затем печатает [текущая дата '19:00:00'], но если вводится 'Today morning', то он должен получить 'False' для первого оператора if 'Value == True', а затем перейти ко второму оператору if (Value == 'morning_hours') после оператора else и так далее. Но когда я ввожу "сегодня полдень", он не переходит к следующему оператору if, который имеет значение "Value == noon_hours". Он просто продолжать печатать, если заявление 'morning_hours и не переходить к следующей инструкции.
Richard MacCutchan
Вы не можете сравнить значение с True или False, так как оно будет содержать одно из значений в списке hourly_dates.
Member 13949923
большое вам спасибо за всю помощь, решите ее прямо сейчас.
Richard MacCutchan
Поскольку мы не можем видеть данные, с которыми вы работаете, ответить на этот вопрос невозможно. Используйте отладчик для пошагового просмотра кода и просмотра того, что именно вы сравниваете в каждом операторе if. Например что находится в переменных key
и first_indices
- в самом начале.