Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование, кто может помоч, нужен код для python

Андрей Саттаров Ученик (52), открыт 2 дня назад
Простой бот, нужен бот в котором будет чисто магазин там 3-4 товара все должно быть максимально простое
2 ответа
sigmaohiorizz Профи (660) 2 дня назад
Конечно! Вот пример простого бота на Python, который работает в Telegram и представляет собой магазин с 3-4 товарами. Для работы этого бота вам понадобится библиотека `python-telegram-bot`. Вы можете установить ее, используя pip:

```bash
pip install python-telegram-bot
```

Вот пример кода:

```python
import logging
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, ContextTypes

# Включаем логирование
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)

logger = logging.getLogger(__name__)

# Список товаров
products = [
{'name': 'Товар 1', 'price': 100},
{'name': 'Товар 2', 'price': 200},
{'name': 'Товар 3', 'price': 300},
]

# Команда /start
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
keyboard = [[InlineKeyboardButton(prod['name'], callback_data=prod['name'])] for prod in products]
reply_markup = InlineKeyboardMarkup(keyboard)

await update.message.reply_text('Добро пожаловать в магазин! Выберите товар:', reply_markup=reply_markup)

# Обработка нажатия кнопок
async def button(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
query = update.callback_query
await query.answer()

selected_product = next((prod for prod in products if prod['name'] == query.data), None)

if selected_product:
await query.edit_message_text(text=f"Вы выбрали: {selected_product['name']}\nЦена: {selected_product['price']} руб.")
else:
await query.edit_message_text(text="Товар не найден.")

def main() -> None:
# Вставьте сюда токен вашего бота
updater = Updater("YOUR_TOKEN_HERE")

# Получаем диспетчера для регистрации обработчиков
dispatcher = updater.dispatcher

dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(CallbackQueryHandler(button))

# Запуск бота
updater.start_polling()

# Бот будет работать до завершения
updater.idle()

if __name__ == '__main__':
main()
```

### Инструкции по использованию:

1. Создайте бота в Telegram через [BotFather]( https://core.telegram.org/bots#botfather ) и получите токен.
2. Замените `"YOUR_TOKEN_HERE"` в коде на токен, который вы получили от BotFather.
3. Установите необходимые библиотеки, если вы этого еще не сделали.
4. Запустите скрипт.
5. Напишите `/start` в своем Telegram-боте, чтобы начать взаимодействие.

Этот бот предлагает список товаров, и при выборе товара показывает его имя и цену. Вы можете расширить функциональность, добавив функции для оформления заказа или получения дополнительной информации о товарах.
Андрей Косарев Знаток (475) 2 дня назад
class Product:
def __init__(self, name, price):
self.name = name
self.price = price

class Shop:
def __init__(self):
self.products = [
Product("Яблоко", 50),
Product("Банан", 30),
Product("Апельсин", 40),
Product("Груша", 60)
]

def display_products(self):
print("Доступные товары:")
for idx, product in enumerate(self.products):
print(f"{idx + 1}. {product.name} - {product.price} руб.")

def buy_product(self, product_index):
if 0 <= product_index < len(self.products):
product = self.products[product_index]
print(f"Вы купили {product.name} за {product.price} руб.")
else:
print("Неверный выбор товара.")

def main():
shop = Shop()

while True:
shop.display_products()
choice = input("Выберите номер товара для покупки (или 'выход' для завершения): ")

if choice.lower() == 'выход':
print("Спасибо за покупку! До свидания!")
break

try:
product_index = int(choice) - 1
shop.buy_product(product_index)
except ValueError:
print("Пожалуйста, введите корректный номер товара.")

if __name__ == "__main__":
main()
Андрей СаттаровУченик (52) 2 дня назад
бро нужен легкий!
Похожие вопросы