AIOgram
- 11 ответов
- 0 вопросов
5
Вклад в тег
from aiogram import Bot, Dispatcher, executor, types
bot = Bot('token')
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def get_phone(message: types.Message):
keyboard = types.InlineKeyboardMarkup()
key_1 = types.InlineKeyboardButton(text='button 1', callback_data='b1')
keyboard.add(key_1)
key_2 = types.InlineKeyboardButton(text='button 2', callback_data='b2')
keyboard.add(key_2)
await bot.send_message(message.from_user.id, text='Выберите, нажав одну из кнопок:', reply_markup=keyboard)
@dp.callback_query_handler(lambda call: True)
async def get_storage(callback: types.CallbackQuery):
if callback.data == 'b1':
await callback.message.answer('Вы нажали на button 1')
if callback.data == 'b2':
await callback.message.answer('Вы нажали на button 2')
# Заглушка, чтобы кнопка не мигала после нажатия
await callback.answer()
executor.start_polling(dp)
from aiogram import Bot, Dispatcher, executor, types
from aiogram.types import ReplyKeyboardMarkup
from aiogram.contrib.fsm_storage.memory import MemoryStorage
bot = Bot('')
storage = MemoryStorage()
dp = Dispatcher(bot, storage=MemoryStorage())
state_time = 'setTime'
kb = ReplyKeyboardMarkup(row_width=10, one_time_keyboard=True)
btns = (types.KeyboardButton(str(btn)) for btn in range(1, 31))
kb.add(*btns)
@dp.message_handler(commands=['start'])
async def dp_choose_user(message: types.Message):
await message.answer('Введите день:', reply_markup=kb)
await dp.current_state().set_state(state_time) # Вход в состояние ввода даты
@dp.message_handler(lambda message: message.text.isdigit() and 1 <= int(message.text) <= 30, state=state_time)
async def dp_choose_action(message: types.Message):
await message.answer(text=f'Вы выбрали {message.text}')
await dp.current_state().reset_state() # Выход из состояния ввода даты
@dp.message_handler(state=state_time)
async def dp_choose_action(message: types.Message):
await message.answer(text='Ошибка ввода даты. Введите еще раз.', reply_markup=kb)
executor.start_polling(dp)
# Функция для подставления номера стороны и номера треугольника для отображения
def enter_length(side_num: str, triangle_num: str):
return f'Enter the length of {side_num} side of triangle {triangle_num} (cm): '
error_msg = 'Error! Please enter an integer or fractional number for the program to work correctly.'
repeat_msg = "Enter 'Y' for one more triangle or any key to exit: "
# Номер треугольника
triangle_num = 1
while True:
try:
sides = []
# Номер стороны из 3
for side_num in range(1, 4):
sides.append(
float(input(enter_length(str(side_num), str(triangle_num)))))
area_of_triangle(*sides)
except ValueError:
print(error_msg)
else:
response = input(repeat_msg)
if response == 'Y':
triangle_num += 1
else:
break
users = {
12398767: {'name': 'Vasya'},
98765467: {'name': 'Lena'}
}
def edit(user_id: int):
global users
users[user_id]['name'] = 'Petya'
def read(user_id: int):
print(users[user_id]['name'])
edit(12398767)
read(12398767) # Petya
print(users) # {12398767: {'name': 'Petya'}, 98765467: {'name': 'Lena'}}