Python. Переменные и операции с ними
Время чтения: 4 минут
Одним из ключевых понятий в программировании является понятие “переменная”.
Переменные хранят значения, используемые в программе.
Типы переменных
Значения могут быть следующих типов:
- bool – boolean, булевое значение. Может принимать значение True (истина) или False (ложь)
- int – integer, целочислое число. Например: 0, 55, -66
- float – floating point, вещественное число. Например: 0.123, 5.55555, -6.62156
- str – string, строка. Например: ‘это’, ‘пример любой’, ‘строки!’
Вот пример определения переменных в Python:
# Машина в движении -- переменная содержит значение True (истина) типа bool
is_car_in_motion = True
# Километры в секунду -- переменная содержит значение 85 типа int
kilometers_per_second = 85
# Топлива осталось -- переменная содержит значение 0.54 типа float
fuel_left = 0.54
# Номер машины -- переменная содержит значение 'АВ 123 С' типа str
plate_number = 'АВ 123 С'
Символ “#” позволяет закомментировать все символы, следующие за ним – они не будут учитываться при чтении программы компьютером. Это нужно для того, чтобы оставлять сообщения прямо в тексте программы.
Переменные в этом примере просто определены, и никак не используются – в реальной программе такие переменные скорее всего содержали бы данные, снятые с каких-нибудь датчиков.
Операции над переменными
Операции над численными переменными
Над численными переменными можно производить операции сложения, вычитания, умножения и деления.
# Умножение чисел 11 и 5
a = 11 * 5 # Присвоить переменной "a" число 55
# Сложение значения переменной "a" с числом 5
b = a + 5 # Присвоить переменной "b" число 60
# Деление значения переменной "b" на число 6
c = b / 6 # Присвоить переменной "c" число 10
# Вычитание из значения переменной "c", значения переменной "a"
d = c - a # Присвоить переменной "d" число -45
Иногда вы можете увидеть операции, вроде “+=” или “*=” – это просто сокращённая запись:
a += 1
b /= 10
# Это то же самое, что
a = a + 1
b = b / 10
Также, при использовании операций, необходимо учитывать порядок операций. В этом примере:
a = 2 + 2 * 2
Ответ будет 6, а не 8. Потому что сначала выполняются операции умножения/деления, а потом сложения/вычитания – всё как в математике. Чтобы облегчить себе жизнь, ты всегда можешь использовать скобки, чтобы определить порядок выполнения операций:
a = (2 + 2) * 2
Теперь ответ будет 8, а не 6, потому что сначала посчитается выражение в скобках, а затем произведётся операция умножения.
Следи внимательно за приоритетом операций, и пользуйся скобками даже там, где они не очень нужны. Бывает, что разработчики с многолетним опытом разработки допускают ошибки, связанные с этим, из-за невнимательности.
Все эти операции можно использовать как для целочисленных, так и для вещественных чисел.
Операции над строковыми переменными
Для строк существует только одна операция – конкатенация. Конкатенация – это просто приклеивание одной строки, к концу другой:
a = 'Hello,'
b = a + ' World' + '!'
print(b) # Hello, World!
Операции над булевыми переменными
Можно выделить две самых важных операции над булевыми переменными:
- not (НЕ)
- and (И)
- or (ИЛИ)
Эти операции пришли сюда прямиком из булевой алгебры – работают они так же, как звучат:
- НЕ – инвертирование значения. Если значение истино, то оно ложно – и наоборот
- И – если оба значения истино, то результат тоже истина. Иначе результат – ложь
- ИЛИ – если одно из значений истино, то результат тоже истина. Иначе – ложь
Вот пример:
true_value_1 = True
true_value_2 = True
false_value_1 = False
false_value_2 = False
true_value_1 # True
false_value_1 # False
not true_value_1 # False
not false_value_1 # True
true_value_1 and true_value_2 # True
true_value_1 or true_value_2 # True
true_value_1 and false_value_1 # False
true_value_1 or false_value_1 # True
false_value_1 and false_value_2 # False
false_value_1 or false_value_2 # False
Как-то плохо читается эта куча операций. О! Как хорошо, что математики давно придумали таблицу истинности, которая показывает в булевой алгебре какая операция даёт какой результат:
Есть ещё операция XOR, но на практике она довольно редко используется. В Python она обозначается через “^”, например: true_value_1 ^ false_value_1
Задание на закрепление
Вот пример из реальности – ты собираешься в долгое путешествие на машине и надо рассчитать сколько бензина у тебя останется после поездки.
У тебя есть 3 переменных:
- distance – сколько километров ты проедешь на машине за всё путешествие
- fuel_consumption – расход топлива в литрах на 100 километров
- fuel_total – сколько литров бензина у тебя в баке сейчас
Нужно высчитать distance_remaining – сколько ещё километров ты сможешь проехать после этой поездки (чтобы доехать до ближайшей заправки).
distance = 420
fuel_consumption = 6.2
fuel_total = 31.63
distance_remaining = 0 # Вместо "0" напиши формулу для вычисления
print(distance_remaining)
Скопируй этот код в IDE, и попробуй высчитать сколько километров ты ещё сможешь проехать.
Ответ должен получиться примерно такой: 90.16129032258061
Зачем нужно использовать переменные? Почему нельзя сразу подставлять числа в выражение, если я их знаю? Представь, что было бы, если у тебя была не одна формула, как в этом примере, а 42 разных? Ты же не вставлял бы по новой значения в каждую формулу при их изменении?
Заключение
Итого, мы изучили:
- Переменные
- Типы переменных
- bool
- int
- float
- str
- Операции над переменными
- сложение, вычитание, умножение, деление
- приоритет операций и скобки
- конкатенация строк
Если что – пиши, я помогу и постараюсь объяснить лучше.
Дальше на очереди – контейнеры.