👍4
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Вся фишка в функции filter. Я думаю, что из названия и контекста понятно, что мы можем вызывать какую-то свою функцию для фильтрации итерируемого объекта. Здесь мы передали список на фильтрацию, получили объект типа filter, после чего привели его к списку и высчитали длину.
По какому алгоритму выбирали числа? Только четные И отрицательные —> -2.
У нас только одно такое число, так что и ответ: 1.
По какому алгоритму выбирали числа? Только четные И отрицательные —> -2.
У нас только одно такое число, так что и ответ: 1.
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4
python -m pip install pyrogram
python -m pip install TgCrypto
Импорт тут максимально простой. Просто из pyrogram импортируем модули через from / import:
from pyrogram import Client # потом ещё будем добавлять
Как и в любом другом боте нам нужен объект, с помощью которого уже и осуществляется работа.
В пироге это екземпляр принято называть app.
В него нужно передать
Название, строкаAPI_ID, строка либо число (int)API_HASH, строкаПро API_ID и API_HASH поговорим чуток позже.
app = Client("MyFirstUserBot", api_id, api_hash)Обработчики (хендлеры, handler) — это функции, которые срабатывают при определенном событии, например, при новом сообщении.
В Pyrogram они в виде декорратора который начинается на "on" (с англ - при), наример @app.on_message, @app.on_chat_join_request.
В декоратор следует передать фильтр, по которому будут выбираться случаи когда нужно чтобы обработчик сработал.
В библиотеке есть встроенные фильтры, их надо импортировать, но их можно и самому написать (научимся позже)
Как я говорил в предыдущем посте, нам нужно обрабатывать команды. Для этого, логично, надо создать обработчик сообщений, с фильтром, что это команда, и то что написали ее мы (мы ведь не хотим чтобы другие командовали вашим ботом?)
@app.on_message(filters.command(["start"], prefixes=".") & filters.me)
async def start(_, msg):
pass
Правильный порядок хендлеров сообщений должен выглядеть так:
Обработчики прописали, теперь пора это все дело запустить!
Тут всё просто:
app.run()
И, самое главное, без чего наш код ни в коем случае не заработает - данные телеграмма.
Как я говорил выше, ЮзерБота, как бы входит в твой аккаунт. Ему конечно же нужны данные. Это и есть api_id и api_hash
пишем свой номер телефона, на котором тг, и вводим код.
Далее там будет бланк, вы его заполняете. Данные можете писать какие угодно, они ни на что не влияют. Вы должны дойти то страницы с конфигурацией приложение (App Configuration). Там копируете app api_id и app api_hash, и вставляете в код, там где создавали екземпляр бота (app = ...)
from pyrogram import Client, filters
app = Client("тут", "ваши", "данные")
@app.on_message(filters.commands(["start"], prefixes=".") & filters.me)
async def start(_, msg):
pass
app.run()
Сегодня мы разобрались в базовой структуре ЮзерБота: поговорили про нужные классы, обработчики, их порядок, API данные. В следующем посте поговорим про отправку сообщений, редактирование, итп, так что
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Pyrogram
Welcome to Pyrogram — Pyrogram Documentation
Telegram MTProto API Framework for Python
Сразу под названием видим описание метода, то что он делает
Send text messages.
перевод:
(отправляет текстовое сообщение)
chat_id (int | str) – Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use “me” or “self”. For a contact that exists in your Telegram address book you can use his phone number (str).
перевод:
(chat_id (int | str) — уникальный идентификатор (int) или имя пользователя (str) целевого чата. Для вашего личного облака (сохраненных сообщений) вы можете просто использовать «me» или «self». Для контакта, который существует в вашей адресной книге Telegram, вы можете использовать его номер телефона (str))
В самое первое — название параметра далее в скобках тип данных. "|" - это "или", "либо". Если в скобках есть оptional, то это значит что этот аргумент не обязательный.
И последнее - описание.
Второй параметр разберите сами
text (str) – Text of the message to be sent.
text (str) – Текст отправляемого сообщения.
В итоге, отправлять сообщения надо так:
await app.send_message(chat_id, "text")
await. Если вы новичок - то просто ставьте перед методами await и все, а если вы уже что-то знаете, то объяснять не надо Их фишка в том, что это методы сообщений которые мы получаем из хендлера (параметр
msg). Например, чтобы изменить сообщение, не обязательно писатьapp.edit-бла-бла-бла, а можно просто msg.edit(). В него просто передаем строку и готово!
Теперь вспоминаем все что учили и соберём знания вместе. Сделаем так, чтобы при написании команды .start сообщение изменялось на Python Pyrogram!
from pyrogram import Client, filters
app = Client("UserBot", 123, "abc")
@app.on_message(filters.command(["start"], prefixes=".") & filters.me)
async def start(_, msg):
await msg.edit("Python Pyrogram!")
app.run()
Сегодня мы научились работать с документацией, и научились изменять сообщения. А следующем посте научимся получать из сообщения данные - его текст, отправитель, итп. Так что
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2👨💻2🤯1
https://t.me/pythonhub001/s/1
Хотите больше сторисов? Голосуйте за наш канал:
t.me/pythonhub001?boost
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⁉️ Как выгрузить историю чата телеграм в HTML?
⁉️ А потом еще и спарсить на Python?
☺️ Комментарии и лайки приветствуются ☺️
https://youtu.be/5z3BreWGmQg
⁉️ А потом еще и спарсить на Python?
☺️ Комментарии и лайки приветствуются ☺️
https://youtu.be/5z3BreWGmQg
YouTube
Парсим чат в TELEGRAM при помощи PYTHON | HTML экспорт + BeautifulSoup
В этом видео мы разберемся, как можно спарсить чат в телеграм, предвартительно экспортировав html документ со всеми сообщениями этого чата. Использовать будем библиотеку bs4 (BeautifulSoup)
👨💻 Подписывайся на наш телеграм канал! 👨💻
🖇 https://t.me/pythonhub001…
👨💻 Подписывайся на наш телеграм канал! 👨💻
🖇 https://t.me/pythonhub001…
👍9
Что выдаст код выше?
Anonymous Quiz
26%
[(1, 2), ('a', 'b')]
3%
[('a', 'b'), (1, 2)]
21%
[1, 'a', 2, 'b']
31%
[(1, 'a'), (2, 'b')]
12%
Error
7%
Не знаю
👍4🔥1
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Как работает zip? То есть функция берёт на вход несколько списков и создаёт из них список (в Python 3 создаётся не list, а специальный zip-объект) кортежей, такой, что первый элемент полученного списка содержит кортеж из первых элементов всех списков-аргументов.
Пример:
s = 'abc'
>>> t = (10, 20, 30)
>>> u = (-5, -10, -15)
>>> list(zip(s,t,u))
[('a', 10, -5), ('b', 20, -10), ('c', 30, -15)
Я думаю, что такой пример будет вполне хорош для описания
Пример:
s = 'abc'
>>> t = (10, 20, 30)
>>> u = (-5, -10, -15)
>>> list(zip(s,t,u))
[('a', 10, -5), ('b', 20, -10), ('c', 30, -15)
Я думаю, что такой пример будет вполне хорош для описания
👍10
str.join(). Это как волшебная палочка, которая соединяет слова, фразы или элементы списка в одну большую строку. Представьте себе, что вы устраиваете вечеринку и хотите объединить всех друзей в круг. str.join() — это как магия, которая собирает всех вместе!# Допустим, у нас есть список слов
words = ["Привет", "мир", "я", "Python"]
# И мы хотим объединить их в предложение
sentence = ' '.join(words)
print(sentence)В результате каждый элемент списка становится частью большой строки, разделенной пробелами или любым другим символом, который мы укажем перед join().
users = ["RimMirK", "Anuke", "compuser"]
result = ', '.join(users)
print(result) # "RimMirK, Anuke, compuser"Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Forwarded from RimMirK
@app.on_message(filters.command(["start"], prefixes="."))
async def start(_, msg):
print(msg)
id, text, from_user, chat reply_to_message(сообщение на которое ответили).@app.on_message(filters.chat([123,456]) & filters.new_chat_members)
async def welcome(_, msg):
new_members = [u.mention for u in msg.new_chat_members]
text = 'Привет, ' + ", ".join(new_members) + "!"
await msg.reply(text, True disable_web_page_preview=True)
[123,456])И тут начинается самое то, что нас интересует
mention - имя с ссылкой. Мы научились доставать данные из сообщения и вспомнили фильтры с обработчиками.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1🤯1
Что вы хотите видеть в сторисах на этом канале? (можно выбрать несколько вариантов)
Anonymous Poll
44%
Уведомления о новых роликах на YouTube
25%
Уведомления о викторинах
25%
Уведомления о новых постах
72%
Разные новости про python
3%
Свой вариант в коменты
Что выдаст код выше?
Anonymous Quiz
32%
[1, 2, 3, 4, 5, 6]
26%
[1, 2], [3], [4, 5, 6]
16%
21
1%
3
5%
1, 2, 3, 4, 5, 6
12%
Error
7%
Не знаю
👍5😱2
Вечер пятницы! Наступают выходные!
Это значит, что на канале вышло новое видео 📹
Особенно полезно будет тем, кто пилит игрушки на Python (Pygame) 🎲🎮
p.s. случайно проспал выход видоса
(лайк,если можешь тоже отрубиться вечером 😴)
https://youtu.be/eR0KnH2Zxaw
Это значит, что на канале вышло новое видео 📹
Особенно полезно будет тем, кто пилит игрушки на Python (Pygame) 🎲🎮
p.s. случайно проспал выход видоса
(лайк,если можешь тоже отрубиться вечером 😴)
https://youtu.be/eR0KnH2Zxaw
YouTube
Как СОЗДАВАТЬ ИГРЫ на PYTHON? | ОСНОВЫ PYGAME | Добавление NPC, группы, движение ботов
В этом видео мы продолжим делать нашу игру на Pygame. Добавим ботов (NPC), которые будут передвигаться. Делать это будем при помощи группы.
👨💻 Подписывайся на наш телеграм канал! 👨💻
🖇 https://t.me/pythonhub001 🖇
👨💻 И вступай в чат 👨💻
🖇 https://t.me/pythonhub_chat…
👨💻 Подписывайся на наш телеграм канал! 👨💻
🖇 https://t.me/pythonhub001 🖇
👨💻 И вступай в чат 👨💻
🖇 https://t.me/pythonhub_chat…
👍9😁1😴1
Python Hub - сборище Питонистов
Photo
Разбор 👨💻
Мы привыкли использовать функцию sum() для подсчета суммы элементов в списке.
Но тут немного другая история.
Как видно из кейса, мы передаем в sum два аргумента. Первый - это список со списками. А второй - это список, в который мы все будем собирать.
То есть, если бы наш второй аргумент был НЕ пустым списком, а имел в себе какие-то элементы, то наш финальный результативный список начинался бы как раз с этих элементов.
Но тут немного другая история.
Как видно из кейса, мы передаем в sum два аргумента. Первый - это список со списками. А второй - это список, в который мы все будем собирать.
То есть, если бы наш второй аргумент был НЕ пустым списком, а имел в себе какие-то элементы, то наш финальный результативный список начинался бы как раз с этих элементов.
👍5
‼️Создать базу данных SQLite через Python‼️
В Python для работы с SQLite мы будем использовать модуль sqlite3, который входит в стандартную библиотеку Python. Начнем с импорта модуля и создания соединения с базой данных:
После создания соединения мы можем создать таблицы в нашей базе данных. Вот пример создания таблицы "users":
Вставка данных в базу данных
После создания таблицы мы можем добавить данные в базу данных. Для этого мы можем использовать метод
В Python для работы с SQLite мы будем использовать модуль sqlite3, который входит в стандартную библиотеку Python. Начнем с импорта модуля и создания соединения с базой данных:
import sqlite3
# Создание соединения с базой данных
conn = sqlite3.connect('mydatabase.db')
После создания соединения мы можем создать таблицы в нашей базе данных. Вот пример создания таблицы "users":
# Создание таблицы "users"
conn.execute('''CREATE TABLE users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL);''')
Вставка данных в базу данных
После создания таблицы мы можем добавить данные в базу данных. Для этого мы можем использовать метод
execute() и executemany() для вставки одной или нескольких строк данных соответственно. Вот пример вставки данных в таблицу "users":# Вставка данных в таблицу "users"
conn.execute("INSERT INTO users (name, age) VALUES ('John Doe', 25)")
conn.execute("INSERT INTO users (name, age) VALUES ('Jane Smith', 30)")
conn.executemany("INSERT INTO users (name, age) VALUES (?, ?)", [('Alice Johnson', 35), ('Bob Brown', 40)])
👍6
Что выведет код выше?
Anonymous Quiz
22%
0 6
15%
[6, 0] None
11%
[0, 6]
9%
(0, 1) (6, 2)
14%
[0, 6] [0, 6] [0, 6]
9%
Error
20%
Не знаю
👍6
print(i, e) # a 0, b 1, c 2
Второй параметр - это с какого числа начинать отсчет.
for i, e in enumerate(['a', 'b', 'c'], 3):
print(i, e) # a 3, b 4, c 5
Вывод: [0, 6] [0, 6] [0, 6]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🏆1