Переменные, константы и литералы в Python
В этом руководстве вы узнаете о переменных, константах, литералах в Python и о том, как и где их использовать.
Переменные
Переменная — это отведенное имя в памяти компьютера для хранения данных, у которого есть имя. Переменные — это контейнеры, в которых хранятся данные, которые можно изменить или использовать позже в программе. Например:
number = 10
С помощью этой инструкции мы создали переменную number
и присвоили ей значение 10
.
Значения переменной можно менять по ходу программы.
number = 10
number = 1.1
Изначально значение переменной number
было равно 10
. А потом мы изменили его на 1.1
.
Примечание. На самом деле мы не присваиваем значения переменным. Вместо этого Python свящывает переменную и переданное значение с помощью ссылки.
Присваивание значений переменным
Для присваивания значений переменным в Python существует специальный оператор присваивания =
. Вы могли догадаться об этом из прошлого примера.
# Объявляем переменную и присваиваем ей значение
website = "codechick.io"
print(website)
Вывод:
codechick.io
В приведенной выше программе мы сначала присвоили значение codechick.io
переменной website
, а затем напечатали значение переменной website
, т.е. вывели на экран строку codechick.io
.
Примечание. Python — динамический (нетипизированный) язык программирования, поэтому определять тип переменных не нужно. Python сам знает, что
"codechick.io"
— строка, поэтому автоматически определит переменнуюwebsite
как строковую.
# Изменяем значение переменной
website = "codechick.io"
print(website)
# присваиваем новое значение переменной website
website = "askmentor.io"
print(website)
Вывод:
codechick.io
askmentor.io
В приведенной выше программе сначала мы присвоили значение "codechick.io"
переменной website
. А потом изменили значение этой переменной на "askmentor.io"
.
# Присваиваем несколько значений нескольким переменным
a, b, c = 5, 3.2, "Привет"
print (a)
print (b)
print (c)
Если мы хотим присвоить одно и то же значение нескольким переменным одновременно, можно сделать это следующим образом:
x = y = z = "одинаковое"
print (x)
print (y)
print (z)
Эта программа присваивает переменным x
, y
, z
значение "одинаковое"
и выводит все три переменные на экран.
Константы
Константа — это постоянная переменная, значение которой нельзя изменить. Представьте, что это контейнер, в котором содержится информация, менять которую мы не можем.
Присваивание значений константе
В Python константы обычно объявляются в модуле. В этом контексте под модулем подразумевается файл, который содержит переменные, функции и т.д. и который можно импортировать в основной файл. Внутри модуля константы записываются заглавными буквами. Если нужно разделить слова, используются подчеркивания.
Создадим файл constant.py:
PI = 3.14
GRAVITY = 9.8
Теперь создадим файл main.py:
import constant
print(constant.PI)
print(constant.GRAVITY)
Вывод:
3,14
9,8
В приведенной выше программе мы сначала создали файл constant.py — это модуль. В нем мы определяем значение констант PI
и GRAVITY
. Затем мы создали файл main.py, в котором импортировали м модуль constant
и напечатали значения констант.
Примечание. В Python нет неизменяемых переменных (констант), поэтому на самом деле мы объявляем не константы. Мы просто записываем переменные заглавными буквами, чтобы отличать их от обычных, «изменяемых» переменных. Но это не значит, что переназначить «константу» не получится.
Литералы
Литерал — это простейший способ создания объекта. Под литералами понимаются так называемые «сырые» данные, которые хранятся в строке или константе.
В Python есть несколько типов литералов:
Числовые литералы
Числовые литералы неизменяемы (в Python это называется immutable). Они могут принадлежать к 3 числовым типам: Integer
, Float
, и Complex
.
#Целочисленные (integer) литералы
a = 0b1010 #двоичный литерал
b = 100 #десятичный литерал
c = 0o310 #восьмеричный литерал
d = 0x12c #шестнадцатеричный литерал
#Вещественные (float) литералы
float_1 = 10.5
float_2 = 1.5e2
#Комплексные (complex) литералы
x = 3.14j
print(a, b, c, d)
print(float_1, float_2)
print(x, x.imag, x.real)
Вывод:
10 100 200 300
10,5 150,0
3,14j 3,14 0,0
В приведенной выше программе:
- Мы присвоили целочисленные литералы различным переменным.
a
— двоичный литерал,b
— десятичный литерал,c
является восьмеричным литералом, аd
— шестнадцатеричным. - Когда мы выводим переменные на экран с помощью функции
print()
, все литералы преобразуются в десятичные значения. 10,5
и1.5e2
— литералы с плавающей запятой (они же вещественные).1.5e2
— это просто экспоненциальная запись числа1,5 * 10^2
.- Мы присвоили комплексный литерал
3,14j
переменнойx
. Затем мы использовали мнимый литералx.imag
и действительный литералx.real
для создания мнимой и действительной частей комплексных чисел.
Строковые литералы
Строковый литерал — это последовательность символов, заключенная в кавычки. Мы можем использовать как одинарные, так и двойные или тройные кавычки для строки. Есть еще символьный литерал — это одиночный символ, который тоже заключен в кавычки.
strings = "Это Python"
char = "C"
multiline_str = """Это многострочная строка."""
unicode = u"\u00dcnic\u00f6de"
raw_str = r"сырая \n строка"
print(strings)
print(char)
print(multiline_str)
print(unicode)
print(raw_str)
Вывод:
Это Python
C
Это многострочная строка.
Ünicöde
сырая \n строка
В приведенной выше программе:
"Это Python"
является строковым литералом, а"C"
— символьным литералом.- Значение в тройных кавычках
"""
, присвоенноеmultiline_str
является многострочным строковым литералом. - Строка
u"\ u00dcnic\u00f6de"
— это unicode-литерал, который поддерживает символы, отличные от английских.\u00dc
— это Ü, а\u00f6
— ö. r"сырая \n строка"
— сырая, то есть необработанная строка.
Логические литералы
Логический литерал может иметь одно из двух значений: True
или False
.
x = (1 == True)
y = (1 == False)
a = True + 4
b = False + 10
print("x:", x)
print("y:", y)
print("a:", a)
print("b:", b)
Вывод:
x: True
y: False
a: 5
b: 10
В приведенной выше программе мы используем логические литералы True
и False
. В Python True
равно значению 1
, а False
— 0
. Значение переменной x
— True
, потому что 1
равно True
. А значение y
— False
, поскольку 1
не равно False
.
Точно так же мы можем использовать True
и False
в числовых выражениях в качестве значения (1 и 0 соответственно). Значение а
= 5, потому что мы к 4 прибавляем True
, которое равно 1. Точно так же b
= 10, поскольку к 10 мы прибавляем False
, которое равно 0.
Специальные литералы
В Python есть только один специальный литерал — None
. Он указывает на отсутствие значения.
drink = "В наличии"
food = None
def menu(x):
if x == drink:
print(drink)
else:
print(food)
menu(drink)
menu(food)
Вывод:
В наличии
None
В приведенной выше программе мы написали функцию menu
. Внутри этой функции печатается сообщение «В наличии», если переданный аргумент x
равен drink
. Если аргумент равен food
, выведется None
.
Литералы-коллекции
В Python четыре различных литералов-коллекций: литералы списка, литералы кортежа, литералы словаря и литералы множества.
fruits = ["яблоко", "манго", "апельсин"] #список
numbers = (1, 2, 3) #кортеж
alphabets = {'а' : 'арбуз', 'б' : 'баран', 'в' : 'ворон'} #словарь
vowels = {'а', 'е', 'и' , 'о', 'у', 'ы', 'э', 'ю', 'я' } #множество
print(fruits)
print(numbers)
print(alphabets)
print(vowels)
Вывод:
["яблоко", "манго", "апельсин"]
(1, 2, 3)
{'а' : 'арбуз', 'б' : 'баран', 'в' : 'ворон'}
{'а', 'е', 'и' , 'о', 'у', 'ы', 'э', 'ю', 'я' }
В приведенной выше программе мы создали список fruits
(фрукты), кортеж numbers
(числа), словарь alphabets
(алфавит) и множество vowels
(гласные звуки).