Предыдущая статья:
Что такое идентификаторы
Когда у нас шёл разговор о переменных и функциях, мы говорили об их именах. Имена – это и д е н т и ф и к а т о р ы. А идентификаторы - это имена, присвоенные чему-то для его обозначения.
(Вот такая циклическая ссылочка случилась 😊)
Правильнее, наверное, говорить – п р о г р а м м н ы е идентификаторы. Почему программные? Да чтобы отличать, что идентифицируется программой, а что системой.
Поясню на примере.
Создадим переменную:
>>> a = 5
Здесь «a» – это имя переменной, идентифицирующее её в скрипте.
«5» – это значение переменой, которое, как мы говорили ранее, представляет собой данные, хранящиеся в области памяти машины.
(В ЭВМ все цифровые данные постоянно или временно располагаются на устройствах хранения в адресных ячейках памяти. Как ценности в номерных депозитных ячейках банка.)
Система автоматически присваивает каждой ячейке свой идентификатор («id»).
Давайте узнаем адрес памяти компьютера, по которому хранится значение нашей переменной, с помощью встроенной функции («id()»):
>>> a = 5
>>> print(id(a))
У меня функция вернула номер 140735678645288, но у вас, конечно же, он будет иной – сохраните его.
(Если не забыли, набрать код можно не в терминале, а в редакторе, и запустить его исполнение).
Предположим, далее мы присваиваем идентификатору «а» (имени переменной) другое значение (например, 4):
>>> a = 4
Это не является изменением переменной «a» – мы создаём новую переменную «a»!
>>> a = 4
>>> print(id(a))
Сравните вновь полученный id с предыдущим: система поместила другое значение в другую ячейку с другим номером (системным идентификатором).
Можно представить это и так: существуют тёзки, Иваны. Имя – это их идентификаторы в скрипте, а номера паспортов – идентификаторы в системе, их id.
Как наименовывать
Образование имён переменных и функций, как и прочих идентификаторов, подчинено следующим правилам, напомню:
- первым символом идентификатора должна быть буква алфавита (символ Unicode в верхнем или нижнем регистре *) либо символ подчёркивания («_»);
- остальная часть идентификатора может состоять из букв (символы Unicode в верхнем или нижнем регистре), знаков подчёркивания («_») и/или цифр (0-9);
- имена идентификаторов чувствительны к регистру. Например, «myname», «myName» и «Myname» – это не одно и то же.
* Unicodeвключает в себя, в том числе, и стандарт ASCII.
Таким образом, идентификатор определяется как последовательность из одной или нескольких букв, цифр и знаков подчёркивания, не начинающаяся с цифры.
Хорошим тоном считаются имена латиницей, начинающиеся и состоящие из строчных (lowercase) букв.
По соглашению между программистами на языке Python, прописные (заглавные) буквы применяются в именах, у которых присвоенное им значение не будет изменяться по ходу программы.
Справедливости ради следует заметить, что сама Программа ничего об этом соглашении «не знает» 😊:
При необходимости, для повышения информативности и улучшения читаемости кода, допустимо разделять слова нижним подчёркиванием и / или использовать цифру.
Если в готовом проекте преобладает mixedCase, то писать сто́ит в этом же стиле — чтобы сохранялась обратная совместимость.
Постарайтесь не использовать «l» (строчная «L»), «O» (заглавная «o») и «I» (заглавная «i») — в некоторых шрифтах они неотличимы от нуля и единицы.
Кириллицу хотя и допустимо использовать, лучше избегать идентификаторов на русском языке (как и на транслите) – как знать, какой ещё «интернационал» будет работать с вашей программой? 😊 .
Кроме того, следует стремиться к информативности наименования и лаконичности имён.
Да что я распинаюсь?! Среди Python-разработчиков принят стандарт PEP 8 – это руководство, в котором собраны рекомендации по оформлению кода 😊.
Ключевые (зарезервированные) слова
Python содержит ключевые, зарезервированные для нужд Программы, слова. Это могут быть имена операторов («and», «or», «if»), иные идентификаторы, служащие ключом («True», «break») – т.е. явно подразумевающие определённое, связанное с ними, поведение программы.
В скрипте «key.py» переменным «x» и «y» присвоены, соответственно, значения «Ложь» и «Истина». Затем переменной result присвоено в качестве значения выражение, регулируемое логическим оператором «or» («ИЛИ»), который выполняет проверку элементов выражения и возвращает истину, если хотя бы один из них истинен (дизъюнкция).
Важно помнить, что ключевое слово нельзя использовать в качестве имени переменной (или функции, класса (типа данных) и т. д.). Да и Python не даст. Именно поэтому разработчики языка стараются резервировать как можно меньше ключевых слов, ведь программисту надо помнить их все, чтобы учитывать при написании кода. Вот актуальный на март 2025 года список:
and (и)
as (как)
assert (утверждать, заявить)
async (асинхронный)
await (ожидать, предстоять)
break (прекратить)
class (класс)
continue (продолжать)
def (определить (функцию))
del (удалить)
elif (иначе+если)
else (иначе)
except (кроме, исключая)
False (ложь)
finally (окончательно, в итоге)
for (для)
from (из)
global (глобально)
if (если)
import (импортировать)
in (в)
is (быть, являться)
lambda (лямбда)
None (ничего)
nonlocal (не локально)
not (не)
or (или)
pass (проходить, перейти, передать («пустой» блок команд функции)
raise (приподнять, повысить, увеличить)
return (вернуть)
True (истинна)
try (попытаться)
while (цикл)
with (с)
yield (привести (к), уступить)
Я сопроводил термины лишь общеупотребительным переводом слов. Как «работает» каждое из зарезервированных слов, вам предстоит узнавать самостоятельно. Для примера:
- оператор «pass» используется в Python для обозначения «пустого» блока команд;
- зарезервированное слово «def» объявляет определение функции;
etg.
Замечу, что имена встроенных функций («print», «max», «len» и пр.) не рассматриваются Программой, как зарезервированные. Поэтому, вы можете, конечно, присваивать эти имена своим программным объектам (переменным и др.), но, при их «пересечении» в коде с именем встроенной функции, будете получать либо ошибку, либо непредсказуемый результат.
Ах, чуть не забыл! Старайтесь не использовать имена встроенных функций и зарезервированных слов в качестве имён своих файлов с программами. А если решите назвать файл по имени своей функции, то пусть его имя начинается с Заглавной буквы: «myfunc()» == «Myfunc.py»
Когда дотянем до модулей – поймём. 😊
ПИШИТЕ КАК МОЖНО БОЛЬШЕ КОДА!
Последующая статья: