ТГ бот

herman1921

Новичок
Пользователь
Июл 15, 2021
13
0
1
Привет.
Есть простейший бот, который возвращает твоё же сообщение, подскажите как его дополнить,
чтобы он возвращал твоё сообщение, но при этом рандомно переставлял слова?
Н-р: ехал грека через реку --> через ехал реку грека
random.shuffle пробовал, но он с str не работает(


Python:
import telebot
import random

token = '1928797726:AAHN9nKEMu8RP7fDWKXfsdfgFsdglxDBac'

bot = telebot.TeleBot(token)

@bot.message_handler(commands=['start'])
def say_hello(message):
    bot.reply_to(message, 'Добро пожаловать')

@bot.message_handler(content_types=['text'])
def repeat_all_messages(message):
    bot.send_message(message.chat.id,
                     message.text)


bot.infinity_polling()
 

F0rzend

Новичок
Пользователь
Июн 8, 2021
4
1
3
Привет. Достаточно просто привести сообщение к списку, перемешать список, а потом "склеить".
Разделить строку на список по словам можно методом str.split(), а склеить список через " ".join(list)
 

herman1921

Новичок
Пользователь
Июл 15, 2021
13
0
1
Привет. Достаточно просто привести сообщение к списку, перемешать список, а потом "склеить".
Разделить строку на список по словам можно методом str.split(), а склеить список через " ".join(list)
в том то и дело, что в голове у меня инфо есть как сделать (через список), но с ботами первый раз столкнулся и по синтаксису не понимаю куда вписывать
 

herman1921

Новичок
Пользователь
Июл 15, 2021
13
0
1
Привет. Достаточно просто привести сообщение к списку, перемешать список, а потом "склеить".
Разделить строку на список по словам можно методом str.split(), а склеить список через " ".join(list)
Python:
import telebot
from random import sample

token = '1928797726:AAHN9nKEMu8RP7fDWKXuWDVpPlfRElxDBac'

bot = telebot.TeleBot(token)

def shuffle_random_words(text):
    target = text.split(" ")
    return " ".join(sample(target, len(target)))

@bot.message_handler(commands=['start'])
def say_hello(message):
    bot.reply_to(message, 'Добро пожаловать')

@bot.message_handler(content_types=['text'])
def repeat_all_messages(message):
    answer = bot.send_message(message.chat.id, shuffle_random_words(message.text))

bot.infinity_polling()

Сделал, спасибо)
 

Форум IT Специалистов