@kodbiprog

Как исправить ошибку в Telebot Python?

import telebot
import random
import sqlite3
from telebot import types

TOKEN = 'token'
bot = telebot.TeleBot(TOKEN)
owner = 1116620584

db = sqlite3.connect('bot.db')
sql = db.cursor()

sql.execute("""CREATE TABLE IF NOT EXISTS users (
	login TEXT,
	password TEXT,
	cash INT
)""")
db.commit()


@bot.message_handler(commands=['start'])
def start_message(message):
        sti = open('img/welcome.webp', 'rb')
        bot.send_sticker(message.chat.id, sti)
        #keyboard
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        item1 = types.KeyboardButton(" Описание бота")
        item2 = types.KeyboardButton(" Профиль")
        item3 = types.KeyboardButton(" Обратная связь")

        markup.add(item1,item2,item3)

        msg = bot.send_message( message. chat . id ,  "Добро пожаловать, {0.first_name}! Я - <b> {1.first_name} </b>, отличный Бот для заработка! Желаете ли вы зарегестрироваться?" . format ( message. from_user , bot. get_me ( ) ) , parse_mode='html',reply_markup=markup)
        bot.register_next_step_handler(msg, answer_reg)
def answer_reg(message):
		if message.text == 'Да':
			user_login = bot.send_message(message.chat.id, "Введите логин: ")
			bot.register_next_step_handler(user_login, text_yes_in_reg)
def text_yes_in_reg(message):
		user_password = bot.send_message(message.chat.id, "Введите пароль: ")
		bot.register_next_step_handler(user_login, user_password, reg_processing)
def reg_processing(message):
		sql.execute(f"SELECT login FROM users WHERE login = '{user_login}'")
		if sql.fetchone() is None:
			sql.execute(f"INSERT INTO users VALUES (?,?,?)", (user_login, user_password, 0))
			db.commit()
			print('Ваш аккаунт зарегестрирован!')
		else:
			print('Аккаунт с таким логином уже есть!')

			for value in sql.execute("SELECT * FROM users"):
				print(value)

Выдаёт ошибку:
File "D:\python\Новая папка\bot20.py", line 42, in text_yes_in_reg
bot.register_next_step_handler(user_login, user_password, reg_processing)
NameError: name 'user_login' is not defined
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
yupiter7575
@yupiter7575
Python программист
if message.text == 'Да':
user_login = bot.send_message(message.chat.id, "Введите логин: ")

У вас переменная создается при условии что message.text = 'да'. если условие не выполняется => переменная не создается => появляется ошибка т.к. эта переменная не обозначена но используется
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Ovision Санкт-Петербург
от 100 000 до 300 000 ₽
Сбер Санкт-Петербург
от 100 000 до 100 000 ₽
08 мая 2021, в 00:18
3000 руб./за проект
07 мая 2021, в 22:42
3000 руб./за проект
07 мая 2021, в 22:25
2400 руб./за проект