Python и 1000 уязвимостей
37.7K subscribers
1.85K photos
564 videos
27 files
1.99K links
Сила в единстве.

Сотрудничество: @workhouse_price

Канал на бирже:
https://telega.in/channels/osint_pythons/card

№ 5383975776
РКН: https://clck.ru/3FtTDH
Download Telegram
Media is too big
VIEW IN TELEGRAM
▶️ Словарь и множество (dict, set)

Немного копнем поглубже словари и сеты: как работают под капотом, почему такие быстрые при поиске, какие могут быть грабли и каверзные вопросы на собеседовании.

Самое важное:
dict – словарь, отображение, хеш-мап, ассоциативный массив, коллекция пар ключ-значение, где ключом может быть только hashable тип, доступ по ключу и проверка наличия ключа O(1), с питона 3.7 хранит порядок вставки
пустой словарь создавать лучше через {},а не dict(), под капотом сразу будет создано 8 элементов
set – множество, хешсет, неупорядоченный набор hashable объектов, доступ и проверка наличия O(1)
frozenset – неизменяемый брат множества
Hashable != Immutable, эти понятия часто путают, помните что это не одно и то же.
алгоритм работы словаря и сета: Получаем хеш -} высчитываем позицию в массиве -} если элемента нет то действуем соответственно задаче -} если элемент есть то сравниваем ключ == тому что ищем -} если ключ не равен искомому то ищем дополнительный бакет
По умолчанию самописные классы возвращают хеш основанный на id, если переопределяете хеш, то всегда проверяйте, что у равных объектов одинаковый хеш
Проверка на содержание тоже вызывает ошибку, если элемент не хешируем. Тапл можно положить в сет только если все его элементы хешируемы, frozenset без проблем кладется в сет. Словари и сеты нельзя положить в словари(как ключ) и сеты.
За скорость словаря и сета мы платим большей памятью и тем, что положить туда можно не любые элементы

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍5🔥2
Что выведет код?
Anonymous Quiz
13%
1
41%
2
25%
4
21%
Ошибка
👍17🤯73🔥1🤔1
📣 Создание интерактивных панелей с Streamlit

В небольшом туториале мы расскажем, как за 12 простых шагов подготовить среду и создать интерактивную панель для визуализации данных

Панель мониторинга (dashboards) – это графический пользовательский интерфейс для интерактивного отображения информации, а также визуализации ключевых показателей и тенденций данных. Разработка таких панелей является довольно утомительной задачей

Streamlit – простая библиотека Python с открытым исходным кодом, которая стремительно набирает популярность в области машинного обучения и Data Science.

Она позволяет публиковать веб-приложения в открытом доступе, а также включает встроенный веб-сервер с возможностью развертывания в контейнере docker.

В этом обзоре вы найдете подробную инструкцию о том, как самостоятельно разработать и опубликовать интерактивную панель для визуализации данных

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Media is too big
VIEW IN TELEGRAM
▶️ Знакомство с индексами и срезами строк

Строка, как упорядоченный набор символов.
Индексирование строк, обращение к символам по определенным индексам. Срезы строк – выделение групп символов из строки. Примеры и особенности работы.

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
Что выведет код?
Anonymous Quiz
40%
True
26%
False
10%
None
23%
Ошибку
🤯23🤔65👍2
📣 4 Python библиотеки для интерпретируемого машинного обучения

Хотите добиться лучшего объяснения моделей машинного обучения? Нужна хорошая визуализация? Используйте эти Python библиотеки.

Yellowbrick – эта Python библиотека и расширение пакета scikit-learn. Предоставляет некоторые полезные и симпатичные визуализации для моделей машинного обучения. Объекты визуализатора, основной интерфейс – оценки scikit-learn, поэтому если привыкли работать с scikit-learn, рабочий процесс покажется знакомым.

ELI5 ещё одна библиотека визуализации, которая пригодится для отладки моделей машинного обучения и объяснения сделанных прогнозов. Работает с самыми распространёнными инструментами машинного обучения на Python, включая scikit-learn, XGBoost и Keras.

LIME – расшифровывается как локальные интерпретируемые, независимые от модели объяснения. Интерпретирует предсказания, сделанные алгоритмами машинного обучения. Lime поддерживает объяснение единичных прогнозов из диапазона классификаторов, а также взаимодействует с scikit-learn «из коробки»

