Переменные и типы данных
Переменные в Python:
Переменная в языке программирования это название для зарезервированного места в памяти компьютера, предназначенное для хранения значений. Это означает, что когда вы создаете переменную, вы на самом деле резервируете определенное место в памяти компьютера.
Основываясь на типе данных переменной, интерпретатор выделяет необходимое количество памяти и решает, что может находится в зарезервированной области памяти.
Для понимания, можете думать о переменной как о коробке, в которую можно положить любую вещь, но только определенного размера. Размер в данном примере будет типом переменной. Это не совсем верное определение, но оно дает общее представление о картине в целом.
Присвоение значения переменной:
В Python вам не нужно объявлять тип переменной вручную (как, например в С++). Объявление происходит автоматически (это называется динамическая типизация), когда вы присваиваете значение переменной. Знак равенства ( = ) используется для присвоения значения переменной.
Операнд по левую сторону от знака равно ( = ) это имя переменной, операнд по правую сторону - значение присвоенное этой переменной.
Например:
?1234country =
"Swiss"
# Присвоить значение Swiss переменной под названием countryage =
23
# Присвоение значения 23 переменной age print
countryprint
age
При выполнении, данный код выведет:
12 = Swiss23
Множественное присвоение значений:
В Python возможно присваивать одно значение нескольким переменным сразу. Например:
1 = a =
b =
c =
1
В данном создается объект со значением 1, и все 3 переменные указывают на область в памяти, в которой он находится.
Встроенные типы данных в Python:
Информация, сохраненная в памяти может быть разных типов данных. Например, возраст человека может быть числовым значением, а его адрес - буквенно-числовым. В Python существует множество стандартных типов данных, которые используются для хранения определенных значений и обладают своими специфическими методами.
К стандартным типам данных в Python относят:
Числовой тип данных в Python:
Числовой тип данных в Python предназначен для хранения числовых значений. Это неизменяемый тип данных, что означает, что изменение значения числового типа данных приведет к созданию нового объекта в памяти (и удалению старого)
Числовые объекты создаются, когда вы присваиваете им значение. Например:
?12num1 =
23num2 =
42
Также вы можете удалять числовой объект при помощи ключевого слова del. Синтаксис команды del следующий:
?12del
num1 # удаляет переменную num1del
num2, num3 # удаляет обе переменные num2 за num3 за раз
В Python есть четыре вида числового типа данных:
- int (целое число)
- long (длинное целое число [может быть представлено в восьмеричной или шестнадцатеричной системе исчисления])
- float (число с плавающей точкой: -0.2, 0.0, 3.14159265 и т.д.)
- complex (комплексное число)
Примеры видов числового типа данных:
intlongfloatcomplex151924361L0.03.14j102-0x19323L15.2045.j-7860122L-21.99.322e-36j00xDEFABCECBDAECBFBAEl32.3+e18.876j0b10535633629843L-90.-.6545+0J-0x260-052318172735L-32.54e1003e+26J0x69-4721885298529L70.2-E124.53e-7j
Строки в Python:
Под строками в Python подразумевается набор символов между кавычками. В Python можно использовать пары одинарных либо двойных кавычек. Из строк можно взять подстроку используя оператор нарезки ( [ ] и [ : ] ) с индексами от нуля для первого символа строки и до последнего. Так же можно использовать обратную индексацию от -1 для последнего символа до начала.
Оператор плюс ( + ) для строк соединяет две строки в одну, звездочка ( * ) оператор повторения. Например:
?1234567891011121314text =
"Hello, Python!"print
text[0] # Выводит первый символprint
text[0:5] # Выводит подстроку text от 0 символа до 5 (включительно с нулевым, исключая пятый)print
text[4:10] # Выведет строку от 4 символа до 10 (включая четвертый, исключая 10)print
text[0:14] # Выведет всю строкуprint
text[7:] # Выведет строку с 7 символа до концаprint
text[:5] # Выведет строку с начала до 5 символа. Аналогично print text[0:5]print
text[:] # Выведет всю строкуprint
text[-1] # Выводит последний символprint
text[-1:-14] # Не сработает, выведет пустую строкуprint
text[::2] # Третий аргумент - шаг. Выведет каждый второй символprint
text[::-1] # Шаг отрицательный. Выведет фразу наоборотprint
text +
"Nice to code you"
# Выведет новую строкуprint
text[-1] *
10
# Выведет 10 восклицательных знаков
В результате вы увидите следующее
Списки в Python:
Списки, пожалуй, самый универсальный составной тип данных в Python. Список состоит из элементов, разделенных запятыми, находящихся между квадратными скобками ( [ ] ). В определенной мере, списки подобны массивам в C. Единственной разницей является то, что элементы одного списка могут иметь разные типы данных.
Получить доступ к элементам, сохраненным в списке можно, точно так же, как и в строках, при помощи оператора нарезки ( [ ] и [:] ) и индексов, начиная с нуля и до конца. Знак плюс ( + ) объединяет два списка, а звездочка ( * ) - оператор повторения для списка. Например:
?123456789my_list =[True, 786, 3.14, 'text', 70.2]second_list =[123, 'text']
print
my_list # Напечатает весь списокprint
my_list[0] # Напечатает первый элемент спискаprint
my_list[1:3] # Напечатает элементы списка со второго по третий print
my_list[2:] # Напечатает элементы списка начиная с третьегоprint
second_list *2
# Напечатает удвоенный списокprint
my_list +
second_list # Напечатает объединенные списки
В результате вы увидите:
?123456[True, 786, 3.14, 'text', 70.2]True[786, 3.14][3.14, 'text', 70.2][123, 'text', 123, 'text'][True, 786, 3.14, 'text', 70.2, 123, 'text']
Кортежи в Python:
Кортеж это еще один составной тип данных, похожий на список. Кортеж состоит из ряда значений, разделенных запятыми, заключенными в круглые скобки ( ( ) ). Основным различием между списками и кортежами является то, что элементы кортежей не могут быть изменены. То есть, кортежи можно рассматривать как списки доступные только для чтения.
Если у вас нет необходимости изменять элементы списка, то для экономии места в памяти лучше использовать тип данных кортеж.
?1234567my_tuple =(True, 786, 3.14, 'text', 70.2)second_tuple =(123, 'text')
print
my_tuple # Печатает весь кортежrint my_tuple[0] # Печатает первый элементprint
second_tuple *2
# Печатает удвоенный кортежprint
my_tuple +
second_tuple # Печатает объединенные кортежи
В результате вы получите:
?1234(True, 786, 3.14, 'text', 70.2)True(123, 'text', 123, 'text')(True, 786, 3.14, 'text', 70.2, 123, 'text')
При этом, следующие действия доступны для списков и недоступны для кортежей:
?12345my_list =
["Rome", 23, ["cat","dog"], True, 3.14]my_tuple =
("Rome", 23, ["cat","dog"], True, 3.14)
my_list[0] =
"Paris"
# Замена значения первого элемента сработает для спискаmy_tuple[0] =
"Paris"
# Та же операция для кортежа вызовет ошибку
Словари в Python:
Словари в Python это неотсортированная колекция элементов, доступ к которым осуществляется по ключу. То есть, каждому ключу словаря соответствует определенное значение. Ключом может быть любой неизменяемый тип данных (число, строка, кортеж), значением - любой тип данных.
Пары ключ, значение словаря заключаются в фигурные скобки ( { } ). Есть несколько способов создания словарей:
?12345678my_dict =
{ } # Создаем пустой словарьmy_dict["country"] =
"Mexico"
# Присваиваем ключу country значение Mexicoprint
my_dict["country"] # Выведет Mexico
# Заполнение словаря при инициализацииanother_dict =
{"number":23, 2: True, "my_list":[1,2,3]}print
another_dict.keys() # Напечатает список всех ключейprint
another_dict.values() # Напечатает список всех значений
Данный код выведет следующее:
Обратите внимание, что ключи и значения выводятся не в том порядке, в котором мы их задавали.
Сеты в Python:
Сет в Python это еще один изменяемый, коллекционный тип данных, отличительной чертой которого является то, что он хранит только уникальные значания.
Создать сеты можно следующими способами:
?1234# Создание пустого сетаs =
set()# Создание сета инициализациейs =
{"hi", "bye"}
Для добавление элемента в сет используется метод add, для удаления - pop или remove. Добавление в сет уже существующего элемента не повлияет на сет. Сеты обладают множеством методов для работы с уникальными элементами, например difference - возвращает элементы сета отсутствующие в другом сете, intersection - наоборот, возвращает елементы сета присутствующие в другом сете.