Понятные названия
Названия должны однозначно говорить о том, зачем нужна сущность: переменная, функция или что-то ещё.
Переменные – это сущности, а их названия – это существительные ( user.level ) или их свойства ( user.is_admin ). Название должно ясно ответить на вопрос «Что хранит переменная?».
Функции что-то делают с переменными, значит их названия – глаголы ( download_report , levelup_user ), и они отвечают на вопрос «Что делает функция?». Ответ должен быть полным, исчерпывающим. Например, недопустима ситуация когда def fetch_page(url) делает что-то неожиданное, не предусмотренное названием: выводит в консоль, вызывает exit(‘Случилась ошибка. Все сломалось’) и прочее.
Названия должны быть:
- понятными: понятно говорить о смысле. Не result , а users_online или json_content .
- точными: переменная user_online не подходит для хранения списка пользователей. Такое название вводит в заблуждение и провоцирует на ошибки в коде. Корректный вариант — users_online .
- полными: никаких r для радиуса Земли или i для элемента списка. В первом случае подойдёт earth_radius , а во втором какой-нибудь user или book , в зависимости от того, что в списке. Длинные названия – не проблема, у всех давно есть автокомплит.
- на английском: никаких kniga или polsovatel . Брр.
- грамотными: не поленись открыть переводчик и гугл, чтобы подобрать правильный перевод. Неправильный перевод создаёт ощущение неряшливости, а может и смыслу навредить – тогда о читаемости не может быть и речи.
- уникальными: в Питоне есть встроенные функции, называть переменные их именами нельзя: тогда функция станет недоступна. Среди них есть file, dict, all, str.
Читайте дальше
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.
Правильный выбор имен переменных в Python
Будучи единоличным хозяином своей программы, вы вправе выбирать имена переменным. В прошлой статье я решил назвать переменную name, но с тем же успехом можно было бы ее именовать human, nickname или даже omega12345666: работа программы нисколько не изменилась бы.
Для создания корректных имен переменных надо следовать всего нескольким правилам; о некорректном имени Python вам сообщит, выведя ошибку.
Итак, важнейших правил два:
- имя переменной может состоять только из цифр, букв и знаков подчеркивания;
- имя переменной не может начинаться с цифры.
Вдобавок к этим двум абсолютным законам есть несколько негласных правил, которым следуют все опытные программисты.
Вы тоже, приобретя некоторый опыт, почувствуете разницу между “просто корректными” и “хорошими” именами переменным(приведу пример прямо сейчас: имя omega12345666 – корректное, но очень, очень плохое). Перечислю основное, что надо и нужно запомнить.
Имя должно описывать суть. Следует называть переменные так, чтобы другой программист, взглянув на ваш код, смог толком разобраться, что есть что. Поnэтому, например, score лучше, чем s.
Исключение – кратковременно действующие переменные, которым программисты склонны присваивать короткие имена, например х. Но даже этот случай нельзя считать подлинным исключением, ведь, называя переменную х, программист дает понять, что она временная.
Будьте последовательны. Есть много разных позиций по вопросу о том, как лучше оформлять имена переменных, составленные из нескольких слов. Будет ли лучше, например, написать high_score или highScore?
Я привык пользоваться подчеркиванием.Отнюдь не важно, какой системы вы придерживаетесь, лишь бы вы следовали все время только ей, хотя по стандарту оформления программ правильно использовать для переменных и функций именно подчеркивания.
Уважайте обычай языка. Некоторые правила именования переменных – всего лишь дань традиции. Так, в большинстве языков программирования, в том числе и в Python, имя переменной принято начинать со строчной буквы.
Другая традиция состоит в том, чтобы избегать подчеркиваний в качестве начальных символов в именах переменных (у имен с начальным подчеркиванием в Python особый смысл).
Следите за длиной. Иногда эта рекомендация может вступать в противоречие с первой, требующей от имен переменных описательной силы. В самом деле, разве удобно пользоваться таким, например, именем: persona1_checking_account_bаlance’? Видимо, нет.Чересчур длинные имена переменных проблематичны, в частности, тем, что загромождают код.
А кроме того, чем длиннее имя, тем выше риск сделать в нем опечатку. Советую вам не создавать имена длиннее 15 символов.
Кстати, самодокументирующим называется код, из которого даже без комментариев легко понять, что происходит в программе. «Говорящие» имена переменных – немаловажный шаг на пути к созданию такого кода.
Вот что случится если объявить переменную ошибочно, то есть начать переменную с цифрами:
Какие имена переменных в PYTHON являются правильными * 1 !G2
2 A1B2C
3 41N
4 S2
5 C=a+b
6 _ab
7 X1Y
Составить алгоритм поиска к-значного числа, начинающегося с цифры «с» и такого, что если переставить эту цифру в конец записи числа, то получится числ … о, в В раз большее искомого. К<10, B<10).
Будь ласка зробіть це на С++ коді У одновимірному масиві, що складається з n дійсних елементів, обчислити: 1) суму елементів, розташованих між максим … альним елементом і мінімальним по модулю елементом, 2) добуток модулів елементів масиву, розташованих після другого від`ємного елементу. 3) Стиснути масив, видаливши з нього всі елементи, значення яких не знаходиться в проміжку (значення а, b ввести). Елементи, що звільнилися наприкінці масиву, заповнити нулями.
Какие проблемы решит внедрение ИКТ в процессы высшего образования
Составьте словесный алгоритм действий.Любой
Опишите сетевые топологии по методу геометрической Типы топологии Наименование Описание типа связиПожалуйста помагите !
Переменные#
Переменные в Python не требуют объявления типа переменной (так как Python – язык с динамической типизацией) и являются ссылками на область памяти. Правила именования переменных:
- имя переменной может состоять только из букв, цифр и знака подчёркивания;
- имя не может начинаться с цифры;
- имя не может содержать специальных символов @, $, %.
Пример создания переменных в Python:
In [1]: a = 3 In [2]: b = 'Hello' In [3]: c, d = 9, 'Test' In [4]: print(a,b,c,d) 3 Hello 9 Test
Обратите внимание, что в Python не нужно указывать, что «a» это число, а «b» это строка.
Переменные являются ссылками на область памяти. Это можно продемонстрировать с помощью id(), которая показывает идентификатор объекта:
In [5]: a = b = c = 33 In [6]: id(a) Out[6]: 31671480 In [7]: id(b) Out[7]: 31671480 In [8]: id(c) Out[8]: 31671480
В этом примере видно, что все три имени ссылаются на один и тот же идентификатор, то есть, это один и тот же объект, на который указывают три ссылки – «a», «b» и «c». С числами у Python есть одна особенность, которая может немного сбить с понимания: числа от -5 до 256 заранее созданы и хранятся в массиве (списке). Поэтому при создании числа из этого диапазона фактически создаётся ссылка на число в созданном массиве.
Эта особенность характерна именно для реализации CPython, которая рассматривается в книге
Это можно проверить таким образом:
In [9]: a = 3 In [10]: b = 3 In [11]: id(a) Out[11]: 4400936168 In [12]: id(b) Out[12]: 4400936168 In [13]: id(3) Out[13]: 4400936168
Обратите внимание, что a , b и число 3 имеют одинаковые идентификаторы. Все они являются ссылками на существующее число в списке.
Если сделать то же самое с числом больше 256, идентификаторы у всех будут разные:
In [14]: a = 500 In [15]: b = 500 In [16]: id(a) Out[16]: 140239990503056 In [17]: id(b) Out[17]: 140239990503032 In [18]: id(500) Out[18]: 140239990502960
При этом, если сделать присваивание переменных друг другу, то идентификаторы будут у всех одинаковые (в таком варианте a , b и c ссылаются на один и тот же объект):
In [19]: a = b = c = 500 In [20]: id(a) Out[20]: 140239990503080 In [21]: id(b) Out[21]: 140239990503080 In [22]: id(c) Out[22]: 140239990503080
Имена переменных#
Имена переменных не должны пересекаться с названиями операторов и модулей или же других зарезервированных слов. В Python есть рекомендации по именованию функций, классов и переменных:
- имена переменных обычно пишутся или полностью большими или полностью маленькими буквами (например DB_NAME, db_name);
- имена функций задаются маленькими буквами, с подчёркиваниями между словами (например, get_names);
- имена классов задаются словами с заглавными буквами без пробелов, это так называемый CamelCase (например, CiscoSwitch).
