July 7, 2018

Простейшие типы данных в Python

Вступление

Изучение нового языка - интересный процесс и нет какого-то алгоритма, как правильно организовать обучение. Однако есть хороший совет: сначала изучите типы данных: это основное, с чем вам придётся работать.

Давайте сразу определим, что такое тип данных:

Тип данных — множество значений и операций на этих значениях.

В питоне типизация динамическая. Это означает, что тип переменной определяется только её значением и может меняться. Например в C++ мы бы написали:

int a = 1;

Здесь мы сказали компилятору: "Тип этой переменной - целое число и никакой другой." Соответственно, мы не сможем присвоить переменной что-либо кроме целого числа. В Python же всё иначе:

a = 1

Мы не говорим, какого типа эта переменная. Мы просто присвоили ей значение 1 и стало понятно, что она целочисленная. После этого мы можем спокойно поменять её значение на какое угодно:

a = 1
a = "abc"

Это абсолютно корректный код, потому что нет никаких ограничений на тип переменной. Но очень важно понимать, что это не отменяет само существование типов. Например следующий код приведёт к ошибке:

a = "abc" + 1

Это нам говорит ещё одну вещь о типах в Python: это строго типизированный язык. Это значит, что он не проводит неявных преобразований совершенно разных типов. Да, мы можем сложить целое и дробное число, но число и строку нет.

Давайте же разберёмся, какие основные типы данных есть в Python.

Числа

Числа бывают целыми, дробными и комплексными. У каждого из них есть свой тип данных. О комплексных сейчас говорить не будем: они применяются редко, но заслуживают упоминания.

int - тип целых чисел. С ними можно делать всё то, что можно в математике.

a = 1
b = 2
a + b  # Выведет 3
a - b  # -1
a * b  # 2
a/b  # 0.5
a//b  # 0
a**b  # 1

Тут надо обговорить 2 момента. Первый: деление. Их тут 2. Есть операция / - честное деление. То есть результат - дробное число. Есть операция целочисленного деления - // - то же самое, но результат округляется вниз до целого. Оператор a**b - возведение в степень.

float - дробный тип данных. С ними можно делать всё то же самое.

Строки

string - тип, который соответствует строкам. Например "abc" - строка, "a" - тоже строка. Да, в питоне нет типа для отдельного символа, как во многих языках.

s = "abc"
p = "bca"
print(s + p)  # Мы "сложили" строки: abcbca
print(s * 2)  # abcabc

Самое главное, что надо запомнить о строках в питоне: они неизменяемые. То есть нельзя "поменять" что-либо в строке, не создав новую. Следующий код приведёт к ошибке:

s = 'abc'
s[0] = "b"

Кстати, заметили, что я использовал одинарные кавычки вместо двойных? В питоне они равнозначны и сделаны для удобства. А ещё есть "тройные", которые позволяют писать в несколько строк.

a = """
Больше строк
Богу строк
"""

Их можно составлять как из трёх двойных ("""), так и из трёх одинарных (''')

Логические значения

bool - самый простой тип данных. Он принимает всего 2 значения - True и False. Истина и ложь. Над ними есть логические операции: and(и), or(или), not(отрицание)

print(True and False)  # False
print(True or False)  # True
print(not False)  # True

Побольше о логических операциях можно почитать например здесь

Заключение

Конечно же все эти типы данных можно объединять в коллекции, но это уже тема для другой статьи.

Текст написан для группы SnakeBlog