Помогите пожалуйста python aiogram
После написания текста "на что хотите поставить?" вылезает ошибка в коде стр22

from aiogram import Bot, Dispatcher, types, executor
from asyncio import sleep
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
bot = Bot(token='')
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
markup = types.ReplyKeyboardMarkup()
boba_button = types.KeyboardButton("На победу")
biba_button = types.KeyboardButton("На проигрыш")
markup.row(boba_button, biba_button)
await bot.send_message(message.from_user.id,f'Привет, {message.from_user.username}! Начинаем игру!')
await sleep(1)
nbalance = int(1000)
await bot.send_message(message.from_user.id,f'Ваш баланс: {nbalance}$')
await bot.send_message(message.from_user.id,"На что хотите поставить?", reply_markup=markup)
response = await dp.message_handler('message')
vibor = response.text
if vibor == "Победа":
await bot.send_message(message.from_user.id, "Вы выбрали 'Победа'")
elif vibor == "На проигрыш":
await bot.send_message(message.from_user.id, "Вы выбрали 'На проигрыш'")
else:
await bot.send_message(message.from_user.id, "Неверный ввод")
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)

я скоректировал ваш код, вот исправленый вариант:
python
from aiogram import Bot, Dispatcher, types, executor
from asyncio import sleep
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
bot = Bot(token='YOUR_TOKEN')
dp = Dispatcher(bot, storage=MemoryStorage())
class GameState(StatesGroup):
waiting_for_choice = State()
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
markup = types.ReplyKeyboardMarkup()
boba_button = types.KeyboardButton("На победу")
biba_button = types.KeyboardButton("На проигрыш")
markup.row(boba_button, biba_button)
await bot.send_message(message.from_user.id,f'Привет, {message.from_user.username}! Начинаем игру!')
await sleep(1)
nbalance = int(1000)
await bot.send_message(message.from_user.id,f'Ваш баланс: {nbalance}$')
await bot.send_message(message.from_user.id,"На что хотите поставить?", reply_markup=markup)
await GameState.waiting_for_choice.set()
@dp.message_handler(state=GameState.waiting_for_choice)
async def set_choice(message: types.Message, state: FSMContext):
vibor = message.text
if vibor == "На победу":
await bot.send_message(message.from_user.id, "Вы выбрали 'Победа'")
elif vibor == "На проигрыш":
await bot.send_message(message.from_user.id, "Вы выбрали 'На проигрыш'")
else:
await bot.send_message(message.from_user.id, "Неверный ввод")
await state.finish()
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
- Добавлен
параметр `storage` в
Конструктор объекта `Dispatcher`, чтобы избежать ошибки, связанной с FSM.
- Определен
объект `Группа состояний" для обработки состояний в диалоге.
- Используется
параметр `state` в функции обработки сообщений для указания состояния разговора.
- Удалено использование объекта
`response` в функции обработчика сообщений и используется
объект `message` непосредственно для получения пользовательского выбора.
- Добавлена
функция `state.finish()` для обработки состояния окончания разговора.
Рукожоп