Разъяснивший Python
8.23K subscribers
2.4K photos
40 videos
30 files
2.25K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Roadmap по Python

Это дорожная карта, составленная более опытными разработчиками, чтобы новички знали с чего начать свой путь и куда двигаться дальше.
👍67💩7👏2😱2
Фокус с type

Все мы знаем, что type позволяет определять тип данных (строка это или, может, список). Но у него есть другая функция — создание типа.

Таким образом мы можем во время выполнения создать новый класс и пользоваться им.

#теория
👍53🥱1👾1
isdecimal() vs isdigit() vs isnumeric()

Эти три метода str используются для определения, является ли строка числом, но у них есть небольшие отличия:

str.isdecimal() — проверяет, является ли строка только набором цифр (1-9). В то время как:

· str.isdigit() вернёт True, даже если в строке есть надстрочные и подстрочные цифры (² или u00B2).

· str.isnumeric() вернёт True, даже если это дробь (½ или u00BD).

#объяснение
👍46
Правила документации

class Post:
"""На первой строке краткое описание объекта. После идёт пустая строка (это обязательно).

После идёт подробное объяснение. Кто он,
что он делает и какие параметры принимает.
Документировать можно в несколько абзацев.
Писать доки можно для всего: функции, класса, модуля.
Но если вы мне не доверяете, можете почитать PEP257,
там разработчики рассказывают, как объяснять код.
"""

#теория
👍131
Замыкание

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

Но с этой штукой надо быть осторожнее, она довольно прожорливая. Если в этой ситуации можно обойтись без замыкания, то лучше её не использовать.

#теория
👍12
Немного фактов про Python

Во первых, это не змея. Название пошло в честь «Монти Пайтона» (Monty Python) — ведущего из любимого шоу разработчика «Летающий цирк Монти Пайтона».

Думаете, Python — молодой, современный язык? Но нет, он старше даже Java. Версия Python 1.0 вышла в январе 1994 года. То есть языку сейчас 28 лет.

#факты
👍12👏1
Функция iter

iter(object) возвращает итератор объекта. Но это если в ней только один аргумент, а может быть и два...

В таком случае функция принимает iter(function, end) и выполняет функцию, пока она не вернёт end.

#теория
👍101
Несколько фишек Python

1. Мы можем передать кортеж функции isinstance, тогда она будет проверять, относится ли x к одному из этих типов.

2. round может округлять в обратную сторону. То есть не только до дестых, но и до десяток.

3. В один except можно записывать несколько ошибок на обработку.

#теория
👍25
🔥 Массивы

И нет, я не ошибся. В python действительно есть массивы и находятся они в модуле array. Они меньше занимают памяти, чем списки, но у них есть свои ограничения.

Про массивы, как ими пользоваться и их отличия от списков рассказывается в ролике.

Перейти к просмотру | #видео
3👍3
0x6e 0x75 0x6d 0x65 0x72 0x61 0x6c 0x20 0x73 0x79 0x73 0x74 0x65 0x6d

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

0x для шестнадцатеричной, 0o для восьмеричной и 0b для двоичной системы счисления.

#объяснение
👍30🔥53
Перейдём к основам-основам

В Python есть два типа типов: изменяемые (list, set, dict) и неизменяемые (bool, int, float, complex, tuple, str, frozenset).

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

#теория
👍30👎2
🔥 Типизированный Python

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

Смотреть | #видео
👍101
Готовы к взрыву мозга?

Когда вызывается id(Ok()), создаётся экземпляр класса, функция получает адрес в памяти и выкидывает объект (то есть удаляет его).

Во второй раз происходит то же самое, но на месте, где только что был предыдущий объект появляется новый, точно такой же. И в итоге мы получаем один и тот же адрес.

#объяснение
🤯42👍31🤔9👎3
Топ репозитории на GitHub

python-guide — для тех, кто хочет расти дальше. Тут и про virtualenv, и про организацию проекта, и про библиотеки.

TheAlgorithms — алгоритмы и структуры данных. Тут их так много, что легче перечислить, чего не хватает. Тут, кстати, весь список.

python-patterns — шаблоны проектирования на Python. Всё выполнено на реальных примерах, а не вот эти вот ConcreteFactory и т.д.

#сайты
👍53👎1
Loguru

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

А вообще все фишки можно найти в документации. В любом случае модуль лучше и интереснее встроенного logging, но его надо скачивать.

#модуль
👍12
Про десятичные числа

В Python3 к цифрам относится всё, что можно считать цифрами, поэтому код с теста не выдал ошибки.

Это, например, '٠' (арабская ноль). Зачем их добавили? На эту тему есть интересная история, связанная с интернетом.

#объяснение
👍26😁1😐1
Почему так на***?

reversed(x) позволяет пройтись по объекту в обратном порядке. То есть в нашем случае — 3, 2, 1. Но это итератор, а значит пройтись по нему можно только 1 раз.

Если попробовать получить значения ещё раз, то генератор просто ничего не вернёт. Вызывается sorted([3, 2, 1]) == sorted([]) и, понятное дело, мы получаем False.

#объяснение
👍56🤨22🔥3👎21
🔥 Боевой проект на Python

Теория это, конечно, хорошо, но без практики она бесполезна. Это плейлист, в по ходу которого вы создадите своё веб-приложение (Django) для автоматизации процессов.

Вам предстоит получше изучить Python с Django и разобраться в архитектуре проекта.

Смотреть | #видео
👍7🔥1