Задать вопрос
racheer
@racheer

Почему код выполняется неправильно?

Изучаю python, сейчас в нём абсолютный новичок. Пытаюсь написать своего легкого, простенького ассистента. Вот код:
import datetime
today = datetime.datetime.now()
print(">>>Привет, я racheer, компьютерный асисстент!")
print(">>>Чего желаете?")
a = input("")
if a.lower == "Покажи время" or "Который час?" or "Сколько время?" or "Подскажи время" or "Какое сейчас время?" or "Который сейчас час?":
    print(">>>Сейчас ", today.strftime("%H:%M:%S."), "Помочь чем-нибудь ещё?")
    b = input("")
    if b.lower == "Нет" or "Не надо" or "Неа" or "Не стоит" or "Не требуется":
        print(">>>Хорошо, завершаю работу")
        exit(0)
    elif b.lower == "Да" or "Помоги" or "Давай" or"Конечно" or"Ага":
        print("Чем обязан?")

Чтобы ни писалось после вопроса "Помочь чем-нибудь ещё?" - будь то "Да" или "Нет" , в любом случае выполняется код на ответ "Нет" - ассистент пишет о завершении работы и закрывает программу. Что делать?
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
longclaps
@longclaps
С чего ты взял, что условие a.lower() == "Покажи время" может быть истинным?
Кстати, не забывай о скобках.
Ответ написан
Комментировать
Сразу 3 грубых ошибки в каждой из проверок условий. Исправьте все по образцу
if b.lower() in ("нет" , "неа", "не требуется"):
Ответ написан
true_pelmeshek
@true_pelmeshek
Я нажал куда-то не туда и всё сломалось
Похоже, что при вводе "да", Ваш скрипт выполняет print("Чем обязан?") и завершает работу, т.к. других задач для него нет. Попробуйте так:
import datetime
today = datetime.datetime.now()
print(">>>Привет, я racheer, компьютерный асисстент!")
print(">>>Чего желаете?")
def foo():
    a = input("")
    if a.lower == "Покажи время" or "Который час?" or "Сколько время?" or "Подскажи время" or "Какое сейчас 
    время?" or "Который сейчас час?":
        print(">>>Сейчас ", today.strftime("%H:%M:%S."), "Помочь чем-нибудь ещё?")
        b = input("")
        if b.lower == "Нет" or "Не надо" or "Неа" or "Не стоит" or "Не требуется":
            print(">>>Хорошо, завершаю работу")
            exit(0)
        elif b.lower == "Да" or "Помоги" or "Давай" or"Конечно" or"Ага":
            print("Чем обязан?")
            foo()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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