@crinnyx

Бесконечный цикл в простом Telegram Bot'e?

import telebot 
import random

bot = telebot.TeleBot('TOKEN')

print("Bot started")

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, '/random')

chars = '1234567890'
number = 10
length = 6

for n in range(number):
    password = ''
    for i in range(length):
        password += random.choice(chars)

@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == '/random':
    	bot.send_message(message.chat.id, 'Your code: ' + password)

bot.polling()


В общем, мне нужно чтобы он бесконечно генерировал эти коды, а не постоянно один и тот же, как он делает сейчас. Не знаю как сделать рандом бесконечным циклом, чтобы он генерировал и отправлял новые с каждым написанием команды.
  • Вопрос задан
  • 985 просмотров
Решения вопроса 1
MinTnt
@MinTnt
Переделать чутка код, так как в данный момент он генерирует случайный код лишь однажды.

В самой функции добавь перед
bot.send_message(message.chat.id, 'Your code: ' + password)

строчку
password = ''.join([str(random.randint(0, 9)) for x in range(length)])


А этот текст
for n in range(number):
    password = ''
    for i in range(length):
        password += random.choice(chars)

Временно убрать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@maximsemin23
import telebot 
import random

bot = telebot.TeleBot('TOKEN')

print("Bot started")

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, '/random')

chars = '1234567890'
number = 10
length = 6

def password():
    for n in range(number):
        password = ''
        for i in range(length):
            password += random.choice(chars)
        return password
        

@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == '/random':
    	bot.send_message(message.chat.id, 'Your code: ' + password())

bot.polling()
Ответ написан
Ваш ответ на вопрос

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

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