Разъяснивший Python
Open in Telegram
Твой проводник в омут Python'а Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/python_pssss
Show more7 156
Subscribers
-224 hours
-187 days
-6030 days
Posts Archive
7 156
Дзен Python
Предыстория: Тим Петерс решил составить правила для написания хорошего кода и назвал его «Дзен Python». Правил должно быть 20, но одного не хватает.
Тим предложил заполнить пробел создателю Python, но он этого так и не делал. Возможно, автор хотел сказать, что в любом правиле есть исключения.
Прочитать его можно выполнив
import this. Кстати, если посмотреть код модуля, то можно заметить нарушение чуть ли не всех правил :)
#теория7 156
Как я стал айтишником, не умея писать код
1. Забил на курсы и онлайн-школы. Они не работают.
2. Подписался на IT Helper.
3. Через неделю написал свой первый сайт.
С чего начать кодить, какие сайты/приложения писать на старте, по каким урокам учиться – ребята запихнули всю теорию в реальные примеры и объяснили всё пошагово.
Самая востребованная профессия 21 века ждёт тебя по ссылке: @it_helper
7 156
Подробнее разбираем type hints
Да, аннотацию типов ещё называют type hints. В модуле typing можно найти кучу полезных полезных объектов для работы с подсказками.
Самые часто используемые: коллекции (List, Dict, Tuple), Any, Union, Optional. Когда мы их используем, мы в квадратных скобках передаём тип, с которым работает объект.
#теория
7 156
Новые каналы от Senior разработчиков
Хотите быстро выучить SQL, Data Science, C#, мобильную разработку или английский? Подписывайтесь на каналы от опытных разработчиков, где они объясняют код, учат программировать и разбирают вопросы с собеседований.
📈 Канал Senior SQL разработчика:
@seniorsql
🖥 Канал C# разработчика:
@seniorcsh
🤖 Канал Data Scientist'а:
@seniords
📱 Канал мобильного разработчика:
@seniormob
🇬🇧 Английский для программиста:
@eng4dev
7 156
Аннотация типов
Намучались с динамической типизацией? Что ж, у этого есть решение — аннотация типов.
Она никак не влияет на программу, а только говорит программисту и IDE какой тип должен быть на месте этой переменной.
При грамотном использовании вы сможете избежать множество проблем, ведь IDE вам подскажет, что здесь должен быть MySuperObject, а не None.
#теория
7 156
Форматирование строк
У меня у одного течёт кровь из глаз когда я вижу как в строку добавляют данные используя +, хотя уже давно существуют f-строки?
f-строки позволяют быстро вставить какую-то информацию в строку и отформатировать её как-то (округлить до сотых, перевести в биты, заполнить нулями).
Расписать тут всё, что можно творить с данными нереально, поскольку возможностей очень много. Если интересно, можете почитать в документации.
#теория
7 156
Взломы - сложно?
Все, что тебе нужно для того, чтобы заполучить доступ к чужим аккаунтам - подробная пошаговая инструкция от профессиональных хакеров. Но где ее взять?
Действительно, такая информация стоит ни одну 1000$ и не доступна обывателям. Не будь жертвой. Становись охотником!
Ведь сегодня у тебя есть возможность получить всё БЕСПЛАТНО:
- Книги по информационной безопасности.
- Бесплатные SMS на любой номер.
- Отключаем людей от нашего Wi-Fi.
- Звоним без сим-карты.
- Инструменты сетевой разведки.
Подписывайся на HackSpace прямо сейчас, пока Telegram не заблокировал ссылку.
7 156
Префиксы строк
r'raw str' — строка останется в точно таком же виде, как и была введена. Они обрабатывают обратную косую строку как обычный символ.
b'bytes literal' — переводит строку в набор байтов. Там могут быть только символы из ASCII (англ. алфавит, цифры, \n, \t, \r, !*[]<=> и остальные символы).
f'formated {string}' — форматирует строку на основе правил, описанных тут.
u'unicode' — используются для решения проблем с двумя кодовыми базами в Python3 и Python2.
Документация
#объяснение7 156
Наконец-то! Python официально создал канал в Telegram.
Just Python - тут востребованный язык программирования сможет выучить абсолютно каждый совершенно бесплатно! Краткие гайды в картинках, основы языка, полезные советы и многое другое
Не упусти возможность вступить в сообщество Python: @just_pyth
7 156
⚡️ Алгоритм DFS
Depth-first search используется для рекурсивного обхода графа. Чаще всего он используется для поиска элементов, для поиска мостов графов или для преобразования дерева в строку.
Как он работает? Мы берём любую вершину и проходимся по её соседям до того, пока у нашей вершины не останется связей. У каждого соседа мы вызываем эту же функцию и проделываем ту же операцию.
Главное не забыть записать вершину в посещённые, чтобы избежать циклического прохода по одним и тем же элементам графа.
Но вот рекурсия вызывает много проблем. Из-за переполнения стека мы не можем работать с большими графами.
#алгоритмы #графы
7 156
__str__ vs __repr__
Эти методы используются для перевода класса в строку, но в чём между ними разница?
__str__ — используется функциями print() и format() для красивого вывода информации об объекте.
__repr__ — Часто используется при отладке, поэтому возвращает информативное представление об объекте.
Если метод __str__ не определён, то используется __repr__.
P.S. Это не обязательно, но часто встречается, что с помощью строки от __repr__ можно получить новый объект с теми же данными, если запихнуть её в eval(str). Так, например, сделано в datetime.
#объяснение7 156
Оператор with
Был придуман, чтобы заменить огромные try/except/finally при работе с файлами/соединениями на более простую конструкцию.
Он самостоятельно выполняет обязательные функции по завершению работы с классом после выполнения всех действий. Об этом в PEP 343.
Оператор использует
__enter__ в самом начале, например, для открытия файла. После выполнения всех операций (или если возникла ошибка), используется __exit__.
#теория7 156
Компуктерная теперь в Telegram!
Даже для опытного пользователя компьютер, как океан - изучен менее чем на 7%
Например, знаете ли вы, что есть программы, которые могут ускорить ваш ПК на 90%?
А умеете ли вы прятать файлы в картинку и делать "невидимые ярлыки"?
Тысячи крутых фишек вы можете найти по ссылке 👇
https://t.me/+tRXQ3jj23gM5Y2Uy
7 156
Цепочка операторов
Синтаксический сахар для упрощения проверок. Работает со всеми операторами сравнения (<, ==, >, ...), is и in. Цепь может состоять из любого количества операторов.
Хочу заметить, что цепь не создаёт никаких связей, так что вы вполне можете написать так:
x < y > z. Если увидите это на проде, пишите git blame и ищите, кому бить морду.
#теория7 156
Как определить истинный этот объект или нет?
Многие знают, что в Python всё можно перевести в bool. Пустые последовательности и коллекции ('', [], (), {}, range(0)), None и 0 возвращают False. Остальное — True.
Но как это просчитывается? Вызывается
__bool__() метод, который возвращает True/False. Если его нет, используется __len__(). Если метод вернёт 0, то результат будет False.
Если ни одна из функций не определена, то объекты считаются True.
#объяснение7 156
⚡️ Оператор моржа
Его добавили в Python 3.8. Он решает две задачи: присвоение значение переменной и возврат этого значения.
Другими словами, он позволяет нам присваивать значение переменной и возвращать его в одном и том же выражении.
Таким образом код становится короче и более читаемым, а повторное использование переменной в разы проще.
Записывается так:
var_name := expression, где := — оператор. Подробнее можно почитать в PEP 572.
P.S. А назвали его моржом, потому что := действительно похоже на глаза и бивни моржа, лежащего на боку.
#теория7 156
for...else
Если вы думали, что else есть только у if, то вынужден вас огорчить. Оно встречается и у try, и у for.
Блок else выполняется если цикл завершился нормально, то есть не был остановлен с помощью оператора break.
Хочу заметить, что continue никак не влияют на блок else, только оператор break имеет значение.
К слову, на эту тему у нас был тест.
Документация
#теория
7 156
Строки на несколько строк
Бывают ситуации, когда строку лучше разделить, чтобы она легче читалась, но при этом сохранить её содержимое в полном порядке. В таком случае у нас есть три варианта:
· Использовать косую черту (/). Тогда мы переносим выражение на новую строку и ни о чем не заботимся.
· Использовать скобки. Смотрите лучше пример. Никаких + использовать не надо, строки сами объединяться.
· Использовать тройные кавычки. Внутри тройных кавычек все останется именно таким, как оно есть.
#теория
7 156
Кстати, про functools
Это модуль с полезными функциями... для работы с функциями. Например:
@cache — простой легкий неограниченный кеш функций. Если функция долго вычисляется, то вы можете сохранить сохранить результат в памяти, чтобы потом его не считать, а брать оттуда.
partial(func, *args, **keywords) — возвращает вызываемый объект, который вызывает полученную функция с переданными при создании аргументами и во время вызова.
Но и это ещё не всё, в модуле много фишек, которые можно узнать из документации.
#теория
Available now! Telegram Research 2025 — the year's key insights 
