+---------------------------+
|.-------------------------.|
|| kee_reel@blog:~/ru $ cd ||
|| ссылки контакты         ||
|| c c++ linux opengl sql  ||
|| python сети             ||
||                         ||
|.-------------------------.|
+-::---------------------::-+
.---------------------------.
 // /oooooooooooooooooooooo\\ \\ 
 // /oooooooooooooooooooooooo\\ \\ 
//-------------------------------\\
\\-------------------------------//


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

Время чтения: 4 минут

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

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

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

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

  1. bool – boolean, булевое значение. Может принимать значение True (истина) или False (ложь)
  2. int – integer, целочислое число. Например: 0, 55, -66
  3. float – floating point, вещественное число. Например: 0.123, 5.55555, -6.62156
  4. 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
  • Операции над переменными
    • сложение, вычитание, умножение, деление
    • приоритет операций и скобки
    • конкатенация строк

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

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


▲ В начало ▲