Top.Mail.Ru
Ответы

Написать бота с SQL.

Вам дана база данных чаевых. Вычислите при помощи SQL для каждого дня недели и типа приёма пищи (обед/ужин) общую сумму чаевых и найдите три самых удачных временных слота.

Напишите телеграмм-бота с двумя командами:
- внести информацию про платеж
- посчитать чаевые по дням
И пришлите пжпж код(без токена)

По дате
По рейтингу
Аватар пользователя

Конечно, я могу помочь вам создать бота с использованием SQL для работы с базой данных и выполнения указанных задач. Ниже представлен пример кода для создания Telegram-бота на языке Python с использованием библиотеки python-telegram-bot и SQLite базой данных. Вы можете адаптировать этот код под свои нужды.

```python
import sqlite3
from sqlite3 import Error
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters

# Создание подключения к базе данных
def create_connection():
conn = None
try:
conn = sqlite3.connect('tips.db')
print("Соединение с базой данных установлено")
return conn
except Error as e:
print(e)

return conn

# Создание таблицы для хранения чаевых
def create_table(conn):
try:
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS tips (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT,
meal_type TEXT,
tip_amount REAL
)
''')
conn.commit()
print("Таблица создана успешно")
except Error as e:
print(e)

# Обработчик команды /start
def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="Привет! Я бот для работы с чаевыми. Введи /addtip для внесения информации о платеже или /gettips для получения суммы чаевых по дням.")

# Обработчик команды /addtip
def add_tip(update, context):
conn = create_connection()
if conn is not None:
try:
cursor = conn.cursor()
chat_id = update.effective_chat.id
date = update.message.date.strftime("%Y-%m-%d")
meal_type = context.args[0].lower()
tip_amount = float(context.args[1])
cursor.execute("INSERT INTO tips (date, meal_type, tip_amount) VALUES (?, ?, ?)", (date, meal_type, tip_amount))
conn.commit()
context.bot.send_message(chat_id=chat_id, text="Информация о платеже успешно добавлена.")
except (Error, IndexError, ValueError) as e:
context.bot.send_message(chat_id=chat_id, text="Произошла ошибка при добавлении информации о платеже.")
print(e)
finally:
conn.close()

# Обработчик команды /gettips
def get_tips(update, context):
conn = create_connection()
if conn is not None:
try:
cursor = conn.cursor()
cursor.execute("SELECT date, meal_type, SUM(tip_amount) FROM tips GROUP BY date, meal_type")
rows = cursor.fetchall()
if len(rows) > 0:
message = "Сумма чаевых по дням:\n"
for row in rows:
date = row[0]
meal_type = row[1]
tip_amount = row[2]
message += f"{date} ({meal_type}): {tip_amount}\n"
context.bot.send_message(chat_id=update.effective_chat.id, text=message)
else:
context.bot.send_message(chat_id=update.effective_chat.id, text="

Аватар пользователя
Ученик

Спасибо огромное!!!



Видео по теме