Хочу сделать мини игру с балансом, но не имею представления, как реализовать баланс. Подскажите кто знает или уже имел дело с подобным. Используемая библиотека для создания бота pyTelegramBotAPI
Юзай постгрес , сделай табличку юзера со всеми необходимыми полями, и обращайся к нему , напиши интерфейс для работы с бд, юзай орм как например sqlalchemy
dedonosec, https://mastergroosha.github.io/telegram-tutorial/docs/lesson_01/ советую для начала это почитать для небольших бд используй sqlite3
import telebot import sqlite3 conn = sqlite3.connect("database.db",check_same_thread=False) c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS balance (user_id INTEGER,balance INTEGER)''') c.execute('''CREATE TABLE IF NOT EXISTS start (user_id INTEGER,num INTEGER)''') @config.bot.message_handler(content_types=["text"]) def message_handler(message): if "/start": config.bot.send_message(id,"Привет",reply_markup=config.home) try: result_start = c.execute(f"SELECT * FROM start WHERE user_id={message.chat.id}").fetchone() start_result = result_start[1] #Сделал это чтобы если вдруг юзер захочет заного написать боту /start , #данные в балансе не будут перезаписаны except: start_params = (id,1) c.execute("INSERT INTO start VALUES (?,?)",start_params) params = (id,"0") c.execute("INSERT INTO balance VALUES(?,?)",params) conn.commit() elif message.text == "Баланс": result = c.execute(f"SELECT * FROM balance WHERE user_id = {message.chat.id}").fetchone() balance = result[1] #Получаем данные о балансе юзера bot.send_message(message.chat.id,"На вашем балансе: *"+ str(balance)+" руб*!",parse_mode="Markdown") Код import telebot import sqlite3 conn = sqlite3.connect("database.db",check_same_thread=False) c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS balance (user_id INTEGER,balance INTEGER)''') c.execute('''CREATE TABLE IF NOT EXISTS start (user_id INTEGER,num INTEGER)''') @config.bot.message_handler(content_types=["text"]) def message_handler(message): if "/start": config.bot.send_message(id,"Привет",reply_markup=config.home) try: result_start = c.execute(f"SELECT * FROM start WHERE user_id={message.chat.id}").fetchone() start_result = result_start[1] #Сделал это чтобы если вдруг юзер захочет заного написать боту /start , #данные в балансе не будут перезаписаны except: start_params = (id,1) c.execute("INSERT INTO start VALUES (?,?)",start_params) params = (id,"0") c.execute("INSERT INTO balance VALUES(?,?)",params) conn.commit() elif message.text == "Баланс": result = c.execute(f"SELECT * FROM balance WHERE user_id = {message.chat.id}").fetchone() balance = result[1] #Получаем данные о балансе юзера bot.send_message(message.chat.id,"На вашем балансе: *"+ str(balance)+" руб*!",parse_mode="Markdown") Остальное можешь найти здесь(Обновление,удаления данных): https://python-scripts.com/sqlite | https://docs.python.org/3/library/sqlite3.html --- Сообщение объединено с предыдущим 3 фев 2020 Baty