Ребзя помогите! Бот работает не правильно :(

ShiroB

Новичок
Пользователь
Апр 23, 2020
6
0
1
Понимаю что можно его написать более правильно, но я в питоне сейчас соображаю чуть лучше обезьяны.

Суть бота:
Человек пишет слово, бот находит по этому слову в словаре нужный пункт и выдает его ( словарь в моем случае - это otvet собственно)
Если слова нет в словаре - бот выдает “ничего не найдено”

Проблема в том что он мне всегда выдает "ничего не найдено
sad.png

помогите , где я промахнулся?



Python:
 otvet = dict()
telefon = dict()

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Привет, ты написал мне /start', reply_markup=keyboard)
@bot.message_handler(content_types=['text'])
def send_welcome(message):
    if message.text.lower() == otvet:
        bot.send_message(message.chat.id, otvet[message.text])
    else:
        bot.send_message(message.chat.id, 'ничего не найдено')
bot.polling(none_stop=True, interval=0)
 

borntohack

змееуст
Команда форума
Модератор
Апр 22, 2020
78
62
18
39
Москва, РФ
ты сравниваешь строку со словарем.
правильная конструкция:
Python:
txt in otvet
 
  • Мне нравится
Реакции: ShiroB

BPRO

Пользователь
Пользователь
Апр 22, 2020
12
8
3
Python:
 otvet = dict()
telefon = dict()

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Привет, ты написал мне /start', reply_markup=keyboard)
@bot.message_handler(content_types=['text'])
def send_welcome(message):
    if message.text.lower() in otvet:  # Изменения здесь
        bot.send_message(message.chat.id, otvet[message.text])
    else:
        bot.send_message(message.chat.id, 'ничего не найдено')
bot.polling(none_stop=True, interval=0)
 
  • Мне нравится
Реакции: ShiroB

Doaxan

Новичок
Пользователь
Апр 22, 2020
2
1
3
if message.text.lower() == otvet:
"привет" не будет равно словарю. Для того чтобы проверить имеется ли элемент в словаре, можно использовать оператор in или otvet.get("elem", "default_value"). Советую изучить словари в Python.
 
  • Мне нравится
Реакции: ShiroB

ShiroB

Новичок
Пользователь
Апр 23, 2020
6
0
1
ты сравниваешь строку со словарем.
правильная конструкция:
Python:
txt in otvet
Благодарю)
 

Форум IT Специалистов