Друзья, всех приветствую!
Меня зовут Дмитрий и я являюсь инструктором и соавтором курсов Основы Python и Python для Пентестера академии Codeby.
Проверяя домашние задания слушателей, раз от раза я замечаю одни и те же недочёты и ошибки оформления. В этой серии статей мне хочется привести примеры таких ошибок и объяснить, почему тот или иной случай является ошибочным и, конечно, же показать правильные варианты.
Используйте понятные английские слова и их сокращения. Такие слова как answer, result, output дадут больше представления о том, что находится в переменной нежели однобуквенные a, b, c.
Если же слов нужно несколько, отделяйте их друг от друга нижним подчёркиванием: target_url, lines_counter, input_string. Подобный способ записи (совместно с нижним регистром всех букв) называется
Следование этому правилу поможет вам быстрее ориентироваться в написанном коде, а расширение функционала программы и поиск ошибок будет проще и эффективнее. Не стоит и злоупотреблять этим правилом – создавать имена больше 3-4 слов, использовать артикли и предлоги в именах переменных так же считается плохой практикой.
Аналогично обстоит дело и с именами функций/методов. Сразу стоит обратить внимание на тот факт, что функция/метод является объектом, который что что-то делает, выполняет. В русском языке действие описывается глаголом, значит, и в имени функции нужно использовать хотя бы один глагол или причастие. Если функция что-то печатает, пусть она называется printing_output или show_result. Если же в результате вызова этой функции мы получаем какой-то объект, переменной стоит присвоить имя get_data или receive_result. Такое именование даст общее представление о результате, который мы получим после вызова функции и далее в коде мы легко отличим этот объект от локальной переменной, основываясь только на его имени.
Отдельно хочется напомнить, что использовать для именования переменных иные языке кроме английского крайне не рекомендуется!
Представьте, что в какой-то момент вам отправят на доработку подобные творения:
И ведь код этих примеров будет запускаться и даже делать то, что нужно, но вот для их понимания придётся изучать не только python, но и армянский, и грузинский языки соответственно
Второй часто встречающийся недочёт у новичков – не эффективное использование функции
Регулярно слушатели в вызове этой функции пытаются выполнить различные операции, в том числе и конкатенацию строк и отправляют похожие решения:
Мало того, подобный код выглядит довольно сложно, так ещё и может превышать
Наиболее предпочтимым является вариант использования f-строки:
в листинге выше переменная int_res сначала будет приведена к строке и после обе распечатаны.
Но самым простым способом вывести разные типы данных в функции print будет банальное перечисление их через запятую:
Таким образом функция print сама выполнит нужное приведение типов, чтобы корректно отобразить содержимое переменных
Следующая ситуация, вызывающая сложность - это многострочный print.
При необходимости вывести несколько строк на печать, ученики пытаются уместить их в один вызов функции print. Да, с одной стороны это может показаться самым простым способом - мы вызываем один раз вызываем функцию, передавая ей указанные строки, но подобный листинг читается очень и очень плохо. Смотрите сами:
В случае возникновения такой задачи, можно изменить оформление разными способами:
Вариант 1. Использовать дополнительный аргумент функции print – sep. По умолчанию sep – separator – разделитель подставляет пробел вместо запятой между аргументами функции print.Мы же можем его переопредели
Мы смогли не только избавиться от лишней конкатенации, но сделали код аккуратнее.
Как видите, нам не понадобилось использовать дополнительные спецсимволы переноса, а код стал значительно проще.
Для вывода нескольких строк можно каждую убрать в список или кортеж, тогда и печать подобного объекта немного изменится:
В этом примере мы уже используем распаковку аргументов функции print через символ звёздочки, то есть в функцию передаётся не сам кортеж, а его содержимое – строки. Чтобы отделить аргументы друг от друга, мы вместо пробела, используемого по умолчанию, используем перенос.
Как видите, язык Python позволяет решить одну и ту же задачу сразу несколькими способами.
А вот знать эти способы, уметь их применять по месту мы как раз и учим наших слушателей!
Я приглашаю всех интересующихся языком программирования Python, компьютерными технологиями и информационной безопасностью на курсы Академии Кодебай!
В следующих частях я попытаюсь рассказать о примерах использования условий, заменой словарём нескольких условий, продвинутой работе с циклами и многом другом!
Спасибо всем, кто дочитал! Комментарии и замечания приветствуются!
Меня зовут Дмитрий и я являюсь инструктором и соавтором курсов Основы Python и Python для Пентестера академии Codeby.
Проверяя домашние задания слушателей, раз от раза я замечаю одни и те же недочёты и ошибки оформления. В этой серии статей мне хочется привести примеры таких ошибок и объяснить, почему тот или иной случай является ошибочным и, конечно, же показать правильные варианты.
1. Именование переменных
Первое чему учатся наши слушатели – это умению создавать и, главное, именовать переменные. В своих комментариях при проверке ДЗ я пытаюсь донести простую истину: имена переменных позволяют в первую очередь вам лучше и быстрее ориентироваться в коде программы и придумываете вы их для себя. Поверьте мне на слово, однобуквенные имена переменных, такие как a, b или x мало что смогут сказать о содержимом этого объекта. Конечно, когда код программы небольшой и помещается на одном экране, можно быстро найти строку инициализации этой переменной и легко понять какой объект в ней находится. Но, когда подобных переменных будет 3, 5, 10, а листинг не будет помещаться на одном экране, запомнить содержимое всех переменных попросту не получится – отсюда и рождаются досадные баги и ошибки. Внимание человека может одновременно охватывать не так уж много объектов, кому интересно, почитайте про
Ссылка скрыта от гостей
. Поэтому не растрачивайте ваше внимание попусту, оставляйте его для запоминания логики программы. |
Используйте понятные английские слова и их сокращения. Такие слова как answer, result, output дадут больше представления о том, что находится в переменной нежели однобуквенные a, b, c.
Если же слов нужно несколько, отделяйте их друг от друга нижним подчёркиванием: target_url, lines_counter, input_string. Подобный способ записи (совместно с нижним регистром всех букв) называется
Ссылка скрыта от гостей
, в Python принято использовать её для именования локальных переменных, функций, а так же методов классов.Следование этому правилу поможет вам быстрее ориентироваться в написанном коде, а расширение функционала программы и поиск ошибок будет проще и эффективнее. Не стоит и злоупотреблять этим правилом – создавать имена больше 3-4 слов, использовать артикли и предлоги в именах переменных так же считается плохой практикой.
Аналогично обстоит дело и с именами функций/методов. Сразу стоит обратить внимание на тот факт, что функция/метод является объектом, который что что-то делает, выполняет. В русском языке действие описывается глаголом, значит, и в имени функции нужно использовать хотя бы один глагол или причастие. Если функция что-то печатает, пусть она называется printing_output или show_result. Если же в результате вызова этой функции мы получаем какой-то объект, переменной стоит присвоить имя get_data или receive_result. Такое именование даст общее представление о результате, который мы получим после вызова функции и далее в коде мы легко отличим этот объект от локальной переменной, основываясь только на его имени.
Отдельно хочется напомнить, что использовать для именования переменных иные языке кроме английского крайне не рекомендуется!
Представьте, что в какой-то момент вам отправят на доработку подобные творения:
2. Аргументы функции print
Второй часто встречающийся недочёт у новичков – не эффективное использование функции
Ссылка скрыта от гостей
.Регулярно слушатели в вызове этой функции пытаются выполнить различные операции, в том числе и конкатенацию строк и отправляют похожие решения:
Ссылка скрыта от гостей
длину строки кода в Python.Наиболее предпочтимым является вариант использования f-строки:
Но самым простым способом вывести разные типы данных в функции print будет банальное перечисление их через запятую:
2.1. Многострочный print
Следующая ситуация, вызывающая сложность - это многострочный print.
При необходимости вывести несколько строк на печать, ученики пытаются уместить их в один вызов функции print. Да, с одной стороны это может показаться самым простым способом - мы вызываем один раз вызываем функцию, передавая ей указанные строки, но подобный листинг читается очень и очень плохо. Смотрите сами:
В случае возникновения такой задачи, можно изменить оформление разными способами:
Вариант 1. Использовать дополнительный аргумент функции print – sep. По умолчанию sep – separator – разделитель подставляет пробел вместо запятой между аргументами функции print.Мы же можем его переопредели
Вариант 2. Иной подход заключается в создании переменной, с использованием тройных кавычек, в этом случае всё форматирование внутри строки будет сохранено и вывод будет точно таким же, как и представление в переменной:Для вывода нескольких строк можно каждую убрать в список или кортеж, тогда и печать подобного объекта немного изменится:
Как видите, язык Python позволяет решить одну и ту же задачу сразу несколькими способами.
А вот знать эти способы, уметь их применять по месту мы как раз и учим наших слушателей!
Я приглашаю всех интересующихся языком программирования Python, компьютерными технологиями и информационной безопасностью на курсы Академии Кодебай!
В следующих частях я попытаюсь рассказать о примерах использования условий, заменой словарём нескольких условий, продвинутой работе с циклами и многом другом!
Спасибо всем, кто дочитал! Комментарии и замечания приветствуются!