Рассмотрим следующие два выражения:
print("Hello world!")
x = 5
Что такое ''Hello world!'' и ''5''? Это литералы.
Литерал (также известный как литеральная константа) - это фиксированное значение, которое было вставлено непосредственно в исходный код. Например, число, строка, логическое значение, или None.
Литералы и переменные имеют значение (и тип). В отличие от переменной, значение литерала фиксировано (5
всегда равно 5
).
Поэтому литералы называют константами. Чтобы еще больше подчеркнуть разницу между литералами и переменными, давайте рассмотрим эту короткую программу:
print(5) # вывести значение литерала
x = 5
print(x) # вывести значение переменной
Как это работает:
-
print(5)
:
- В этой строке кода
5
является числовым литералом.
- Когда код запускается, значение литерала
5
передается функции print
, которая выводит его на экран.
-
x = 5
:
- В этой строке кода
5
также является числовым литералом.
- Литерал
5
присваивается переменной x
.
-
print(x)
:
- Здесь мы выводим значение переменной
x
, а не непосредственно литерал.
- При выполнении этой строки кода транслятор Python найдет значение, которое было присвоено переменной
x
(равное 5
) и выведет это значение на экран.
Таким образом, оба оператора вывода делают одно и то же действие (печатают значение 5
). Но в случае литерала значение 5
может быть выведено напрямую. В случае переменной значение 5
должно быть извлечено из памяти, которую представляет переменная.
Это также объясняет, почему литерал постоянен, а переменная может быть изменена. Значение литерала помещается непосредственно в исполняемый файл, и сам файл не может быть изменен после его создания. Значение переменной помещается в память, и значение в памяти может быть изменено во время работы исполняемого файла.
Ключевые понятия
Литералы - это значения, которые вставляются непосредственно в исходный код. Эти значения обычно появляются непосредственно в исполняемом коде (если они не оптимизированы).
Объекты и переменные представляют собой ячейки памяти, в которых хранятся значения. Эти значения могут быть получены по запросу.