Заглушки
Для создания пустых функций и классов есть сразу два способа соответствующих правилам PEP: "pass" и "...". Предпочтительнее использовать первый вариант. Он означает буквальным счетом пустоту, даже применить функции dir() или help() не получится. А вот три точки - объект.
Их применение более широкое. Мы видели точки, когда выводили бесконечный список. Но то, был просто вывод, а не наш объект. Ellipsis применяется так же для создания пустых списков. Он показывает, что внутри не что-то одно, а много. На практике его используют лишь в документации и при создании все тех же пустых функций.
На картинке пример программы проверяющий пароль от юзера. Сохранение в БД мы еще не решили как писать, поэтому просто создали заглушку.
Для создания пустых функций и классов есть сразу два способа соответствующих правилам PEP: "pass" и "...". Предпочтительнее использовать первый вариант. Он означает буквальным счетом пустоту, даже применить функции dir() или help() не получится. А вот три точки - объект.
Их применение более широкое. Мы видели точки, когда выводили бесконечный список. Но то, был просто вывод, а не наш объект. Ellipsis применяется так же для создания пустых списков. Он показывает, что внутри не что-то одно, а много. На практике его используют лишь в документации и при создании все тех же пустых функций.
На картинке пример программы проверяющий пароль от юзера. Сохранение в БД мы еще не решили как писать, поэтому просто создали заглушку.
Символы экранирования
При выводе строки иногда появляются различные непонятные нам символы вроде '\n'. Подобные записи всегда начинаются с '\' (обратный слеш), и могут состоять из нескольких символов, но Python считает их за один. Если эту тему изучить, то можно делать интересные вещи в одну строчку, либо красиво оформлять вывод.
Вод пример самых частых символов:
\\ - Сам символ обратного слеша (остается один символ \)
\' - Апостроф (остается один ')
\" - Кавычка (остается один символ ")
\n - Новая строка (перевод строки)
\r - Возврат каретки
\t - Горизонтальная табуляция
Но для тех, кто этого не знает могут возникнуть проблемы. Например, если вы попробуете задать адрес на вашем компьютере. А он состоит из символов '/', вам интерпретатор выдаст ошибку.
Можно, конечно, воспользоваться нашим знанием и написать, экранировав все слеши, но есть более простой способ отменить экранирование - поставить r перед строчкой.
При выводе строки иногда появляются различные непонятные нам символы вроде '\n'. Подобные записи всегда начинаются с '\' (обратный слеш), и могут состоять из нескольких символов, но Python считает их за один. Если эту тему изучить, то можно делать интересные вещи в одну строчку, либо красиво оформлять вывод.
Вод пример самых частых символов:
\\ - Сам символ обратного слеша (остается один символ \)
\' - Апостроф (остается один ')
\" - Кавычка (остается один символ ")
\n - Новая строка (перевод строки)
\r - Возврат каретки
\t - Горизонтальная табуляция
Но для тех, кто этого не знает могут возникнуть проблемы. Например, если вы попробуете задать адрес на вашем компьютере. А он состоит из символов '/', вам интерпретатор выдаст ошибку.
Можно, конечно, воспользоваться нашим знанием и написать, экранировав все слеши, но есть более простой способ отменить экранирование - поставить r перед строчкой.
Проверка версии в python
Сколько раз уже была такая ситуация: даёшь код знакомому, но версии не совпадают. У кого-то новее, у кого-то старше. И чтобы в такую ситуацию не попасть, можно проверить текущую версию языка и отменить запуск в случае чего. Поможет в этом значение version_info, из библиотеки sys.
Хороший способ узнать нужную версию, особенно если на ПК их несколько.
Сколько раз уже была такая ситуация: даёшь код знакомому, но версии не совпадают. У кого-то новее, у кого-то старше. И чтобы в такую ситуацию не попасть, можно проверить текущую версию языка и отменить запуск в случае чего. Поможет в этом значение version_info, из библиотеки sys.
Хороший способ узнать нужную версию, особенно если на ПК их несколько.
Анонимные функции
Часто функции нужны только один раз, причем короткие. И избыточно создавать под них функцию и придумывать ей имя.
Для таких случаев существуют лямбда функции, так выглядит их создание:
Часто функции нужны только один раз, причем короткие. И избыточно создавать под них функцию и придумывать ей имя.
Для таких случаев существуют лямбда функции, так выглядит их создание:
<аргументы>: <выражение>Такие функции обязан знать каждый программист, их применение сильно сокращает код.
Функции высшего порядка
Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее название, запомнить очень просто
Чуть ранее мы говорили про lambda, они очень хорошо взаимодействуют с высшими функциями. Про одну из них мы говорили - map(). Она может принимать в себя лямбду, но это не дает такой большой функциональности.
Еще одна функция-итератор - filter()
Она поможет отфильтровать списки или итераторы. Первым принимает функцию, если она возвращает True, то пропускает элемент, вторым аргументом принимает список или итератор.
Не забывайте комбинировать функции!
Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее название, запомнить очень просто
Чуть ранее мы говорили про lambda, они очень хорошо взаимодействуют с высшими функциями. Про одну из них мы говорили - map(). Она может принимать в себя лямбду, но это не дает такой большой функциональности.
Еще одна функция-итератор - filter()
Она поможет отфильтровать списки или итераторы. Первым принимает функцию, если она возвращает True, то пропускает элемент, вторым аргументом принимает список или итератор.
Не забывайте комбинировать функции!
Принципы программирования. Часть 1
Хорошие программисты пишут и рабочий, и качественный код. Сейчас существуют главные правила написания хорошего кода, им даже придуманы аббревиатуры. Их сейчас и разберем.
KISS
Keep It Stupid Simple - придерживайся простоты. Хороший пример этому - побитовые операции и регулярки. Это не означает, что их нельзя использовать. Но не надо использовать их там, где это не нужно. Чем проще написан код, тем легче его поддерживать вам и вашим коллегам.
DRY
Don’t Repeat Yourself - не повторяйся. Не следует дублировать код. Вместо копирования нужно создать функцию. В будущем это упростит отладку и изменение кода. Особенно в больших программах.
#Принципы_программирования
Хорошие программисты пишут и рабочий, и качественный код. Сейчас существуют главные правила написания хорошего кода, им даже придуманы аббревиатуры. Их сейчас и разберем.
KISS
Keep It Stupid Simple - придерживайся простоты. Хороший пример этому - побитовые операции и регулярки. Это не означает, что их нельзя использовать. Но не надо использовать их там, где это не нужно. Чем проще написан код, тем легче его поддерживать вам и вашим коллегам.
DRY
Don’t Repeat Yourself - не повторяйся. Не следует дублировать код. Вместо копирования нужно создать функцию. В будущем это упростит отладку и изменение кода. Особенно в больших программах.
#Принципы_программирования
Принципы программирования. Часть 2
В прошлом посте мы начали разбирать принятые принципы программирования и их аббревиатуры.
YAGNI
You Aren’t Gonna Need It - тебе это не понадобится. Неправильно создавать места только для будущего расширения кода. Неизвестно точно, какой именно понадобится функционал и возможно код будет мешать новому (речь не идет о заглушках на заказанный функционал).
SLAP
Single Level of Abstraction Principle - принцип единого уровня абстракций. Код должен оставаться поддерживаемым, особенно функции. Если функция не помещается на экран, то ее следует разбить на несколько других функций.
«Функции должны выполнять только одно действие, но выполнять его хорошо» (Роберт Мартин). В частности напоминает принцип DRY, но сильно отличается, код не обязательно должен повторяться. Но должен быть разбит на логические блоки, для большего удобства
#Принципы_программирования
В прошлом посте мы начали разбирать принятые принципы программирования и их аббревиатуры.
YAGNI
You Aren’t Gonna Need It - тебе это не понадобится. Неправильно создавать места только для будущего расширения кода. Неизвестно точно, какой именно понадобится функционал и возможно код будет мешать новому (речь не идет о заглушках на заказанный функционал).
SLAP
Single Level of Abstraction Principle - принцип единого уровня абстракций. Код должен оставаться поддерживаемым, особенно функции. Если функция не помещается на экран, то ее следует разбить на несколько других функций.
«Функции должны выполнять только одно действие, но выполнять его хорошо» (Роберт Мартин). В частности напоминает принцип DRY, но сильно отличается, код не обязательно должен повторяться. Но должен быть разбит на логические блоки, для большего удобства
#Принципы_программирования