Ранее вы могли заметить, что числа мы записывали просто так, а текстовые данные оформляли в кавычки. Это необходимо по той причине, что Python (в отличие от многих других языков программирования) умеет сам определять, какого типа те или иные данные.
Но чтобы ему помочь — мы должны эти данные оформлять так, чтобы они однозначно идентифицировались.
Чтобы не путаться с типами данных — давайте познакомимся с самими простыми.
Числа
В Python для работы с числами есть два основных типа: целые числа (int) и числа с плавающей точкой, т. е. дробные числа (float).
Немного про целые числа:
Хранят любые целые значения: 0, 1, -20, 200.
Можно делать с ними обычные арифметические операции: сложение (+), вычитание (-), умножение (*), деление (/), целочисленное деление (//), остаток от деления (%), возведение в степень (**).
Пример:
apples = 10 # В коробке 10 яблок
eaten = 3 # Съели 3 яблока
left = apples - eaten # Осталось 7 яблок
print(left) # Вывели на экран результат 7
Есть и вещественные числа (они же дробные, они же числа с плавающей точкой):
Это числа с дробной частью: 3.14, -0.01, 2.0, 0.0.
Дробная часть от целой всегда отделяется **только точкой**: использовать запятую для разделения целой и дробной частей нельзя.
Также поддерживают все арифметические операции.
Пример:
banana_weight = 0.2 # 0.2 кг
bananas = 5
total_weight = banana_weight * bananas # 1.0 кг
Иногда нам нужно перевести один тип данных в другой. Тут все просто! Надо использовать для этого функции, которые называются так же, как типы данных.
К примеру, для того, чтобы преобразовать данные в тип int (целое число) — надо использовать функциюint ():
Округление чисел
В Python можно легко округлять числа. Давайте посмотрим, как сделать из дробного числа целое или округлить до нескольких знаков.
Самое простое — использовать функцию round ():
print(round(2.7)) # 3
print(round(2.3)) # 2
Но round () может быть коварна. Рассмотрим пример:
print(round(2.5)) # 2
print(round(3.5)) # 4
Почему так вышло? Python округляет числа на половине (.5) к ближайшему чётному числу. Это называется «банковское округление» (банкиры любят чётные числа!).
Также с помощью функции round () можно округлить число до нужного количества знаков после точки. Для этого округляемое число необходимо передать первым аргументом, а количество знаков вторым:
print(round(13.5768, 2)) # 13.58
Иногда вам не нужно никакого округления, просто — обрубить дробный «хвостик». В таком случае будет достаточно конвертировать число в целое:
print(int(5.999)) # 5
print(int(-3.5)) # -3
Строки
Строка — это просто набор символов, которые идут подряд, как слова в книге или буквы на вывеске. В Python строка — это специальный тип данных, который хранит текст.
Примеры строк:
"Привет"
'Пирог'
"123"
Строки всегда берутся в кавычки: либо в двойные " ", либо в одинарные ' ' — это не важно. Главное, чтобы открывающая и закрывающая кавычка совпадали.
Если у вас есть две строки, то вы можете «сложить» их вместе, и получится одна длинная строка, где тексты просто соединяются по очереди.
Булевы переменные — это особый тип переменных, который может принимать только два значения: True (истина) или False (ложь). Придумал этот тип данных британский математик Джордж Буль (George Boole), и теперь его имя носит целая логическая система — булева алгебра.
Булевы значения отвечают на вопросы типа «да» или «нет», «правда» или «неправда». В Python они записываются с большой буквы: True и False.
is_cat_cute = True
is_sky_green = False
Здесь переменная is_cat_cute (котик милый?) равна True, ведь, конечно же, котики милы! А вот небо зелёного цвета? Конечно, нет, поэтому is_sky_green = False.
Чаще всего булевы переменные появляются автоматически, когда мы делаем сравнения с помощью операторов вроде ==, >, < и других:
a = 5
b = 10
print(a < b) # True, потому что 5 меньше 10
print(a == b) # False, потому что 5 не равно 10
В Python есть всего шесть основных операторов сравнения:
Оператор
Что проверяет
Пример
Результат
==
Равенство
5 == 5
True
!=
Не равно
5 != 3
True
<
Меньше
3 < 5
True
>
Больше
7 > 2
True
<=
Меньше или равно
4 <= 4
True
>=
Больше или равно
5 >= 6
False
Примеры:
a = 10
b = 20
print(a == b) # False, потому что 10 не равно 20
print(a != b) # True, потому что 10 действительно не равно 20
print(a < b) # True, 10 меньше 20
print(a > b) # False, 10 не больше 20
print(a <= 10) # True, 10 меньше или равно 10
print(b >= 30) # False, 20 не больше и не равно 30
Важно запомнить следующие моменты:
Операторы всегда возвращают True или False.
Не путайте оператор равенства == с оператором присваивания =. Первый проверяет равенство, а второй — задаёт значение для переменной.
Иногда нам может быть интересно проверить сразу несколько условий. Для этого мы можем использовать логические операторы and (если нам нужно, чтобы сразу оба условия были истинны) и or (если нам достаточно истинности хотя бы одного):
a = 10
b = 20
print((a > 5) and (b < 13)) # будет False, так как истинно только первое условие
print((a > 5) or (b < 13)) # будет True, так как хватает истинности одного условия
-
Задачи для самопроверки
Задача 1. Счёт в кафе со скидкой и чаевыми
Условие. В кафе заказали латте за 180.5, круассан за 95 и сок за 120.25. На заказ действует скидка 10%, а после скидки добавляется сервисный сбор 5%. Бюджет — 500 рублей. Найдите итоговую сумму к оплате (округлите до 2 знаков) и сколько останется сдачи.
Условие. Есть 23 куска пиццы, 5 друзей и вы. Сколько кусков получит каждый (если вы делите пиццу так, что каждому должно достаться одно и то же количество кусков) и сколько останется? Выведите оба числа.
Решение: [[toggle]]
slices = 23
friends = 5
people = friends + 1
per_person = slices // people
leftover = slices % people
print("Каждому по:", per_person) # 3
print("Останется:", leftover) # 5