MLxtendэтой библиотеке найдёте массу вспомогательных функций для машинного обучения. Она охватывает классификаторы стекинга и голосования, оценку модели, выделение признаков, а также проектирование и построение графиков. Дополнительно к документации в помощь с Python библиотекой рекомендуем почитать углублённый материал.

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1
Media is too big
VIEW IN TELEGRAM
▶️ Логирование: оставь print позади

Логирование – это фиксация состояния вашего приложения в определенный момент времени. Оно позволяет понимать, что система работает как ожидается (и вообще работает), а также облегчает диагностику проблем

Минусы print:
- нет общего формата (дата)
- не ясно какой модуль в каком месте написал информацию, насколько она важна
- нужно выключать/включать, обязательно забудем удалить
- нельзя гибко настроить куда писать (файл/консоль)

Когда уместен print: в очень простых, маленьких приложениях и скриптах.
Чем больше и сложнее приложение тем важнее использовать специальные инструменты логирования

DIWEC = DEBUG - INFO - WARNING - ERROR - CRITICAL
DEBUG – самая подробная информация, нужна только разработчику и только для отладки, например значения переменных, какие данные получены и т.д.
INFO – информационные сообщения, как подтверждение работы, например запуск сервиса
WARNING – еще не ошибка, но уже надо посмотреть - мало места на диске, мало памяти, много созданных объектов и т.д
ERROR – приложение еще работает и может работать, но что-то пошло не так
CRITICAL – приложение не может работать дальше

logger = getLogger(__name__) – принятый подход для логирования с именем модуля
логеры с именами наследуют настройки от root, но могут быть настроены иначе
logger.debug("Get expression %s", exp) – для обратной совместимости используется старый формат через %

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2
Что выведет код?
Anonymous Quiz
18%
0
20%
1
10%
2
14%
3
38%
Ошибка
🤯20👍6🔥2
📣 Python enumerate: упрощаем циклы с помощью счетчиков

Вместо самостоятельного создания и увеличения переменной, используйте enumerate() для получения одновременно счетчика и значения из итерационной функции.

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131🔥1
Media is too big
VIEW IN TELEGRAM
▶️ Переменные, оператор присваивания, функции type и id

В видео рассмотрим
оператор присваивания, каскадное и множественное присваивание и динамическую типизация.

Также разберем функции type() и id(), как правильно выбирать имена переменных и ограничения на определение имен переменных.

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
Что выведет код?
Anonymous Quiz
5%
12
50%
64
38%
512
7%
Ошибку
🤯32👍20🤔5
📣 Объектно-ориентированные пути файловой системы

pathlib – Этот модуль предлагает классы, представляющие пути файловой системы с семантикой, подходящей для различных операционных систем.

Классы путей делятся между чистыми путями, которые обеспечивают чисто вычислительные операции без ввода-вывода, и конкретными путями, которые наследуют от чистых путей, но также обеспечивают операции ввода-вывода.

Чистые пути полезны в некоторых особых случаях; например:
1. Если вы хотите манипулировать путями Windows на машине Unix (или наоборот). Вы не можете создать экземплярWindowsPathпри запуске на Unix, но вы можете создать экземпляр PureWindowsPath.
2. Вы хотите убедиться, что ваш код манипулирует только путями без фактического доступа к ОС. В этом случае создание экземпляров одного из чистых классов может быть полезным, так как они просто не имеют никаких операций доступа к ОС

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94
Media is too big
VIEW IN TELEGRAM
▶️ Python – полный курс для начинающих с нуля. Без воды

Задачи курса и анонс
О среде разработки Google Colab
Команда print
Переменные, комментарии и аннотации
Арифметические операции
Операции со строками
Массивы и циклы
Условные операторы
Функции Python
HTTP, GET, REST запросы
Парсер на Python и JSON
Сохранение txt файла
Чтение txt файла, string to json

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍164🔥2
Что выведет код?
Anonymous Quiz
30%
0 1
43%
0 1 0 2
9%
None
18%
Ошибку
👍17🤯21
📣 Парсинг сайтов на Python: подробный видеокурс и программный код

В видеокурсе из семи уроков описывается парсинг сайтов с различной структурой при помощи Python третьей версии, библиотек requests и BeautifulSoup

Раскрываются особенности парсинга многостраничных ресурсов, использования прокси с различными User-Agent, сохранения изображений и распознавания простого текста, а также быстрый мультипроцессорный парсинг сайтов

Автор курса не преследует цели создать идеальный парсер, а лишь излагает определенные концепции и иллюстрирует их примерами


Для облегчения вашей работы, мы привели исходные коды программ, набранные нами во время прохождения курса, с некоторыми поправками

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍65