import logging
from aiogram import Bot, Dispatcher, executor, types
import markups as nav
TOKEN = 'TOKEN'
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def command_start(message: types.Message):
await bot.send_message(message.from_user.id, 'Привет, {0.first_name}! Что будем считать?'.format(message.from_user), reply_markup=nav.mainMenu)
@dp.message_handler()
async def bot_message(message: types.Message):
# await bot.send_message(message.from_user.id, message.text)
if message.text == 'Погрешность счетчика':
<i> <b>await message.reply("Какой класс точности счетчика? Пока я умею считать только счетчики с классом точности 0.5 и 1.")</i></b>
# Список для хранения значений
values = []
@dp.message_handler(lambda message: len(values) < 5)
async def process_input(message: types.Message):
try:
value = float(message.text)
values.append(value)
if len(values) == 1:
await message.reply("Какое фактическое напряжение? (В).")
elif len(values) == 2:
await message.reply("Какая средняя сила тока? (А)")
elif len(values) == 3:
await message.reply("Какой коэффициент мощности? (cos)")
elif len(values) == 4:
await message.reply("Какая температура воздуха?")
elif len(values) == 5:
clas = values[0]
voltage = values[1]
amperage = values[2]
cos = values[3]
temp = values[4]
# Вычисляем погрешность
m = voltage * amperage * cos / 230 / 5
if m < 0.2:
otnospogresh = clas * (0.9 + 0.02 / m)
tempogresh = 0.05 * otnospogresh * (temp - 20)
pogresh = 1.1 * (otnospogresh ** 2 + tempogresh ** 2) ** 0.5
await message.reply(f"Вы ввели:\n Класс точности: {clas} \nНапряжение: {voltage} В\nСила тока: {amperage} А\nКоэффициент мощности: {cos}\nТемпература: {temp} \n\nДопустимая погрешность счетчика: +-{pogresh} ")
else:
otnospogresh = clas
tempogresh = 0.05 * otnospogresh * (temp - 20)
pogresh = round((1.1 * (otnospogresh ** 2 + tempogresh ** 2) ** 0.5), 3)
await message.reply(f"Вы ввели:\n Класс точности: {clas} \nНапряжение: {voltage} В\nСила тока: {amperage} А\nКоэффициент мощности: {cos}\nТемпература: {temp} \n\nДопустимая погрешность счетчика: +-{pogresh} ")
# Очищаем список для следующего ввода
values.clear()
except ValueError:
await message.reply("Пожалуйста, введите корректное число.")
@dp.message_handler()
async def bot_message(message: types.Message):
...
# Список для хранения значений
values = []
@dp.message_handler(lambda message: len(values) < 5)
async def process_input(message: types.Message):
...