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

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

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

Канал сотрудничает с рекламным сервисом @Tgpodbor_official
Download Telegram
Библиотека 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 хорошие тому примеры.

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

Обычно мы пишем синхронный код - выполняется по порядку один за другим. Но иногда требуется, чтобы выполнялось несколько задач одновременно. К примеру, пока копируются файлы можно было поиграть в игру. Это возможно благодаря нескольким ядрам и потокам. ВАЖНО! Асинхронность не обязательно делает код быстрее, но может повысить его эффективность. В момент простаивания процессор будет переключаться на другие задачи.

На картинке программа, где повар готовит сразу несколько блюд. По другому бы нам пришлось по-очереди готовить каждое блюдо, но мы можем вернуться к другим, если поставили блюдо на огонь.
Хотите связать свою карьеру с нейросетями? Тогда без курса "Deep learning. Basic" не обойтись!

📍Пройдите тестирование, чтобы:
● оценить свои навыки
● занять место на курсе по специальной цене
● получить доступ к демо-урокам курса

👉🏻Пройти тестирование: https://otus.pw/HB0C/
Принципы программирования. Часть 4

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

LSP
Liskov Substitution Principle - принцип подстановки. Назван в честь своего автора Барбары Лискова. Касается объектно-ориентированного подхода, наследуемый объект должен не заменять базовый, а дополнять его. Звучит логично, ведь если мы сделаем, чтобы машина летала, то это уже больше самолет. И соответственно проще взять базовый объект самолета, но новички часто не знают как правильно применить данное правило

ISP
Interface Segregation Principle - принцип разделения интерфейса. Как следует из перевода касается интерфейсов. Python это затрагивает не так сильно из-за его утиной типизации и простого написания аннотаций. Тем не менее, знание этого принципа в любом случае способствует улучшению кода. Правильная организация кода способствует большему расширению и оптимизации, правило больше об оформлении, чем об работе с самим интерфейсом

#Принципы_программирования
Библиотека JmesPath

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

Но вот нам надо получить данные из файла. А формат json, как правило имеет множество вложений. Искать что-то нужное можно, но не всегда это удобно и красиво (а дзен Python говорит, что красота имеет значение)

JmesPath облегчает работу в несколько раз. Вместо file['a']['b']['c'] можно написать jmespath.search('a.b.c', file). Кажется стало длиннее, но это потому что мы взяли мало элементов, и согласитесь a.b.c выглядит лучше. Даже отредактировать в случае чего будет проще.

Еще больше возможностей можно узнать в документации (да, её стоит читать).
Хочешь углубить знания в Python-разработке и увереннее пользоваться своими навыками? Пройди бесплатный интенсив по программированию 19–21 апреля в 21:00 по московскому времени!

Успей на бесплатную регистрацию: ▶️ https://clc.am/m6wd4w

💡 Изучишь основы Python и начнёшь разбираться в разных типах данных, структурах, функциях и ООП.
💡 Разработаешь сервер для прослушивания подключений.
💡 Поработаешь с библиотеками PyQT, Kivy, wxWidgets, Tkinter.
💡 На практических занятиях создашь программу для обмена быстрыми сообщениями.

☝️ 3 дня тебя будет обучать специалист с семилетним опытом в разработке на Python — Никита Левашов. Он поделится практическими советами, рекомендациями и ответит на все вопросы!

⭐️🎁 Сдай домашнее задание и получи сертификат на 15 000 рублей на любой курс от Skillbox.
Библиотека schedule

Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.

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

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

 install schedule

В примере используется seconds, но можно использовать minutes, hour, day.at("8:00"), monday, minute.at(":17"). Если добавлять at, то указываем во сколько именно произойдет событие. Подробнее в документации.
Совет на всю жизнь: научитесь инвестировать. Если бы вы вложились Apple, Tesla или биткоин несколько лет назад, то сейчас стали бы миллионерами.

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

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

В общем, подписывайтесь и изучайте, потом сами себе спасибо скажете: @investorbiz
Немного практики

Часто требуется удалить ненужные файлы. Вот пример программы, которая за вас определит размер каждой папки в каталоге и выведет название и размер в порядке возрастания. Для этого будем использовать только модуль os (про него уже рассказывали) и стандартные функции.


Ссылка на код
Библиотека Flask

Помните мы говорили о декораторах? Flask реализован на них. На нем можно писать простые сайты и мощные сервисы. Единственный минус - отсутствие асинхронности, конечно, при желании можно добиться и ее, но встроенной, к сожалению, нет.

Как уже сказано, Flask очень обширная тема, рассказ об этом может занять несколько книг, поэтому если вам интересно веб программирование, то погружайтесь с головой.

С помощью декоратора app.route указываем за какой адрес страницы отвечает функция. То, что мы вернем через return будет показано пользователю. И да, внутри функции можно делать все, что угодно.