Проблема с функцией для бота
Всем привет, я недавно в этом удивительном мире и начал свой путь с питона. Я решил сделать простого "бота" для общения, но у меня возникает проблема с выводом. По идеи, отправляя данные в функцию, оно должно проходить через проверки пока не дойдет до нужной, но чтобы я не ввёл, всегда исполняется первая.
IA = True
print("Зравствуйте, сэр. Меня зовут Джарвис. Я простой искусственный интеллект")
def Intellect(msg):
if msg == "Привет" or "Здравствуй" or "Интересно" or "Круто" or "Привет, Джарвис" or "Здравствуй, Джарвис":
print("Как прошёл ваш день?")
elif msg == "Джарвис?" or "Джарвис" or "Кто?" or "Кто":
print("Джарвис - искусственный интеллект, первая версия от 17.03.2022.")
print("Создан с целью практики в кодинге и от скуки")
print("Версия №1. Надеюсь, меня сделают лучше и подарят голос")
print("Что-то ещё?")
while IA:
data = input().lower().title()
Intellect(data)
Ответы (1 шт):
Автор решения: ProstoBob
→ Ссылка
Ответ на ваш вопрос:
if msg == "Привет" or msg == "Здравствуй" or msg == "Интересно" or msg == "Круто" or msg == "Привет, Джарвис" or msg == "Здравствуй, Джарвис":
print("Как прошёл ваш день?")
Нужно добавлять msg ==.
Но я думаю что здесь будет намного удобнее проверять так:
hello_words_list = ["привет", "здравствуй", "хай"] # здесь просто список слов которые могут встретиться в предложении
for word in msg: # сделайте ваш msg списком в котором буду слова по отдельности
if word in hello_words_list: # если слово в списке
# тут делайте что-то, например создайте функцию say_hello() которая напечатает в ответ приветсвие
Пишите мне если будут вопросы по боту. Я тоже делал что-то похожее только с распознованием речи и голосом.