+--------------------------+
|.------------------------.|
|| kee_reel@blog:~$ cd    ||
|| си python терминал     ||
|| opengl sql             ||
||                        ||
||                обо_мне ||
|.------------------------.|
+-::--------------------::-+
.--------------------------.
 // /ooooooooooooooooooooo\\ \\ 
 // /ooooooooooooooooooooooo\\ \\ 
//------------------------------\\
\\------------------------------//

Python. Переменные и операции с ними

Одним из ключевых понятий в программировании является понятие “переменная”.

Переменные хранят значения, используемые в программе.

Типы переменных

Значения могут быть следующих типов:

  • 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 (истина) типа bool
  • kilometers_per_second (километры в секунду) – переменная содержит значение 85 типа int
  • fuel_left (топлива осталось) – переменная содержит значение 0.54 типа float
  • plate_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!

Операции над булевыми переменными

Можно выделить две самых важных операции над булевыми переменными:

  • ! (НЕ)
  • 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 разных? Ты же не вставлял бы по новой значения в каждую формулу, при их изменении?

Заключение

Итого, мы изучили:

  • Переменные
  • Типы переменных (булевый, целочисленный, вещёственный, строковый)
  • Операции над переменными (сложение, вычитание, умножение, деление, приоритет операций, конкатенация)

Если что – пиши, я помогу и постараюсь объяснить лучше.

Дальше на очереди – контейнеры.