@AndreyJoestar

Как ожидать ввода рандомного числа?

У меня есть скрипт на python, он просит ввести некое сообщение, после этого просит ввести число в диапазоне от 1 до 139, как мне получить это самое число? библиотека discord.py

if message.content == '!Databook':
        channel = message.channel
        await channel.send('Введите номер датабука (1-4)')
        await channel.send('В таком формате: "Датабук 1" вместо 1 номер датабука')

        def check(m):
        	return m.content == 'Датабук 1' and m.channel == channel

        msg = await bot.wait_for('message', check=check)
        await channel.send('Введите страницу (1-139)'.format(msg))

        def check_two(m):
        	return m.content == # Вот тут надо получить число которое вводит пользователь(оно из диапазона 1-139)
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
def check_two(m):
    m = m.content
    return m.isdigit() and (1 <= int(m) <= 139)

Эта функция вернёт True, если на её вход попадёт строка, содержащая только цифры и эти цифры можно преобразовать в целое число в указанном диапазоне.

Признаться, мне очень не нравится сам подход с такой функцией, т.к. приходится хардкодить туда значения, или передавать их туда через глобальные переменные, или ещё более сложные подходы с сочинением дочерних классов, да ещё с async… ну, ладно, пусть пока так.
Дальше вам надо применить функцию в параметре метода wait_for
def check_two(m):
    m = m.content
    return m.isdigit() and (1 <= int(m) <= 139)

DataBook_Page = await client.wait_for('message', check=check_two)
ну и так далее
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы