Pythoner
Відкрити в Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Показати більше6 620
Підписники
-324 години
-57 днів
-3030 день
Архів дописів
6 621
✈️Метод subclasshook используется для определения, является ли один класс подклассом другого. Он вызывается при проверке
isinstance() и issubclass() для определения отношения наследования между классами.
⬆️Этот метод позволяет настроить поведение этих функций для пользовательских классов.
➡️Пример:
class A:
def __init__(self, value):
self.value = value
class B:
def __init__(self, value):
self.value = value
def __subclasshook__(cls, subclass):
return (hasattr(subclass, 'value') and
callable(subclass.value) and
subclacc.value.__name__ == 'print_value')
class C:
def __init__(self, value):
self.value = value
def print_value(self):
print(self.value)
a = A(5)
b = B(10)
c = C(15)
# Проверка
print(issubclass(C, B)) # True
print(issubclass(A, B)) # False
⬆️В примере метод subclasshook класса B проверяет, есть ли у подкласса метод print_value. Если да, то возвращает True, что позволяет считать его подклассом B.
🐍Pythoner6 621
🔥 Самые нужные каналы для Python разработчика, чтобы расти в доходе 💸
• Python | Вопросы собесов
• Python | LeetCode
• Python | Тесты
• Python | Удалёнка
Подпишись, чтобы не потерять ☝️
6 621
✈️Модуль difflib в Python - это мощный инструмент, который помогает разработчикам сравнивать последовательности. Он особенно полезен для сравнения текстовых данных и нахождения различий между ними.
➡️Функция get_close_matches
Функция get_close_matches() используется для поиска наиболее похожих вариантов в последовательности. Это полезно, например, при реализации системы автодополнения, где нужно предложить пользователю наиболее вероятные варианты на основе его ввода.
➡️Например:
import difflib
words = ['кот', 'собака', 'кит', 'слон']
difflib.get_close_matches('кот', words)
⬆️В этом примере функция возвращает: ['кот', 'кит'].
➡️Функция ndiff
Функция ndiff() используется для сравнения двух последовательностей и выявления различий между ними. Она возвращает генератор, который производит строки, иллюстрирующие различия между последовательностями. Это полезно, например, при сравнении версий текстовых документов.
➡️Например:
import difflib
str1 = "кот"
str2 = "кит"
diff = difflib.ndiff(str1, str2)
print('\\n'.join(diff))
⬆️В этом примере функция выводит:
к - о + и т➡️Функция SequenceMatcher Функция SequenceMatcher() является более общей и мощной функцией, чем ndiff(). Она позволяет сравнивать любые две последовательности и определять степень их сходства. ➡️Например:
import difflib
str1 = "кот"
str2 = "кит"
match = difflib.SequenceMatcher(None, str1, str2)
print(match.ratio())
⬆️В этом примере функция возвращает: 0.6666666666666666, что означает, что строки совпадают на 66.67%.
🐍Pythoner6 621
🐍Разбор
Как вы знаете (или не знаете, тогда знайте) метод .pop удаляет элемент по индексу.
Т.е. если бы мы написали, my_list.pop(1), то элемент JavaScript бы удалился из списка.
Но а что, если мы не прокинули индекс? Тогда выбирается последний элемент. В нашем случае - c#
Но почему ответ - это не список без последнего элемента.
Все дело в том, что мы принтуем не список, а результат выполнения функции .pop. В свою очередь, функция .pop возвращает удаленный элемент (последний элемент) (( C# ))
6 621
+9
Помощь в трудоустройстве в IT-сфере!
В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно!
Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита.
Для этого нужно:
- Перейти по ссылке
- Заполнить анкету и ответить на вопросы (занимает менее 3 минут)
- На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать
Перейти на сайт
#реклама 16+
urban-university.ru
О рекламодателе
6 621
✈️Python имеет встроенный модуль
zipfile, который предоставляет функционал для работы с архивами ZIP. Давайте создадим простой пример, чтобы продемонстрировать его возможности:
import zipfile
# Создаем новый ZIP файл
with zipfile.ZipFile('новый_архив.zip', 'w') as new_zip:
# Добавляем файлы в архив
new_zip.write('file1.txt')
new_zip.write('file2.txt')
# Можно добавить еще файлы по мере необходимости
⬆️Этот небольшой код создает новый ZIP архив под именем новый_архив.zip и помещает в него файлы file1.txt и file2.txt.
➡️Модуль zipfile обладает широкими возможностями, позволяя извлекать файлы, читать содержимое архива, добавлять и удалять файлы, а также многое другое. Это удобный инструмент, который позволяет манипулировать архивами непосредственно из кода Python.Если вам интересно узнать больше о модуле zipfile или экспериментировать с архивами в Python, рекомендую обратиться к официальной документации Python.
🐍Pythoner6 621
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
6 621
✈️Логирование, или журналирование, – это процесс записи событий в системе. Эти события могут включать в себя всё: от информации о том, что программа успешно завершила свою работу, до деталей о возникших ошибках. Логи могут быть сохранены в различных форматах и на различных носителях, включая файлы, базы данных или даже удаленные серверы.
➡️Преимущества логирования
Логирование имеет множество преимуществ. Оно помогает разработчикам отслеживать и исправлять ошибки, анализировать поведение системы и даже предотвращать возможные проблемы в будущем. Кроме того, логи могут быть использованы для аудита, что особенно важно для обеспечения безопасности системы.
➡️Как использовать логирование?
Применять логирование можно разными способами. Во-первых, можно использовать встроенные средства ОС или специализированные инструменты для логирования. Во-вторых, можно внедрять функции логирования непосредственно в свои приложения. В любом случае, важно помнить о необходимости разделять логи по уровням важности и обеспечивать их надлежащее хранение и архивацию.
🐍Pythoner
6 621
✈️EEL (Easy Electron) — это библиотека, которая упрощает создание desktop-приложений с использованием технологий веб-разработки (HTML, CSS и Javascript).
➡️Основные возможности EEL:
💬Позволяет создавать графический интерфейс приложения при помощи веб-технологий.
💬Обеспечивает взаимодействие между Python кодом и Javascript кодом. Python может вызывать JS функции, а JS может вызывать Python.
💬Автоматически обрабатывает асинхронные вызовы между JS и Python.
💬Встроенный локальный веб-сервер для отображения HTML/JS интерфейса.
➡️Пример
import eel
eel.init('web')
@eel.expose
def say_hello(x):
print('Hello %s' % x)
eel.say_hello('World')
eel.start('index.html')
⬆️В этом примере импортируется модуль eel и инициализируется папка с HTML и JS файлами — 'web'.
Декоратор @eel.expose делает функцию say_hello() доступной для вызова из Javascript.
Вызов eel.say_hello() вызывает эту функцию из Python кода.
🐍Pythoner6 621
🔥 6895 ГБ платного контента для программистов выложили в Telegram
Тонны курсов, уроков и видео теперь в открытом доступе:
🖥 Python — 724 ГБ
🖥 Frontend — 981 ГБ
🖥 Backend — 817 ГБ
👩💻 Все языки — 4373 ГБ
Успей подать заявку, пока не удалили
6 621
✈️Plumbum — это библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ.
Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д.
➡️Основные возможности библиотеки:
— Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции.
— Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных,
Plumbum сам сформирует командную строку.
— Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных.
— Проверка кодов возврата и обработка ошибок.
— Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.
➡️Пример
from plumbum import local
ls = local["ls"]
output = ls("-l")
print("Вывод команды 'ls -l':")
print(output)
# Также можно выполнять составные команды
# Например, мы можем использовать команду `grep` для фильтрации вывода
grep = local["grep"]
result = (ls("-l") | grep[".py"])() # Пайпим вывод ls в grep
print("\nВывод файлов с расширением .py:")
print(result)
⬆️Пояснение кода:
💬Мы импортируем local из модуля plumbum.
💬Определяем команду ls с помощью local["ls"].
💬Выполняем команду с аргументом -l, который выводит содержимое текущей директории в длинном формате.
💬Вывод команды сохраняем в переменной output и затем печатаем.
💬Также мы создаем команду grep и используем возможность пайпинга (|) для фильтрации вывода команды ls, чтобы показать только файлы с расширением .py.
🐍Pythoner6 621
✈️difflib особенно полезен для работы с текстами. Содержит функции для создания отчётов в нескольких распространённых форматах, в том числе в HTML.
➡️Класс Differ(), например, выводит различия в отдельных строках, сопровождая их префиксами.
➡️Класс SequenceMatcher() позволяет вычислить сходство между строками. Функция get_opcodes() возвращает список инструкций для приведения первой последовательности к виду второй.
➡️Пример:
import difflib
# Две строки для сравнения
string1 = "Привет, как дела?"
string2 = "Привет, как у тебя дела?"
# Используем SequenceMatcher для получения отличий
d = difflib.Differ()
diff = d.compare(string1.split(), string2.split())
# Вывод различий
print('\n'.join(diff))
⬆️Как это работает:
Мы используем difflib.Differ() для сравнения двух строк, разбивая их на слова.Метод compare возвращает итератор, который показывает различия между строками.
- Результат отображает изменения с символами:
- – если слова одинаковые,
- - – если слово присутствует только в первой строке,
- + – если слово присутствует только во второй строке.
Таким образом, difflib полезен в ситуациях, когда нужно определить не только факт различия между двумя последовательностями, но и конкретные места, где эти различия возникают.
🐍Pythoner6 621
😱 Сейчас в Иннотехе скандал из-за канала этого парня!
Парень без опыта работы накрутил себе стаж в резюме и прошёл собеседование на 300+
Забавно, что он делится опытом и устраивает людей на 150 000+ за 2 месяца в IT с гарантией по договору!
Без опыта и образования!
👉 Также в канале 👈
🚀 Как быстро найти первую работу в IT за 3 шага
🙋♂️ Что спрашивают на каждом собеседовании
🎁 Скандальный ГАЙД «Как накрутить опыт и не спалиться»
6 621
➡️Что такое importlib?
Это встроенная библиотека Python, которая предоставляет интерфейс для механизма импорта. С ее помощью вы можете программно импортировать модули, перезагружать их и даже создавать свои собственные импортеры!
➡️Вот простой пример использования importlib:
import importlib
# Динамический импорт модуля
math = importlib.import_module('math')
# Использование импортированного модуля
print(math.pi) # Выводит 3.141592653589793
# Перезагрузка модуля
importlib.reload(math)
➡️С importlib вы можете:
• Динамически импортировать модули
• Перезагружать модули во время выполнения
• Создавать пользовательские импортеры
• Работать с пространствами имен пакетов
🔎Эта библиотека особенно полезна при разработке плагинов, создании расширяемых приложений или отладке кода.
⛓Документация
🐍Pythoner6 621
🐍 824 ГБ платного контента для Python-разработчиков выложили бесплатно в Telegram
Выбирай нужное и обучайся:
62 ГБ — Всё про язык Python
98 ГБ — Django, Flask, FastApi и т.д.
71 ГБ — ИИ и Машинное обучение
33 ГБ — Аналитика данных
62 ГБ — Разработка приложений
47 ГБ — Тестирование ПО
51 ГБ — Автоматизация процессов
17 ГБ — Разработка ботов
31 ГБ — Разработка игр
14 ГБ — Пентестинг
22 ГБ — Парсинг веб-сайтов
37 ГБ — Создание облачных сервисов
279 ГБ — Многое другое...
🔒 Успей подписаться, пока не удалили
