Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ ПОЖАЛУЙСТА, Я ТУТ ПОЧТИ СОЗДАЛ ТГ ЧАТ БОТА НА PYTHON, И У МЕНЯ ТУТ НЕ РАЗБЕРИХА

Гений Евгеньевич Ученик (157), на голосовании 1 год назад
КНОПКИ Я СОЗДАЛ, НО КОГДА Я НАЖИМАЮ ФАКТ ИЛИ ПОГОВОРКА НИЧЕГО НЕ ВЫХОДИТ, ХОТЯ Я ЗАГРУЗИЛ СПИСОК ФАКТОВ И ПОГОВОРОК В КОДЕ
Дополнен 1 год назад
Вот весь код если что:

import telebot
import random
from telebot import types

# загружаем список интересных фактов
f = open('Data/facts.txt', 'r', encoding='UTF-8')
facts = f.read().split('\n')
f.close()

# загружаем список поговорок
f = open('Data/thinks.txt', 'r', encoding='UTF-8')
thinks = f.read().split('\n')
f.close()

# создаем бота
bot = telebot.TeleBot('секрет:)')

# команда старт
@bot.message_handler(commands=['start'])
def start(m, res=False):
# добавляем две кнопки
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Факт")
item2 = types.KeyboardButton("Поговорка")
markup.add(item1)
markup.add(item2)
bot.send_message(m.chat.id, 'Нажми: \nФакт для получения интересного факта\nПоговорка — для получения мудрой цитаты ', reply_markup=markup)
# Получение сообщений от юзера
@bot.message_handler(content_types=["text"])
def handlre_text(message):
if message.text.strip() == 'факт':
answer = random.choice(facts)
elif message.text.strip() == 'поговорка':
answer = random.choice(thinks)
bot.send_message(message.chat.id, answer)
# Запускаем бота
bot.polling(none_stop=True, interval=0)
Голосование за лучший ответ
Exfell Kitakill Гуру (4194) 1 год назад
для начала у тебя ошибка сфоткана не на том месте, где она была, а была она на 35 строке в коде. Во вторых, у тебя написано local переменная answer. Есть грубо говоря local, global и nonlocal переменные. Скорее всего answer у тебя объявлялся в какой-то функкции/цикле и тд, а потом ты её решил написать за рамками этой функции
Exfell KitakillГуру (4194) 1 год назад
по хорошему надо код кинуть
Гений ЕвгеньевичУченик (157) 1 год назад
я дополнил вопрос, там есть код
Кот Шрёдингера Гуру (2995) 1 год назад
Попробуй добавить в функцию handlre_text()
 global facts
global thinks
Кот ШрёдингераГуру (2995) 1 год назад
 @bot.message_handler(content_types=["text"])  
def handlre_text(message):
global facts
global thinks
if message.text.strip() == 'факт':
answer = random.choice(facts)
elif message.text.strip() == 'поговорка':
answer = random.choice(thinks)
bot.send_message(message.chat.id, answer)
Гений ЕвгеньевичУченик (157) 1 год назад
спасибо, сейчас попробую
Гений ЕвгеньевичУченик (157) 1 год назад
к сожалению не помогло
Кот Шрёдингера Гуру (2995) sasha, А если так?
 @bot.message_handler(content_types=["text"])  
def handlre_text(message): 
    global facts 
    global thinks 
    answer1 = random.choice(facts) 
    answer2 = random.choice(thinks) 
    if message.text.strip() == 'факт':  
        bot.send_message(message.chat.id, answer1)  
    elif message.text.strip() == 'поговорка':   
        bot.send_message(message.chat.id, answer2) 
Гений ЕвгеньевичУченик (157) 1 год назад
тоже не помогает:(
Похожие вопросы