и не говорить мне учитьсяИменно это я и скажу. Мы должны все разжевать и вам в рот положить?
но я совсем недавно началЭто не даёт вам права не учиться
прошу найти именно ошибкуВот именно поэтому, я и посылаю вас учиться.
я уже задавал этот вопросА это чревато его удалением или даже баном.
Учиться, учиться и ещё раз учиться. А не ботов писать.
def text_handler(...): # <<< этот хендлер регистрируем
secondary_handlers = {
"О нас": about_us,
"Чем займемся?": whats_next,
"текст": handler_for_text
}
if handler := secondary_handlers.get(message.text):
handler(message)
def about_us(...): ... # < а эти нет
def whats_next(...): ...
@bot.message_handler(func=lambda message: message.text == 'О нас')
def blabla1(message):
... # тут логика реакции на сообщение "О нас"
@bot.message_handler(func=lambda message: message.text == 'Чем займёмся?')
def blabla2(message):
... # тут логика реакции на сообщение "Чем займёмся?"
@bot.message_handler(func=lambda message: True)
def whatever(message):
... # тут логика реакции на все остальные сообщения. Эта функция должна идти строго последней.
aiogram==2.25.1
Как мне такое реализовать, с учетом того, что я <...> в асинхроне ничего не понимаю?
ИТС не предлагать,
Почему python не видит имя класса?
pt1 = Point3D()
pt2 = Point3D()
pt3 = Point3D()
class Point:
x = 2
y = 3
z = 4
pt1 = Point()
pt2 = Point()
pt3 = Point()
print(dir(Point))
print(getattr(pt1, 'x'))
Что делаю не так?
import math
while True:
a = int(input("ax^2+bx+c=0 / a: "))
b = int(input("ax^2+bx+c=0 / b: "))
c = int(input("ax^2+bx+c=0 / c: "))
d = b ** 2 - 4 * a * c
if d > 0:
x1 = (-b + math.sqrt(d)) / (2 * a)
x2 = (-b - math.sqrt(d)) / (2 * a)
print(f'Корней: 2. \n x1 = {x1}')
print(f'Корней: 2. \n x2 = {x2}')
elif d == 0:
x1 = -b / (2 * a)
print(f'Корень: 1. \n x1 = {x1}')
else:
print("Корней: 0")
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram import types
def create_pagination_buttons(current_page, max_page, chunks):
buttons = InlineKeyboardMarkup()
for a in chunks[current_page]:
buttons.add(InlineKeyboardButton(text=a['shortName'], callback_data=f"school-{a['id']}"))
buttons.add(InlineKeyboardButton(text='<', callback_data=f'to-left-{max_page}'),
InlineKeyboardButton(text=f'{current_page + 1}/{max_page}', callback_data='count'),
InlineKeyboardButton(text='>', callback_data=f'to-right-{max_page}'))
buttons.add(InlineKeyboardButton(text='Поменять город', callback_data='choose_city'))
return buttons
async def send_school_list(message: types.Message, r_json, current_page=0):
chunk_size = 15
chunks = [r_json[i:i + chunk_size] for i in range(0, len(r_json), chunk_size)]
max_page = len(chunks)
buttons = create_pagination_buttons(current_page, max_page, chunks)
await message.answer('Выберите школу:', reply_markup=buttons)
@dp.callback_query_handler(lambda c: re.search('to-', c.data))
async def to_page(call: types.CallbackQuery):
chat_id = call.message.chat.id
await call.answer()
direction = call.data.split("-")[1]
max_page = int(call.data.split("-")[2])
current_page = int(db.get_current_page(chat_id))
if direction == 'left':
current_page = (current_page - 1) % max_page
elif direction == 'right':
current_page = (current_page + 1) % max_page
db.set_current_page(chat_id, current_page)
r_json = reqtest.get_schools(449)
chunk_size = 15
chunks = [r_json[i:i + chunk_size] for i in range(0, len(r_json), chunk_size)]
buttons = create_pagination_buttons(current_page, max_page, chunks)
await call.message.edit_reply_markup(reply_markup=buttons)