Python3000
36 subscribers
3 photos
4 files
6 links
Задачи, решения,библиотеки,и т.д.

В комментариях нельзя спамить,флудить,выкладывать рекламу,оскорблять кого либо в комментариях,сдать стикеры плохого характера.За нарушение - сначала предупреждение, потом бан.

Мои соц:
Дзен- dzen.ru/py3000
Download Telegram
Так вот, начнем.

Для создания тг бота во первых необходимо его зарегать в боте botfather. В нём надо ответить на пару вопросов и получить ID бота, им делиться НЕЛЬЗЯ. С его помощью можно запрограммировать бота.

Задание:
Зарегать бота и прислать скрин инфы)))
Тепер код.

Во первых надо установить библиотеку.
pip install pytelegrambotapy

Инициализируем бота в python
import telebot
bot=telebot.Telebot("ваш токен")

Теперь сделаем так, чтобы бот слушал сообщения пользователя.

@bot.message_handler(content_types=["text"]) 
def funk(message) :
bot.send_message(messagr.from_user.id,"somemess")

Так на любое сообщение пользователя в личку с ботом отправляется сообщение.
Дз:
Сделать бота, который на картинку отвечает рандомную сумму за не.

Прислать код обязательно, без айди, и скинуть бота(запущенного) .
Помним про дз!!!
Жаль, что никто дз пока не сделал, сразу после первой сдачи(верной или не верной) я вышлю решение.

Теперь можно сделать кнопку под сообщением.
keyboard = types.InlineKeyboardMarkup(); #наша клавиатура
key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes'); #кнопка «Да»
keyboard.add(key_yes); #добавляем кнопку в клавиатуру
key_no= types.InlineKeyboardButton(text='Нет', callback_data='no');
keyboard.add(key_no);
bot.send_message(message.from_user.id, text="съесть шаву?", reply_markup=keyboard)

Данный код добавит две кнопки да и нет, но они ничего не делают.

Теперь надо добавить обработчик события нажатия.
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
if call.data == "yes": #call.data это callback_data, которую мы указали при объявлении кнопки

bot.send_message(call.message.chat.id, 'и мне купи');
elif call.data == "no":
#эммм тут не должно было #быть этого варианта
Дз:
К боту из первого задания добавить кнопки купить или дорого и сделать на них какие-то действия.
Дздздз делаем дз!!!
Хм хм дз ни кто не сделал...
Продолжим расширять наши знания.

Файловый ввод-вывод реализуется стандартными функциями языка. Файлы читаются по строкам, пишутся по символам.
Например:
fail=open("somefile.txt", "r") 
file.close()

В данном коде мы открываем фаил и сразу закрываем.
open() может иметь в качестве второго аргумента:
-"r", если нужно просто прочитать файл
-"w ", если нужно удалить все и записать новое.
-"a ", если нужно добавить в файл записи.
Также есть комбинированные режимы, например "rw".
С read и write разберетесь.
Дз:
Сделать текстовый файл в который бот будет добавлять список людей, что написали боту и цену, которую они предложили.
Ок, кто сделает дз(все 3,что были по ботам и это) верно раньше всех, получит шоколадку от меня.
👍3
Так вот, выкладываю дедлайн, 20 января
bot.polling(none_stop=True, interval=0)

Допустим если написать это в конец то будет лучше.
Хотите продолжеие?
Anonymous Poll
76%
да
24%
нееее,тюлеить буду
from random import randint
import telebot
from telebot import types
bot=telebot.TeleBot("")
pamet = ["Name","Sell"]
@bot.message_handler(content_types=['photo'])
def get_photo(message):
    sell = str(randint(0,10**5))+"$"
    pamet[1]=sell
    keyboard = types.InlineKeyboardMarkup()
    key_pr = types.InlineKeyboardButton(text='Продать', callback_data='pr')
    keyboard.add(key_pr);
    key_os = types.InlineKeyboardButton(text='Оставить', callback_data='os')
    keyboard.add(key_os);
    bot.reply_to(message, sell ,reply_markup=keyboard)
    pamet[0]=str(message.from_user.id)
@bot.message_handler(content_types=['text'])

def get_text_messages(message):
    if message.text == "Баланс":
        f = open('balance.txt', 'r')
        a = f.read().split()
        name=str(message.from_user.id)
        if name in a:
            bot.send_message(message.from_user.id,a[a.index(pamet[0])+1])
        else:
            bot.send_message(message.from_user.id,"0$")
            bot.send_message(message.from_user.id,"Вы не продали ещё не одной картины.")
        f.close()
    else:
        bot.send_message(message.from_user.id,"Пока я умею только показывать ваш баланс - \"Баланс\" \n И продавать фотографии - скиньте фотографию")

@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
    if call.data == "pr":
        bot.send_message(call.message.chat.id, 'Вы успешно продали картину');
        f = open('balance.txt', 'r')
        a = f.read().split()
        if pamet[0] in a: a[a.index(pamet[0])+1]=str(int(a[a.index(pamet[0])+1][:-1])+int(pamet[1][:-1]))+"$";
        else:
            a.append(pamet[0])
            a.append(pamet[1])
        f = open('balance.txt', 'w')
        f.write(" ".join(a))
        f.close()
    elif call.data == "os":
        bot.send_message(call.message.chat.id, 'Вы успешно сохранили эту картину');
bot.polling(none_stop=True, interval=0)

Вот, наш герой это банбанан и он написал это
На этом курс НЕ кончается я постараюсь почаще выкладывать теорию
Меня тут все просят олимпиадных рассказать, не совсем олимпиадная но почему бы и нет...
Задача(разминка) :
Сложить два числа без ограничений на числа(они могут спокойно быть больше чем 100 в 100 в 100)
Python3000
dzen.ru/py3000?share_to=link если хотите
Люди надо 10 людей сюда пжпжпж