⚡️ Учим Python с GitHub
python-guide — проект-документация по языку, от новичка до профи. Качать его не обязательно, ведь есть и веб версия.
TheAlgorithms — репозиторий с огромным количеством реализованных алгоритмов, структур данных
python-patterns — набор шаблонов проектирования, написанных на Python. Здесь нет ConcreteObserver2 и подобного, все шаблоны разобраны на реальных примерах.
#миниурок
python-guide — проект-документация по языку, от новичка до профи. Качать его не обязательно, ведь есть и веб версия.
TheAlgorithms — репозиторий с огромным количеством реализованных алгоритмов, структур данных
python-patterns — набор шаблонов проектирования, написанных на Python. Здесь нет ConcreteObserver2 и подобного, все шаблоны разобраны на реальных примерах.
#миниурок
⚡️ Перечисления в Python
Это набор значений, который заменяет непонятные числа на имена. Создаются они с помощью модуля enum.
Мы можем унаследоваться от Enum для создания констант. А можем от IntEnum, тогда у констант будут свойства int.
Функция
#миниурок #enum
Это набор значений, который заменяет непонятные числа на имена. Создаются они с помощью модуля enum.
Мы можем унаследоваться от Enum для создания констант. А можем от IntEnum, тогда у констант будут свойства int.
Функция
auto()
автоматически подставляет следующее значение константе, а @unique
проверяет, чтобы значения не повторялись. Подробнее.#миниурок #enum
⚡️ Тесты в документации
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
#миниурок #doctest
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
python -m doctest -v example.py
.#миниурок #doctest
Что выведет этот код?
Anonymous Quiz
14%
True
8%
False
26%
[1, 2, 3]
17%
[2, 3]
22%
Ошибку
13%
Узнать ответ
⚡️ Только ключевые и только позиционные аргументы
Позиционные аргументы — параметры, которые передаются в определённом порядке. Ключевые аргументы — те, что получают значения через ключ, то есть
Все аргументы, которые будут до косой линии (/) будут считаться только позиционными. То есть в них нельзя будет передать значение по ключу.
Все аргументы, которые будут после звёздочки (*) будут считаться только ключевыми. Вы можете задать им значение только с помощью
Больше информации и примеров в документации.
#теория
Позиционные аргументы — параметры, которые передаются в определённом порядке. Ключевые аргументы — те, что получают значения через ключ, то есть
key=value
.Все аргументы, которые будут до косой линии (/) будут считаться только позиционными. То есть в них нельзя будет передать значение по ключу.
Все аргументы, которые будут после звёздочки (*) будут считаться только ключевыми. Вы можете задать им значение только с помощью
key=value
.Больше информации и примеров в документации.
#теория
⚡️ Геттеры и сеттеры
В ООП языка (C#, Java) распространены свойства, которые вызываются функцию для получения значения какой-либо переменной.
При получении значения вызывается функция с
Также очень важно, чтобы методы и свойства имели одно и то же имя. Подробнее в документации.
#теория
В ООП языка (C#, Java) распространены свойства, которые вызываются функцию для получения значения какой-либо переменной.
При получении значения вызывается функция с
@property
. А для установки значения используется функция с @имя_свойства.setter
.Также очень важно, чтобы методы и свойства имели одно и то же имя. Подробнее в документации.
#теория
⚡️ Немного про словари
Это коллекция, которая хранит данные в формате ключ-значение. У неё есть несколько интересных фишек:
#теория
Это коллекция, которая хранит данные в формате ключ-значение. У неё есть несколько интересных фишек:
d | other
— Объединяет два словаря в один новый. Добавили с версии Python 3.9.setdefault(key, default=None)
— Возвращает значение, если ключ есть в словаре. Иначе вставляет default на место ключа и возвращает его.dict.fromkeys(iterable, value=None)
— создаёт словарь с ключами из iterable и заполняет их значениями value.#теория
Что выведет код выше?
Anonymous Quiz
54%
score: 5 points
9%
score: a points
36%
Ошибку
2%
Узнать ответ
⚡️ Что такое
Теперь поговорим про
#теория
__name__
Эта переменная хранит название модуля, который импортируется. А если это прямой запуск (python3 foo.py
), то его значение будет __main__
. Теперь поговорим про
__name__ == "__main__"
. При импорте модуля весь код выполняется. Чтобы избежать странного поведения (см. пример), стоит делать проверку.#теория