240 подписчиков

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

1,6K прочитали
Базовые типы данных  В Python есть несколько встроенных базовых типов данных. Вот самые главные для нас сейчас:  Строка (str) — тут все понятно, это любые слова и фразы.

Базовые типы данных

В Python есть несколько встроенных базовых типов данных. Вот самые главные для нас сейчас:

Строка (str) — тут все понятно, это любые слова и фразы.

Целое число (int), например, 5.

Дробное число (float), например, 1.5

Булевые (bool) — тут придется дать определение.

Булевые данные — тип данных в информатике, принимающий два возможных значения, иногда называемых истиной (true) и ложью (false).

Введем в нашем файле несколько примеров с этими типами данных и запустим его:

print("Впереди" + " большие " + "неожиданности")

print(7 == 5, 42 > 13, 144**(1/2))

print(2 * 7 - 10 > 2**4)

Здесь почти все операции должны быть более-менее понятны, за исключением == (это сравнение) и оператор ** для возведения в степень.

Еще один часто встречающийся арифметический оператор — это операция % для взятия остатка от деления на число.

z = 42

print("Число z четное?", z % 2 == 0)

Переменные

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

a = 20

print(a)

print((a * 10 - 5) / (15 + a))

a = 40

print(a * 14 < 1000)

Названия переменных могут быть любыми, кроме специально зарезервированных Python слов (например, нельзя создать переменную с именем True). В версии 3.7 таких слов всего 35, и это в основном базовые операторы языка. Помимо символов алфавита, в названии переменной могут быть еще цифры (только не на самом первом месте) и символ подчеркивания. Можно даже использовать любые юникод-символы для названия, хотя так лучше не делать из этических соображений.

Например, в Python такой код будет валидным (увы), но не очень правильным для работы:

зачем = "затем" print(зачем)

Взаимодействие переменных

В отличие от некоторых других языков программирования, в Python переменная одного типа, попадая в выражение с переменной другого типа, не всегда старается спасти положение и сконвертироваться к общему формату. Такое происходит неявно только для числовых типов (float и int):

x = 12

y = 14.0

z = x + y # int + float -> float

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

x = 12

y = 14.0

z_f = x + y # int + float -> float

z_i1 = x + int(y) # int + int -> int

# int(int + float) -> int(float) -> int

z_i2 = int(x + y)

В целом такое преобразование типов приходится делать не так часто. Например, если вам нужен элемент в середине списка, тогда можно взять длину списка и поделить на два, но получится дробное число, а дробное число не может быть индексом, поэтому надо будет преобразовать его к int.

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

y = "2000"

is_leap = (int(y) % 4) == 0

print("Год " + y + " является високосным?", is_leap)

Мы поговорим про сложение строк в следующем блоке. Сейчас нас больше всего интересует вторая строка, где мы преобразовываем строку "2000" в целое число, считаем остаток от деления получившегося числа на 4 и сравниваем это с нулём.

Мы упоминали еще один важный тип переменных — булевый. Это такие переменные, у которых всего два типа: True (Истина) и False (Ложь). При конвертации из других типов важно помнить следующие правила:

1. Пустая строка преобразуется в False.

2. Любая непустая строка будет True.

3. Любое число (дробное или целое, не играет роли) будет True, если это не ноль. Ноль всегда False.

4. Если мы конвертируем bool в число, то истина станет 1, а ложь 0.

5. str(True) будет 'True', а str(False) будет 'False'.