1. Распаковка кортежа + Распаковка кортежа с *
Мы можем использовать распаковку кортежей для одновременного назначения нескольких переменных.
Мы можем добавить *
перед переменными, чтобы распаковать все остальное в эту переменную.
2. Генератор списка + понимание генератора словарей/множеств
С генератором списка мы можем создать собственный список в одной строке кода.
Генератор множества и генератор словаря можно использовать для создания множеств и словарей так же, как мы создаем списки, используя генератор списков.
3. Тернарный оператор
Обычный блок if-elif-else
.
Мы можем сжать блок if-elif-else
в ОДНУ строку, используя тернарный оператор.
4. Магические методы в классах Python
__ init __
, __str__
и __ gt __
являются магическими методами, которые позволяют нам работать по-особенному с нашими объектами Dog
.
Магический метод __str__
определяет, что возвращается, когда мы вызываем str(dog)
, который вызывается, когда мы печатаем объекты Dog
.
Магический метод __ gt __
определяет, что происходит, когда мы сравниваем двух собак с помощью оператора >
.
5. * *args и **kwargs
*args
позволяют нашим функциям принимать любое количество позиционных аргументов (которые будут храниться в кортеже args
).
**kwargs
позволяют нашим функциям принимать любое количество аргументов ключевого слова (которые будут храниться в словаре kwargs
).
6. Работа с несколькими .py файлами
Когда вы получите работу инженера-программиста, вы будете работать над проектами со множеством разных файлов. Обязательно заранее ознакомьтесь с тем, как импортировать функции из других файлов.
7. if __name__ == ‘__main__’
Строка if __name__ == '__main__'
оценивается как True
в файле .py
, только если мы запустим файл .py
файл напрямую. Мы используем эту строку, чтобы случайно не запустить строки кода, которые мы не собираемся запускать.
8. True и False значения
9. break vs continue vs pass
break
полностью останавливает цикл for/while
. Никакой другой итерации не происходит.
continue
пропускает ОДНУ итерацию. Другие итерации все еще происходят позже.
pass
абсолютно ничего не делает.
10. Блоки try, except, finally
Блоки try-except-finally
позволяют нам обрабатывать вещи, когда в нашем коде возникают ошибки и исключения (вместо просто сбоя)
11. Библиотеки построения веб-API Python
Если вы намерены стать инженером-программистом, скорее всего, вам нужно хорошо это знать. Я узнал об этом довольно поздно и хотел бы, чтобы я столкнулся с этим намного раньше в своем путешествии по программированию.
Некоторые простые в освоении библиотеки на Python:
- Python FastAPI – это позволяет нам очень легко создавать API.
- Python Flask – мы также можем создавать API с помощью Flask и даже простые веб-приложения.
12. Декораторы
Я узнал об этом ОЧЕНЬ поздно на своем пути развития в Python и игнорировал любой синтаксис @decorator
, который я видел. Но лучше понимать, что происходит в вашем коде.
Декораторы – это функции, которые: 1) принимают другую функцию, 2) настраивают работу функции и 3) возвращают другую функцию. Когда мы помещаем @add_exclamation_mark
над функцией greet
, мы фактически декорируем функцию greet
и меняем ее работу.
Что происходит, когда мы вызываем декорированную функцию greet
. Из-за нашего декоратора наша функция greet
ведет себя по-другому, и теперь у нее есть дополнительный !
после возвращаемого значения.
13. Генераторы + ключевое слово «yield»
Ключевое слово yield
похоже на ключевое слово return
. За исключением того, что функция не останавливается полностью после чего-то.
Функция, содержащая ключевое слово yield
, становится функцией-генератором и может иметь несколько выходных данных.
14. Цепочка методов
На самом деле я узнал об этом намного позже, чем должен был.
Некоторый общий код для очистки строки.
Мы можем объединить несколько методов в одну строку, чтобы сэкономить несколько строк кода.
15. Базовое машинное обучение – регрессия и классификация
Прежде чем я узнал (на базовом уровне), как работает машинное обучение, я думал, что это какая-то магия.
После того, как я узнал, как работает машинное обучение (на базовом уровне), я подумал: «О, хорошо, так это своего рода автоматическая статистика с помощью компьютера». Это больше не было волшебной магией.
Машинное обучение – это огромная область, но обычно мы начинаем с обучения с учителем, точнее, с классификации и регрессии. В качестве стартового набора попробуйте scikit-learn
, библиотеку Python, которая выполняет за вас весь код машинного обучения и позволяет вам просто использовать их функции и классы.
16. Основные структуры данных и алгоритмы
Пройдя бесчисленное количество собеседований по программированию для стажировок и штатных должностей, я понял, насколько важен этот шаг. Большинство, если не все собеседования по кодированию, требовали от интервьюируемого достаточной компетентности в этой области.
К сожалению, я провалил довольно много собеседований по программированию в известных компаниях только потому, что недостаточно практиковался, что, вероятно, стоило мне нескольких отличных стажировок.
Если вы собираетесь на собеседование в ближайшее время или сейчас думаете, что сможете пройти собеседование, потому что вы хороши, – не надо. Улучшьте понимание структур данных и алгоритмов. Послушайте того, кто сделал ту же ошибку много лет назад.
Если устраиваешься кодером – ни один собес не пройдет без них. Кстати, у «Библиотеки программиста» как раз есть курс «Алгоритмы и структуры данных», который помогает подготовиться к алгоритмическому собеседованию в крупные IT-компании.
17. Различные структуры данных и когда их использовать
В Python есть несколько встроенных структур данных.
18. Лямбда-функции
В течение долгого времени я видел лямбда-функции, и все было в порядке, я просто игнорировал их. Пока мне не потребовалось некоторое время, чтобы понять их. И узнал, как просто это было на самом деле.
Лямбда-функции – это обычные функции, но написанные с использованием другого синтаксиса. Еще примеры:
19. assert + raise + custom исключения
Ключевое слово assert
позволяет нам провести тест на работоспособность в середине нашего кода. Если оценка > 100, возникает ошибка AssertionError
, и наша программа принудительно завершает работу.
Ключевое слово raise
позволяет нам принудительно вызвать исключение (мы также можем настроить сообщение в исключении)
Мы также можем создавать свои собственные типы Exception
, наследуя от класса Exception
.
20. Многопроцессорность в Python
Встроенный модуль multiprocessing
в Python позволяет нам запускать более одной функции одновременно.
Здесь мой код выполняет три функции одновременно (каждая по одному работнику)
yourfunction(1)
yourfunction(2)
иyourfunction(3)
выполняются одновременно.yourfunction(4)
yourfunction(5)
иyourfunction(6)
также выполняются одновременно.yourfunction(7)
работает сама по себе
Знаете интересные фишки языка Python? Поделитесь ими в комментариях!