Python School
82.2K subscribers
2.42K photos
8 videos
577 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Dribbble теперь в Telegram!

Самое крупное в мире дизайнерское сообщество зарегистрировалось в Телеграм. Теперь каждый день на этом канале будут публиковаться лучшие работы для вдохновления, иногда уроки, фрибишные исходники и инструменты.

Подписывайся: @Dribbble
Модуль zipfile

Как говорилось ранее с zip может работать модуль shutil, но zipfile более многофункционален. С другой стороны он не так универсален и работает только с зипами. За все надо платить, не существует идеального способа для всего.

Для начала надо из zipfile импортировать ZipFile. И открыть файл ZipFile(file).

printdir() - вывод списка содержимого текстом для печати.

namelist() - вывод списка фалов списком.

open() - открыть файл внутри архива, далее работа проходит аналогично работе фалов.

Для практики на картинке показана программа выводящая красивый вложенный список файлов находящихся в архиве.

Больше возможностей можно узнать через help() или документацию.
This media is not supported in your browser
VIEW IN TELEGRAM
На Python можно писать всё, от веб-сайтов до искусственного интеллекта и анализа данных.

PYTHON:TODAY - маст-хэв канал, как для новичка, так и для опытных программистов. Освойте одну из самых топовых профессий в мире и работайте хоть из дома, хоть из Тайланда.

На канале вы найдете видео и текстовые трансляции уроков:

- По созданию ботов
- Приложений на смартфон
- Парсингу сайтов
- Шифрованию
- Пентестингу
- Машинному обучению и big data с нуля

Кладезь интересных проектов в одном месте - @python2day
Модуль requests

В прошлом посте мы рассмотрели json, формат получаемый от сервера, но его как-то надо получить. В этом поможет библиотека requests, она позволяет отправлять запросы GET и POST, работать с ней просто и новичкам будет очень удобно. С помощью библиотеки просто написать парсер или работать с API какого-то сервиса.

response = requests.get(link) - чтобы отправить запрос GET по адресу. Дальше можно получить ответ в формате json, через соответствующий метод json()

Больше информации в документации, а на картинке показан результат работы API Яндекс.Карт совместно с данной библиотекой. Например, напишем программу, которая по городу будет находить область.
Принципы программирования. Часть 3

Продолжаем разбор принципов программирования

SRP
Single Responsibility Principle - принцип единого уровня ответственности. Похож на SLAP, но больше касается ООП. Каждый объект должен выполнять свою функцию. Нужен новый функционал? Значит надо создать новый объект. Очень просто об этом говорить в небольших проектах, но чем сложнее проект, тем труднее его разбить на отдельные и независимые блоки кода.

OCP
Open-Closed Principle - принцип открытости к расширению. Говорит о том, что код должен расширяться без переписывания и изменения старого. На первый взгляд кажется, что конфликтует с YAGNI, но это не так. YAGNI говорит, что нельзя писать код, который не используется сейчас. OCP затрагивает более глубокие архитектурные вещи.

#Принципы_программирования
Сборка exe файлов - pyinstaller

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

Если вы просто скопируете проект, то он не будет работать на других системах где нет установленного Python, а если есть, то возможно там отсутствуют нужные библиотеки. Но можно создать исполняемый файл exe, который запустится и без Python. Необходимо установить pyinstaller:

 install pyinstaller

Затем перейти в командную строку, и перейти в нужную директорию с помощью команды cd. Далее напишем такой код:

 --onefile --noconsole main.py

--onefile - означает, что будет только один исполняемый файл.

--noconsole - консоль не будет запускаться при открытии

main.py - файл, при запуске которого начинает работать ваша программа

В папке dist будет лежать нужный файл, остальные созданные папки можно удалить

Внимание! С помощью данного метода не получится скрыть ваш код, так же вы не получите прироста в скорости работы программы.
Библиотека PIL

Очень хорошая библиотека для работы с изображениями. С её помощью можно много что сделать с картинками в одну строчку: повернуть по градусам, уменьшить количество цветов (и вес, соответственно), обрезать, сделать похожим на рисунок карандашом.

Плюс, с помощью этой библиотеки очень просто перебрать все пиксели и получить их RGB цвет. Библиотека нуждается в установке:

 install pillow

Для примера напишем простую программу объединяющую два изображения в одно. Для этого оба изображения сделаем прозрачными, будем делать в равном отношении чтобы ничто не выделялось (поэтому умножаем на 0.5), коэффициент можно изменить.
all и any

Полезные функции, которые помогут узнать есть ли определенные значения в объекте.

all возвращает True, если все объекты равны True или удовлетворяют условию.

any в свою очередь делает то же самое, но возвращает True, если хотя бы один равен True.

Теперь нет необходимости перебирать списки, достаточно использовать данные функции.
Библиотека colorama

На первый взгляд — бесполезная библиотека, позволяющая окрашивать текст в командной строке. Но она помогает выделять ошибки приложения и информацию для других разработчиков.

Библиотеку надо установить:

 install colorama

Colorama позволяет изменять сам цвет текста, а так же его фон и стиль цвета. На картинке мы не можем показать изменение фона, но вы можете опробовать сами.
Библиотека FuzzyWuzzy

Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.

Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.

Библиотеку следует установить:

 install fuzzywuzzy

Несколько примеров работы библиотеки на картинке.
Библиотека sh

Любой программист должен знать bash - язык для взаимодействия с линуксом. Основы знают все, ведь по-другому не запустить программу на сервере или не установить нужную библиотеку. Данный модуль позволяет использовать bash прямо в Python коде.

Библиотеку требуется установить:

pip install sh

Если вдруг вы забыли как написать что-то на Python, то всегда можете использовать bash.
Чтобы получать больше полезных материалов по ИТ и бизнесу, присоединяйтесь к сообществу @SelectelNews 🦖
Библиотека Numpy

Библиотека облегчающая работу со списками. Работает намного быстрее стандартных методов за счет написания на более быстром С и Фортран. Однако работает не со списками, а с массивами (все объекты одного типа).

При простом вычислении квадратного корня от 0 до 10^6 python затрачивает примерно 0.38 секунды, если вы выберите самый хороший способ - map. Быстро да? При худших способах способах время тоже не сильно упадет еще больше до 0.64 секунды. Но с помощью Numpy можно улучшить первый результат в 10 раз!

Из-за быстроты и огромного потенциала используют в машинном обучении и Big Data, ведь, библиотека обрабатывает данные.
Декораторы

Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.

Многие библиотеки работают с использованием декораторов: Flask и aiogram хорошие тому примеры.

Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.