Windows 10, в проекте используеться python 3.10.9, aiogram 2.24.
Проблема заключается в том что при запуске бота машинное состаяние не работает, а ошибки не высвечиваються, пишу в модульное системе по примеру с интернета, вот так это всё выглядит:
В дальнейшем хочу написать
Проблема заключается в том что при запуске бота машинное состаяние не работает, а ошибки не высвечиваються, пишу в модульное системе по примеру с интернета, вот так это всё выглядит:
Python:
from aiogram import types, Dispatcher
from createBot import dp
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
class FSMkalkulator(StatesGroup):
gender = State()
weight = State()
height = State()
age = State()
@dp.message_handler(commands="normal_daytime", state=None)
async def command_normal_daytime(message: types.Message):
await FSMkalkulator.gender.set()
await message.reply("Enter your gender,\nif you are a man enter 'm',\nif you are a woman enter 'w'")
@dp.message_handler(state=FSMkalkulator.gender)
async def remember_gender(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['gender'] = message.text
await FSMkalkulator.next()
await message.reply("Now enter your weight in kg,\nfor example like this: '65', just write in numbers without letters")
@dp.message_handler(state=FSMkalkulator.weight)
async def remember_weight(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['weight'] = float(message.text)
await FSMkalkulator.next()
await message.reply("Now enter your height in cm,\nfor example like this: '170', just write in numbers without letters")
@dp.message_handler(state=FSMkalkulator.height)
async def remember_height(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['height'] = float(message.text)
await FSMkalkulator.next()
await message.reply("Now enter your age")
@dp.message_handler(state=FSMkalkulator.age)
async def remember_age(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['age'] = float(message.text)
async with state.proxy() as data:
await message.reply(str(data))
await state.finish()
def register_handlers_statkalkulator(dp: Dispatcher):
dp.register_message_handler(command_normal_daytime, commands=["normal_daytime"], state=None)
dp.register_message_handler(remember_gender, commands=["gender"], state=FSMkalkulator.gender)
dp.register_message_handler(remember_weight, commands=["weight"], state=FSMkalkulator.weight)
dp.register_message_handler(remember_height, commands=["height"], state=FSMkalkulator.height)
dp.register_message_handler(remember_age, commands=["age"], state=FSMkalkulator.age)
В дальнейшем хочу написать
- if gender = w : 655,1 + (9,563 × {weight}) + (1,85 × {height}) - (4,676 × {age});
- else: 66,5 + (13,75 × {weight}) + (5,003 × {height}) - (6,775 × {age}).
- потом вывесьти результат, если я правильно пишу
- ну и ещё профицит и дефицит (вопрос к этому зподно их создавать в других питон файлах или можно в этом с другим класом ?)
- Если это возможно могу скинуть полный файл