Найти тему
Удалёнка

Типы данных в Python

Оглавление

Переменные в Python:

Переменная в языке программирования это название для зарезервированного места в памяти компьютера, предназначенное для хранения значений. Это означает, что когда вы создаете переменную, вы на самом деле резервируете определенное место в памяти компьютера.

Основываясь на типе данных переменной, интерпретатор выделяет необходимое количество памяти и решает, что может находится в зарезервированной области памяти.

Для понимания, можете думать о переменной как о коробке, в которую можно положить любую вещь, но только определенного размера. Размер в данном примере будет типом переменной. Это не совсем верное определение, но оно дает общее представление о картине в целом.

Присвоение значения переменной:

В Python вам не нужно объявлять тип переменной вручную (как, например в С++). Объявление происходит автоматически (это называется динамическая типизация), когда вы присваиваете значение переменной. Знак равенства ( = ) используется для присвоения значения переменной.

Операнд по левую сторону от знака равно ( = ) это имя переменной, операнд по правую сторону - значение присвоенное этой переменной.

Например:

country = "Swiss" # Присвоить значение Swiss переменной под названием country
age = 23 # Присвоение значения 23 переменной age
print country
print age

При выполнении, данный код выведет:

Swiss
23

Множественное присвоение значений:

В Python возможно присваивать одно значение нескольким переменным сразу. Например:

a = b = c = 1

В данном создается объект со значением 1, и все 3 переменные указывают на область в памяти, в которой он находится.

Встроенные типы данных в Python:

Информация, сохраненная в памяти может быть разных типов данных. Например, возраст человека может быть числовым значением, а его адрес - буквенно-числовым. В Python существует множество стандартных типов данных, которые используются для хранения определенных значений и обладают своими специфическими методами.

К стандартным типам данных в Python относят:

Числовой тип данных в Python:

Числовой тип данных в Python предназначен для хранения числовых значений. Это неизменяемый тип данных, что означает, что изменение значения числового типа данных приведет к созданию нового объекта в памяти (и удалению старого)

Числовые объекты создаются, когда вы присваиваете им значение. Например:

num1 = 23
num2 = 42

Также вы можете удалять числовой объект при помощи ключевого слова del. Синтаксис команды del следующий:

del num1 # удаляет переменную num1
del 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 для последнего символа до начала.

Оператор плюс ( + ) для строк соединяет две строки в одну, звездочка ( * ) оператор повторения. Например:

text = "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 восклицательных знаков

В результате вы увидите следующее

-2

Списки в Python:

Списки, пожалуй, самый универсальный составной тип данных в Python. Список состоит из элементов, разделенных запятыми, находящихся между квадратными скобками ( [ ] ). В определенной мере, списки подобны массивам в C. Единственной разницей является то, что элементы одного списка могут иметь разные типы данных.

Получить доступ к элементам, сохраненным в списке можно, точно так же, как и в строках, при помощи оператора нарезки ( [ ] и [:] ) и индексов, начиная с нуля и до конца. Знак плюс ( + ) объединяет два списка, а звездочка ( * ) - оператор повторения для списка. Например:

my_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 # Напечатает объединенные списки

В результате вы увидите:

[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:

Кортеж это еще один составной тип данных, похожий на список. Кортеж состоит из ряда значений, разделенных запятыми, заключенными в круглые скобки ( ( ) ). Основным различием между списками и кортежами является то, что элементы кортежей не могут быть изменены. То есть, кортежи можно рассматривать как списки доступные только для чтения.

Если у вас нет необходимости изменять элементы списка, то для экономии места в памяти лучше использовать тип данных кортеж.

my_tuple =(True, 786, 3.14, 'text', 70.2)
second_tuple =(123, 'text')

print my_tuple # Печатает весь кортеж
print my_tuple[0] # Печатает первый элемент
print second_tuple *2 # Печатает удвоенный кортеж
print my_tuple + second_tuple # Печатает объединенные кортежи

В результате вы получите:

(True, 786, 3.14, 'text', 70.2)
True
(123, 'text', 123, 'text')
(True, 786, 3.14, 'text', 70.2, 123, 'text')

При этом, следующие действия доступны для списков и недоступны для кортежей:

my_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 это неотсортированная колекция элементов, доступ к которым осуществляется по ключу. То есть, каждому ключу словаря соответствует определенное значение. Ключом может быть любой неизменяемый тип данных (число, строка, кортеж), значением - любой тип данных.

Пары ключ, значение словаря заключаются в фигурные скобки ( { } ). Есть несколько способов создания словарей:

my_dict = { } # Создаем пустой словарь
my_dict["country"] = "Mexico" # Присваиваем ключу country значение Mexico
print my_dict["country"] # Выведет Mexico

# Заполнение словаря при инициализации
another_dict = {"number":23, 2: True, "my_list":[1,2,3]}
print another_dict.keys() # Напечатает список всех ключей
print another_dict.values() # Напечатает список всех значений

Данный код выведет следующее:

-3

Обратите внимание, что ключи и значения выводятся не в том порядке, в котором мы их задавали.

Сеты в Python:

Сет в Python это еще один изменяемый, коллекционный тип данных, отличительной чертой которого является то, что он хранит только уникальные значания.

Создать сеты можно следующими способами:

# Создание пустого сета
s = set()
# Создание сета инициализацией
s = {"hi", "bye"}

Для добавление элемента в сет используется метод add, для удаления - pop или remove. Добавление в сет уже существующего элемента не повлияет на сет. Сеты обладают множеством методов для работы с уникальными элементами, например difference - возвращает элементы сета отсутствующие в другом сете, intersection - наоборот, возвращает елементы сета присутствующие в другом сете.

-4

Преобразование типов данных:

Иногда может возникнуть необходимость преобразовать один тип данных в другой. Для этого существуют специальные встроенные функции Python. Вот некоторые из них:

ФункцияОписание

int(x [,base])

Преобразовывает х в целое число. Например, int(12.4) -> 12

long(x [,base] )

Преобразовывает х в long. Например, long(20) -> 20L

float(x)

Преобразовывает х в число с плавающей точкой. Например float(10) -> 10.0

complex(real [,imag])

Создает комплексное число. Например complex(20) -> (20+0j)

str(x)

Преобразовывает х в строку. Например str(10) -> '10'

tuple(s)

Преобразовывает s в кортеж. Например tuple("hello") -> ( "h","e","l","l","o" )

list(s)

Преобразовывает s в список. Например list("Python") -> [ "P","y","t","h","o","n" ]

dict(d)

Создает словарь из d. Например dict( [ (1,2), (3,4) ] ) -> { 1:2, 3:4 }