Python. Переменные и операции с ними
Время чтения: 4 мин
Одним из ключевых понятий в программировании является понятие “переменная”.
Переменные хранят значения, используемые в программе.
Типы переменных
Значения могут быть следующих типов:
- bool – булевое значение (boolean). Может принимать значение True (истина) или False (ложь)
- int – целочислое число (integer). Например: 0, 55, -66
- float – вещественное число. Например: 0.123, 5.55555, -6.62156
- str – строка (string). Например: ‘это’, ‘пример любой’, ‘строки!’
Вот пример определения переменных в Python:
is_car_in_motion = True
kilometers_per_second = 85
fuel_left = 0.54
plate_number = 'АВ 123 С'
В этом примере:
is_car_in_motion
(машина в движении) – переменная содержит значение True (истина) типа boolkilometers_per_second
(километры в секунду) – переменная содержит значение 85 типа intfuel_left
(топлива осталось) – переменная содержит значение 0.54 типа floatplate_number
(номер машины) – переменная содержит значение ‘АВ 123 С’ типа str
Сейчас эти переменные просто определены, и никак не используются – в реальной программе такие переменные скорее всего содержали бы данные, снятые с каких-нибудь датчиков (is_car_in_motion
, kilometers_per_second
, fuel_left
), или занесённые вручную (plate_number
).
Операции над переменными
Операции над численными переменными
Над численными переменными можно производить операции сложения, вычитания, умножения и деления.
# Умножение чисел 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 = 11 * 5
b = a + 5
c = b / 6
d = c - a
Иногда вы можете увидеть операции, вроде “+=” или “*=” – это просто сокращённая запись:
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 (ИЛИ)
Эти операции пришли сюда прямиком из булевой алгебры – работают они так же, как звучат:
- НЕ – инвертирование значения. Если значение истино, то оно ложно – и наоборот
- И – если оба значения истино, то результат тоже истина. Иначе результат – ложь
- ИЛИ – если одно из значений истино, то результат тоже истина. Иначе – ложь
Вот пример:
this_is_true = True
this_is_also_true = True
this_is_false = False
this_is_also_false = False
not this_is_true # False
not this_is_false # True
this_is_true and this_is_also_true # True
this_is_true or this_is_also_true # True
this_is_true and this_is_false # False
this_is_true or this_is_false # True
this_is_false and this_is_also_false # False
this_is_false or this_is_also_false # False
Как-то плохо читается эта куча операций. О! Как хорошо, что математики давно придумали таблицу истинности, которая показывает в булевой алгебре какая операция даёт какой результат:
Есть ещё операция XOR, но на практике она довольно редко используется. Если интересно, то можешь гянуть что-то вроде “таблица истинности XOR”. В Python она обозначается через “^”, например: this_is_true ^ this_is_false
Задание на закрепление
Вот пример из реальности – ты собираешься в долгое путешествие на машине и надо рассчитать сколько бензина у тебя останется после поездки.
У тебя есть 3 переменных:
- trip_kilometers – сколько километров ты проедешь на машине за всё путешествие
- fuel_consumption_for_100_kilometers – расход топлива в литрах на 100 километров
- fuel_tank_liters – сколько литров бензина у тебя в баке сейчас
Нужно высчитать kilometers_can_drive_after_trip – сколько ещё километров ты сможешь проехать после этой поездки (чтобы доехать до ближайшей заправки).
trip_kilometers = 420
fuel_consumption_for_100_kilometers = 6.2
fuel_tank_liters = 31.63
kilometers_can_drive_after_trip = 0 # Нужно написать код вычисления
print(kilometers_can_drive_after_trip)
Скопируй этот код в IDE, и попробуй высчитать сколько километров ты ещё сможешь проехать.
Ответ должен получиться такой: 90.16129032258061
Зачем нужно использовать переменные? Почему нельзя сразу подставлять числа в выражение, если я их знаю? Представь, что было бы, если у тебя была не одна формула, как в этом примере, а 42 разных? Ты же не вставлял бы по новой значения в каждую формулу, при их изменении?
Заключение
Итого, мы изучили:
- Переменные
- Типы переменных (булевый, целочисленный, вещёственный, строковый)
- Операции над переменными (сложение, вычитание, умножение, деление, приоритет операций, конкатенация)
Если что – пиши, я помогу и постараюсь объяснить лучше.
Дальше на очереди – контейнеры.