В Python символ новой строки представлен как '\n'. Он используется для обозначения конца строки текста и начала новой. Когда интерпретатор Python встречает символ новой строки в строке, он понимает, что нужно перенести строку и начать новую. Например:
print("Привет\nМир")Привет
Мир
Это происходит потому, что символ '\n' сигнализирует интерпретатору о начале новой строки после печати "Привет".
Помимо символа новой строки, Python также поддерживает различные другие специальные символы, которые часто используются с оператором print для форматирования вывода. Например, символ '\t' представляет собой табуляцию, создающую большое пространство в выводе.
print("Привет\tМир")Привет Мир
Экранированные последовательности в Python начинаются с обратной косой черты (\) и следуют за символом, который вы хотите вставить. Python интерпретирует экранированную последовательность как один символ. Помимо '\n', '\t', в Python есть несколько других экранированных последовательностей, таких как \' для одинарной кавычки, \" для двойной кавычки и \\ для самой обратной косой черты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥3⚡1
👍6😁4❤2🔥2🤬2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤7🤬2👏1
cProfile - это модуль в стандартной библиотеке Python, который предоставляет возможность профилирования кода. Он позволяет измерить время выполнения каждой функции в вашем коде, а также количество вызовов каждой функции. Это делает его отличным инструментом для определения тех мест в вашем коде, которые являются узкими местами и могут быть оптимизированы.
Использование cProfile довольно просто. Вы просто импортируете модуль и вызываете функцию
cProfile.run(), передавая ей строку кода, который вы хотите проанализировать. Вы также можете использовать cProfile в качестве командной строки, передав ему имя файла Python, который вы хотите профилировать. Результаты профилирования могут быть отсортированы по различным критериям, таким как общее время выполнения, время выполнения на вызов и количество вызовов.import cProfile
def sum_of_numbers():
return sum(range(100000))
cProfile.run('sum_of_numbers()')
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4🔥4
Первым шагом является установка модуля requests, если он еще не установлен. Он является одним из основных модулей Python, которые используются для отправки HTTP-запросов. Вы можете установить его, используя pip:
pip install requests.Скачивание файла с помощью requests довольно прямолинейно. Вам просто нужно сделать запрос к URL-адресу файла, который вы хотите скачать, а затем записать ответ в файл. Вот пример кода, который скачивает изображение с интернета:
import requests
url = '<https://example.com/image.jpg>'
response = requests.get(url)
with open('image.jpg', 'wb') as f:
f.write(response.content)
Важно обрабатывать возможные ошибки при скачивании файла. Если файл не найден или произошла другая ошибка, requests вернет код ответа, отличный от 200. В этом случае вы должны проверять статус ответа перед записью файла.
import requests
headers = {'referer': 'https://nottka.com/4364-yoshinao-nakada-etude-allegro.html'}
response = requests.get('https://nottka.com/index.php?do=download&id=4420', headers=headers)
with open('4420.pdf', 'wb') as file:
file.write(response.content)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥2
Этот метод извлекает ресурс с сервера. Он идемпотентен: несколько идентичных запросов возвращают один и тот же результат.
Этот метод обновляет или создает ресурс. Он также идемпотентен: несколько идентичных запросов обновят один и тот же ресурс.
Этот метод используется для создания новых ресурсов. Он не идемпотентен: два одинаковых POST-запроса создадут дублированные ресурсы.
Этот метод используется для удаления ресурса. Он идемпотентен: несколько идентичных запросов удалят один и тот же ресурс.
Метод PATCH применяется для частичного изменения ресурса.
Метод HEAD запрашивает ответ, идентичный GET-запросу, но без тела ответа.
Метод CONNECT устанавливает туннель к серверу, идентифицированному целевым ресурсом.
Этот метод описывает параметры связи для целевого ресурса.
Этот метод выполняет тест возврата сообщения по пути к целевому ресурсу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥3
Первый шаг в создании автообновления страницы - использование библиотеки Selenium. Selenium - это набор инструментов для автоматизации веб-браузеров. Он позволяет Python взаимодействовать с браузером, как если бы это делал человек. С помощью Selenium мы можем открыть веб-страницу и обновить ее.
from selenium import webdriver
driver = webdriver.Firefox() # или любой другой браузер
driver.get('<http://www.example.com>')
Второй шаг - это использование метода refresh в Selenium. Этот метод позволяет обновить текущую страницу. В комбинации с библиотекой time в Python, мы можем настроить скрипт так, чтобы он автоматически обновлял страницу через определенные интервалы времени.
import time
while True:
driver.refresh() # обновляем страницу
time.sleep(10) # ждем 10 секунд
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥3
Функция
keyboard.add_hotkey() в Python позволяет вам назначить определенную функцию на клавиатурный ярлык, известный как горячая клавиша. Эта функция принимает два основных аргумента: комбинацию клавиш и функцию, которая будет выполнена при нажатии горячей клавиши. Синтаксис следующий: keyboard.add_hotkey(hotkey, callback, args=(), suppress=False, timeout=3, trigger_on_release=False). Горячей клавишей может быть одна клавиша, комбинация клавиш или даже последовательность клавиш.Функция
keyboard.add_hotkey() очень удобна для автоматизации задач и увеличения интерактивности ваших скриптов на Python. Например, вы можете использовать ее, чтобы создать простой кейлоггер, автоматизировать создание скриншотов или даже создать пользовательский ярлык для определенной задачи в вашем приложении на Python. Однако очень важно использовать эту функцию ответственно и этично, учитывая ее возможное злоупотребление.Для иллюстрации рассмотрим пример, в котором мы хотим напечатать "Привет, Мир!" при нажатии клавиш 'Ctrl + H'. Сначала нам нужно импортировать модуль
keyboard. Если он не установлен, используйте pip для его установки. Затем мы определяем нашу функцию и добавляем горячую клавишу следующим образом:import keyboard
def hello_world():
print("Привет, Мир!")
keyboard.add_hotkey('ctrl + h', hello_world)
keyboard.wait()
hello_world, и "Привет, Мир!" выводится на консоль.Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4🔥4
Они обеспечивают структурированный способ хранения настроек и конфигураций для приложения. TOML использует простой синтаксис, который легко читается и понимается, что делает его идеальным для использования в качестве языка конфигурации.
Чтобы начать работу с TOML в Python, вам сначала нужно установить библиотеку toml. Вы можете сделать это с помощью инструмента pip, который является стандартным менеджером пакетов для Python. Просто откройте терминал и введите следующую команду:
pip install toml.Считывание TOML-конфигов в Python легко осуществляется с помощью библиотеки toml. Вы просто открываете файл с помощью встроенной функции open(), а затем используете функцию toml.load() для разбора содержимого TOML-конфига. Вот простой пример:
[server]
host = "127.0.0.1"
port = 8000
[database]
user = "admin"
password = "secret"
import toml
config = toml.load('config.toml')
print(config)
{
'server': {
'host': '127.0.0.1',
'port': 8000
},
'database': {
'user': 'admin',
'password': 'secret'
}
}Вы можете получить доступ к любому параметру конфигурации, используя его ключи. Например, для получения адреса хоста сервера вы можете использовать
config['server']['host'].Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4👍3
Установка Pyppeteer проста и прямолинейна. Все, что вам нужно, это Python 3.6 или выше. Установите Pyppeteer, используя pip:
pip install pyppeteer. В процессе установки Pyppeteer скачает последнюю версию Chromium.Pyppeteer предлагает богатый набор функций для автоматизации веб-браузера. Вы можете автоматизировать ввод данных, клики по ссылкам, скачивание файлов и многое другое.
Одним из самых распространенных применений Pyppeteer является создание снимков веб-страниц. Все, что вам нужно сделать, это создать экземпляр браузера, открыть новую страницу, перейти на URL и сделать снимок.
import asyncio
from pyppeteer import launch
async def take_screenshot(url, save_path):
browser = await launch()
page = await browser.newPage()
await page.goto(url)
await page.screenshot({'path': save_path})
await browser.close()
url = '<https://www.example.com>'
save_path = 'example.png'
asyncio.get_event_loop().run_until_complete(take_screenshot(url, save_path))
import asyncio
from pyppeteer import launch
async def test_website(url):
browser = await launch()
page = await browser.newPage()
await page.goto(url)
await page.click('#myButton')
await page.waitForSelector('#myResult')
result = await page.evaluate('document.querySelector("#myResult").innerText')
await browser.close()
return result
url = '<https://www.example.com>'
asyncio.get_event_loop().run_until_complete(test_website(url))
Ссылка на либу — https://pypi.org/project/pyppeteer/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6❤5
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
👍15❤6🔥6
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 и все, а если вы уже что-то знаете, то объяснять не надо)Самые внимательные заметили, что в документации крок Available Methods есть еще Bound Methods (Связанные методы)
Их фишка в том, что это методы сообщений которые мы получаем из хендлера (параметр
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
🔥8❤4👍3
@app.on_message(filters.command(["start"], prefixes="."))
async def start(_, msg):
print(msg)
id, text, from_user, chat reply_to_message(сообщение на которое ответили).➖msg.text
➖msg.chat.id
➖msg.reply_to_message.date
@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👍5🔥1
Функция .upper() в Python используется для преобразования всех символов в строке в верхний регистр. Это очень полезно, когда вы хотите сравнить строки без учета регистра или обеспечить единообразие ввода данных. Пример использования:
text = 'Hello, World!'
print(text.upper()) # Вывод: 'HELLO, WORLD!'
С другой стороны, функция .lower() преобразует все символы строки в нижний регистр. Это также может быть полезно при сравнении строк или обеспечении единообразия ввода. Пример использования:
text = 'Hello, World!'
print(text.lower()) # Вывод: 'hello, world!'
Функции .upper() и .lower() часто используются вместе для обеспечения единообразия ввода и процесса обработки данных. Например, вы можете преобразовать ввод пользователя в нижний регистр перед проверкой его в словаре, где все ключи хранятся в нижнем регистре. Таким образом, вы можете быть уверены, что ваш код будет работать независимо от того, как пользователь ввел данные.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥1
Forwarded from IT memer
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣37😢4❤3👍1😁1