• Как в telebot циклом for заполнить словарь?

    @puffffik Автор вопроса
    Михаил, подскажите на что ее можно заменить и как выводить переменную из функции иначе.
    Решение Максима считаю гениальным)
    Попробую как будет возможность
  • Как в telebot циклом for заполнить словарь?

    @puffffik Автор вопроса
    Михаил, мне не нужно хранить их на длительный срок. Мне нужно их удержать до конца кода и после привет опять по новой
  • Как в telebot циклом for заполнить словарь?

    @puffffik Автор вопроса
    def nechislorub(message):
        bot.send_message(message.from_user.id, "Нужно ввести число")
        return vvod_rub(message)
    def nechislocam(message):
        bot.send_message(message.from_user.id, "Нужно ввести число")
        return vvod_cam(message)
    def nechislojit(message):
        bot.send_message(message.from_user.id, "Нужно ввести число")
        return vvod_jit(message)
    def nechislojiteli(message):
        bot.send_message(message.from_user.id, "Нужно ввести число")
        return vvod_jitel(message)
    
    @bot.message_handler(content_types=["text"])
    def get_text_messages(message):
        if message.text == "Привет":
            bot.send_message(message.from_user.id, "Начнем")
            return vvod_rub(message)
        elif message.text == "/help":
            bot.send_message(message.from_user.id, "Напиши Привет")
        else:
            bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")
    
    @bot.message_handler(content_types=["text"])
    def vvod_rub(message):
        global rub_dan
        rub_dan = message.text
        bot.send_message(message.from_user.id, "Получено бриллиантов: ")
        bot.register_next_step_handler(message, rub)
    def rub(message):
        if message.text.isdigit():
            return vvod_cam(message)
        else:
            return nechislorub(message)
    
    @bot.message_handler(content_types=["text"])
    def vvod_cam(message):
        global cam_dan
        cam_dan = message.text
        bot.send_message(message.from_user.id, "Получено рубинов: ")
        bot.register_next_step_handler(message, cam)
    
    def cam(message):
        if message.text.isdigit():
            return vvod_jit(message)
        else:
            return nechislocam(message)
    
    @bot.message_handler(content_types=["text"])
    def vvod_jit(message):
        global jit_dan
        jit_dan = message.text
        bot.send_message(message.from_user.id, "Количество жителей: ")
        bot.register_next_step_handler(message, jit)
    
    def jit(message):
        if message.text.isdigit():
            return vvod_jitel(message)
        else:
            return nechislojit(message)
            
    
    @bot.message_handler(content_types=["text"])
    def vvod_jitel(message):
        for i in (1, int(jit_dan)):
                    bot.send_message(message.from_user.id, "Сколько заработал кубков житель " + str(i) + ": ")
                    bot.register_next_step_handler(message, a)
    def a(message):
            global jitelis
            jitelis = {}
            if message.text.isdigit():
                for i in range(1, int(jit_dan)):
                    jitelis["Житель " + str(i)] = message.text
    #     return jiteli(message)
    # jitelis = {}
    # jitelis["Житель " + str(i + 1)] = a
    #
    # def jiteli(message):
    #     if message.text.isdigit():
    #         bot.send_message(message.from_user.id, "сохранено")
    #         return logika(message)
    #     else:
    #         return nechislojiteli(message)
    # def logika(message):
    #     for i in jitelis:
    #         bot.send_message(message.from_user.id, str(i), "заработал: ")
    #         bot.send_message(message.from_user.id, "Бриллиантов: ", str(int(float(jitelis[i]) / sum(jitelis.values()) * float(rub_dan))))
    #         bot.send_message(message.from_user.id, "Рубинов: ", str(int(float(jitelis[i]) / sum(jitelis.values()) * float(cam_dan))))
    #         bot.send_message(message.from_user.id, "------------------------------------------------")

    В комментариях можете увидеть саму логику, которая будет выполняться через словарь и введеные переменные. jit_dan переменная хранит количество жителей