@Zizlent

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

Как сделать так, чтобы в данном коде, после выполнения команды /selection и после того как бот выписал число, как сделать так чтобы бот дальше не писал числа которые ты ему пишешь, чтобы он молчал если повторно написать число, чтобы как бы данный участок кода закончил действие

import telebot
from telebot import types
bot = telebot.TeleBot('тут мой токен')

@bot.message_handler(commands=['start'])
def start(message):
    bot.send_photo(message.chat.id, "https://imgur.com/a/uZQbu93", '*Приветствуем тебя,* {0.first_name}! \n\n*Данный бот поможет вам: подобрать конфигурацию пк, подобрать эмулятор под ваш пк, узнать решение ошибок и т.д.* \n\n Вам понадобятся команды: \n\n/selection - _подбор пк.'  .format(message.from_user), parse_mode= "Markdown")

@bot.message_handler(commands=['selection'])
def bujet(message):
    bot.send_message(message.chat.id, "Ваш бюджет:")
    age = 0;
    @bot.message_handler(content_types=['text'])
    def selection(message):   
        try:
            age = int(message.text) #проверяем, что возраст введен корректно
            bot.send_message(message.from_user.id, age)
        except Exception:
            bot.send_message(message.from_user.id, 'Цифрами, пожалуйста');              
            
bot.infinity_polling(skip_pending=True)

bot.infinity_polling(skip_pending=True)
  • Вопрос задан
  • 86 просмотров
Пригласить эксперта
Ответы на вопрос 1
Buchachalo
@Buchachalo
@bot.message_handler(commands=['selection'])
def bujet(message):
    is_age = False
    if not is_age:
        bot.send_message(message.chat.id, "Ваш бюджет:")
        age = 0;
        @bot.message_handler(content_types=['text'])
        def selection(message):   
            try:
                age = int(message.text) #проверяем, что возраст введен корректно
                bot.send_message(message.from_user.id, age)
                is_age = True
            except Exception:
                bot.send_message(message.from_user.id, 'Цифрами, пожалуйста')


Вот прям если в лоб.
Будет просто молчать. Но через else можно и вывести подсказку вида "Возраст уже введен". Хотя такое себе, так как пользователь может и ошибиться при вводе
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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