При работе на Python важную роль играют различные математические операции с числами. Этот язык программирования обладает развитыми возможностями для этого. 

Он не только обеспечивает возможность выполнять арифметические операции с целыми числами, но и обеспечивает полноценные возможности для вычислений с использованием действительных или комплексных чисел. 

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

Работа с целыми числами (int)

Операции с целыми числами в Питоне включают в себя использование всех основных арифметических операций и предусматривают также дополнительные.

Операции с целыми числами

Существует унарная операция, которая заключается в том, что операнд меняет свой знак на противоположный. Для её использования необходимо поставить перед ним знак «минус».

Здесь можно привести такой пример. Если x = 7, то -x = 7. В случае, если y = -5, то -y = 5.

В этом языке можно использовать четыре арифметических операции:

  • сумма (a + b);

  • вычитание (a - b);

  • деление (a/b), результат округляется до целого числа в ближайшую сторону;

  • умножение (a * b).

При этом нужно помнить, что для деления может применяться ещё одно обозначение: a//b. Оно применяется таким же образом, как и приведённое выше. В рассмотренном случае при делении с остатком происходит округление в меньшую сторону до ближайшего целого числа.

Сложение чисел

Для работы с целыми числами предусмотрены дополнительные операции:

  • получение остатка при выполнении деления а на b (a%b);

  • возведение переменной в степень (a**b).

Для пояснения можно привести такие примеры:

  • 5 % 2 = 1 (целочисленное деление с остатком);

  • 10 % 5 = 0;

  • 10 % 7 = 3;

  • 2 ** 2 = 4 (возведение в квадрат);

  • 3 ** 3 = 27 (возведение в третью степень).

При записи этих действий на Python должны применяться следующие правила:

  • слева и справа от знаков арифметических действий проставляться пробелы;

  • с обеих сторон от знака равенства нужно также сделать пробелы.

Пример, который иллюстрирует работу с целыми числами выглядит таким образом:

x = 10;

y = 7;

z = 10 % 7;

print ('z = ', z);

В результате будет выведена строка:

z = 3.

Аналогичным образом могут быть проиллюстрированы другие операции с целыми числами. В языке используются библиотеки функций, которые помогают использовать более сложные функции, например, факториал.

Битовые операции в Python

Программисту иногда приходится сталкиваться с необходимостью выполнять побитовые вычисления. Как известно, каждое число возможно представить в двоичной форме. Это относится не только к целым, но и к действительным числам. Компьютер на аппаратном уровне работает только с двоичными числами.

200

В такой системе счисления каждое число представляется комбинацией нулей и единиц. С ними, конечно, возможно выполнять обычные арифметические операции, которые были рассмотрены выше. Однако в этом случае необходимы дополнительные операции, используемые только для двоичных чисел.

При использовании отрицания каждая двоичная меняется на противоположную. Эта операция обозначается так: ~x. Например, если y = 0101, то ~y = 1010.

Применяются также логические операции над двумя операндами. При этом каждый бит результата вычисляется на основе битов, стоящих в операндах на таком же месте. 

Применяются такие бинарные операции:

  1. Обычное «или» обозначается как a|b. Бит результата равен нулю. Если соответствующие биты операндов нулевые, в остальных случаях это единица. Пример: 0110 | 1100 = 1110.

  2. Исключающее «или» определяет единицу, если значения битов отличаются, и ноль, если совпадают. Эта операция обозначается как a ^ b. Пример: 0110 ^ 1100 = 1010.

  3. Побитовое «и» будет установлено в единицу при таком же значении битов операндов, иначе на этом месте ставят ноль. Обозначением операции является a & b. Пример применения операции: 0110 & 1100 = 0100.

Для битовых чисел применяются сдвиги. Они могут выполняться вправо или влево. При этом каждый из битов числа сдвигается в нужном направлении. При этом крайний бит пропадает, а место последнего занимает ноль. Применяются сдвиги не только на один бит, но и сделанные несколько раз.

Они обозначаются следующим образом: a << n (сдвиг влево n раз) или a >> n (сдвиг вправо n раз).

Пример выглядит следующим образом: 0110 << 2 = 1000.

Дополнительные методы

При работе с числами необходимо учитывать следующие особенности вычислений:

  1. Может потребоваться узнать, из скольких битов состоит число, если его выразить в двоичной форме.

  2. Иногда необходимо получить не только результат вычислений, но и коды символов, соответствующие его цифрам. Может потребоваться и обратная операция.

Для решения указанных задач в python применяются дополнительные методы. Делается это следующим образом:

  • для выяснения количества знаков в двоичной форме числа, можно воспользоваться методом int.bit_length();

  • чтобы вывести число, выраженное через коды входящих в него символов, подойдёт метод int.to_bytes;

  • из строки кодов символов можно получить исходное число с помощью classmethod int.from_bytes.

Сказанное можно прояснить на примерах:

k = 8;

k.int.bit_length()

В итоге будет выведено число 3.

(1024).to_bytes(2, byteorder='big')

Строка, которая появится на дисплее: b'\x04\x00'

int.from_bytes(b'\x00\x10', byteorder='big')

В результате будет напечатано: 16.

  

Системы счисления

При работе с цифрами важно знать, в какой системе счисления они используются. Иногда требуется перед началом проведения вычислений перевести используемое число в нужную. 

Math в Питоне

Выполнение такого рода операций обеспечивается модулем math. 

В рассматриваемом языке программирования для этого применяются такие операторы:

  1. int(x) преобразует число в целое в десятичной системе счисления.

  2. int(x,n) преобразует из той, основание которой равно n. Этот параметр может изменяться от 2 до 36. Результатом является десятичное число.

  3. hex(x) переводит в шестнадцатеричную форму.

  4. oct(x) делает число восьмеричным.

Все эти функции используются аналогичным образом. Вот пример:

int('0b10011', 2)

Результатом является число 19.

Работа с вещественными числами (float)

Действия с вещественными числами аналогичны тем, которые выполняются с целыми. Например, это относится к арифметическим действиям, извлечению корня или возведению в степень.

203

Если в выражении хотя бы одно число действительное, то результат тоже будет относиться к этому виду чисел.

Работа с комплексными числами (complex)

В рассматриваемом языке программирования могут быть использованы комплексные числа. В модуле math имеются различные функции для работы с ними.

Каждое из них можно представить парой вещественных значений — это действительная и мнимая части. Определить комплексную величину на основе вещественных частей можно следующим образом:

x = complex(a, b).

Результат будет получен в форме a + bj.

Действия с такими числами аналогичны тем, которые были рассмотрены для действительных чисел. В частности, предусмотрено выполнение арифметических действий, извлечение квадратного корня, возведение в степень.