Python: какие арифметические операции вы знаете

0
15

Краткая памятка по арифметическим операциям в Python

  1. Используйте + для сложения, — для вычитания, * для умножения.
  2. Для деления применяйте / (обычное) или // (целочисленное).
  3. Оператор % возвращает остаток от деления.
  4. Возведение в степень выполняется через **.
  5. Помните о приоритете операций: сначала *, /, //, %, затем +, -.
  6. Используйте скобки для явного указания порядка вычислений.
  7. При смешивании int и float результат будет float.
  8. Избегайте деления на ноль.
  9. Для сложных математических операций подключайте модуль math.
  10. Практикуйтесь, решая задачи с арифметическими выражениями.

Что такое арифметические операторы в Python?

операторы - изображение номер один
операторы — изображение номер один

Когда объясняю эту тему своим студентам, всегда сравниваю с калькулятором, который у всех был в школе. Арифметические операторы — это как кнопки: плюс, минус, умножить, поделить. Только в Python есть ещё пара-тройка прикольных «кнопок», которые делают вычисления мощнее.

Арифметические операторы в Python это значки, которые отвечают за математические действия с числами. Они работают с целыми числами (int), дробными (float) и даже с какими-то заумными комплексными числами (complex). Когда я сам начинал, чуть не запутался в этих типах, но пару раз сломав код, всё стало на места.

Важно понимать: Python не просто выполняет вычисления, он делает это умно. Например, если вы складываете целое число с числом с плавающей точкой, результат автоматически становится float:

Основные арифметические операции

Первые шаги - изображение номер два
Первые шаги — изображение номер два

Пока такого понимания чисел будет вполне достаточно. Следующим шагом, нам с вами нужно научиться делать арифметические операции над ними. Что это за операции? Базовыми из них являются, следующие:

Таблица №1

Оператор

Описание

Приоритет

+

сложение

2

вычитание

2

*

умножение

3

/, //

деление

3

%

остаток деления

3

**

возведение в степень

4

Давайте, я поясню их работу на конкретных примерах. Перейдем в консоль языка Python, чтобы выполнять команды в интерактивном режиме. Так будет удобнее для демонстрации возможностей вычислений. В самом простом варианте мы можем просто сложить два целых числа:

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

Теперь a ссылается на объект с числом 5. Давайте разберемся, как работает эта строчка. Сначала в Python создаются два объекта со значениями 2 и 3. Оператор сложения берет эти значения, складывает их и формирует третий объект со значением 5. А, затем, через оператор присваивания, этот объект связывается с переменной a. В конце, если на объекты 2 и 3 не ссылаются никакие другие переменные, они автоматически удаляются из памяти сборщиком мусора.

Урок 2 - изображение номер три
Урок 2 — изображение номер три

Возможно, вас удивило, что при такой простой операции сложения двух чисел выполняется столько шагов. Но в Python реализовано все именно так. И это справедливо для всех арифметических операций. Мало того, раз операция сложения возвращает объект с результатом, то можно сделать и такое сложение из трех чисел:

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

Очевидно, что результат получается тоже вещественным. Отсюда можно сделать вывод, что сложение целого числа с вещественным всегда дает вещественное значение.

А вот при делении двух любых чисел, мы всегда будем получать вещественное число (даже если числа можно разделить нацело):

Если же нам нужно выполнить деление с округлением к наименьшему целому, то это делается через оператор:

На выходе получаем значение 3, так как оно является наименьшим целым по отношению к 3,5. Обратите внимание, что при делении отрицательных чисел:

получим уже значение -4, так как оно наименьшее по отношению к -3,5. Вот этот момент следует иметь в виду, применяя данный оператор деления.

Обратите внимание, в последней операции получим вещественное значение 9.0, а не целое 9, так как при умножении целого на вещественное получается вещественное число.

Давайте теперь предположим, что мы хотим вычислить целый остаток от деления. Что это вообще такое? Например, если делить

то остаток будет равен 1. Почему так? Все просто, число 3 трижды входит в число 10 и остается значение 10 — 3∙3 = 1. Для вычисления этого значения в Python используется оператор:

то получим 2. Я думаю, общий принцип понятен. Здесь есть только один нюанс, при использовании отрицательных чисел. Давайте рассмотрим четыре возможные ситуации:

9 % 5 # значение 4 -9 % 5 # значение 1 9 % -5 # значение -1 -9 % -5 # значение -4

Почему получаются такие значения? Первое, я думаю, понятно. Здесь 5 один раз входит в 9 и остается еще 4. При вычислении -9 % 5 по правилам математики следует взять наименьшее целое, делящееся на 5. Здесь – это значение -10. А, далее, как и прежде, вычисляем разность между наименьшим, кратным 5 и -9:

При вычислении 9 % -5, когда делитель отрицательное число, следует выбирать наибольшее целое, кратное 5. Это значение 10. А, далее, также вычисляется разность:

ЧИТАТЬ ТАКЖЕ:  Как в Python перевести число из десятичной системы в шестнадцатеричную

В последнем варианте -9 % -5 следует снова выбирать наибольшее целое (так как делитель отрицателен), получаем -5, а затем, вычислить разность:

Как видите, в целом, все просто, только нужно запомнить и знать эти правила. Кстати, они вам в дальнейшем пригодятся на курсе математики.

Последняя арифметическая операция – это возведение в степень. Она работает просто:

В последней строчке сначала 3 возводится в квадрат (получаем 9), а затем, 2 возводится в степень 9, получаем 512. То есть, оператор возведения в степень выполняется справа-налево. Тогда как все остальные арифметические операции – слева-направо.

Сложение в Python

Файлы - изображение номер четыре
Файлы — изображение номер четыре

Этот код действительно можно запустить: интерпретатор выполнит вычисление. Но… он не сделает с результатом ничего. То есть 7 получится, но вы его не увидите.

Примеры использования:

Арифметические операции на языке - изображение номер пять
Арифметические операции на языке — изображение номер пять

Синтаксис арифметических выражений прост. Операторы +, -, * и / работают так же, как и в большинстве других языков программирования, круглые скобки () могут быть использованы для группировки выражений.

>>> 2 + 2 # 4 >>> 50 — 5*6 # 20 >>> (50 — 5*6) / 4 # 5.0 # деление всегда возвращает тип float >>> 8/5 # 1.6

Целые числа, например 2, 4, 20 имеют тип int, числа с дробной частью, например 5.0, 1.6 имеют тип float.

Деление / всегда возвращает тип float (число с плавающей запятой). Для получения целой части числа, полученного в результате деления (floor division — округление результата до ближайшего целого в меньшую сторону) вы можете использовать оператор //, для расчета остатка вы можете использовать оператор %

>>> width = 20 >>> height = 5 * 9 >>> width * height # 900

Если переменная не определена, т. е. ей не присвоено значение, попытка использовать ее приведет к ошибке.

# переменная ‘x’ не определена # ей не присвоено значение, а значит # Python ничего про нее не знает >>> x # Traceback (most recent call last): # File «<stdin>», line 1, in <module> # NameError: name ‘x’ is not defined

В интерактивном режиме последнее печатное выражение присваивается переменной _ — символ подчеркивания. Это означает, что при использовании Python в качестве калькулятора несколько проще продолжить вычисления, например:

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

Помимо int и float, Python поддерживает другие типы чисел, такие как Decimal и Fraction. Python также имеет встроенную поддержку комплексных complex чисел и использует суффикс j или J для обозначения мнимой части, например, 3+5j.

Другие арифметические операции

Встроенные функции языка - изображение номер шесть
Встроенные функции языка — изображение номер шесть

Python поддерживает все привычные операции + несколько специфичных, связанных с тем, как хранятся и обрабатываются числа на компьютере:

Таблица №2

Операция Символ Пример Результат
Сложение + 2 + 3 5
Вычитание - 7 - 2 5
Умножение * 4 * 3 12
Деление / 8 / 2 4.0
Возведение в степень ** 3 ** 2 9
Целочисленное деление // 7 // 3 2
Остаток от деления % 7 % 3 1

Что такое остаток от деления (%)

Деление в - изображение номер семь
Деление в — изображение номер семь

Эта операция называется взятие остатка от деления. Она показывает, что «остается», когда одно число делится на другое не полностью. Пример:

  • 7 делится на 3 дважды: 3 * 2 = 6
  • До 7 остается 1, и это является остатком.
  • чтобы проверить, делится ли число нацело (если остаток 0)
  • чтобы выполнять циклические действия, например, поведение по четным/нечетным индексам

Мы еще неоднократно встретим % в задачах и разберем его применение на практике.

Числа с плавающей точкой

Все числа равны, но некоторые равнее - изображение номер восемь
Все числа равны, но некоторые равнее — изображение номер восемь

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

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

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

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

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

Арифметические операции с целыми и вещественными числами

Язык программирования - изображение номер девять
Язык программирования — изображение номер девять

Все эксперименты будем производить в Python, запущенном в интерактивном режиме.

либо переменные, но они должны предварительно быть проинициализированы.

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

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

Особенности деления в Python: подводные камни

Программирование на языке - изображение номер десять
Программирование на языке — изображение номер десять

Деление в Python, тема, где даже опытные программисты иногда делают ошибки. Давайте разберем все нюансы:

Помню, как один мой студент пыхтел над программой для подсчёта упаковок товара и чуть не поседел: у него выходили какие-то дробные упаковки, типа 3.5 коробки. Мы с ним полчаса ковырялись, пока не дошло, что он юзал обычное деление (/) вместо целочисленного (//).

Приоритеты арифметических операций

Этот - изображение номер одиннадцать
Этот — изображение номер одиннадцать

Получим значение 9. Почему так произошло? Ведь кубический корень из 27 – это 3, а не 9? Все дело в приоритете арифметических операций (проще говоря, в последовательности их выполнения). Приоритет у оператора возведения в степень ** — наибольший. Поэтому здесь сначала 27 возводится в степень 1, а затем, 27 делится на 3. Получаем искомое значение 9.

ЧИТАТЬ ТАКЖЕ:  Язык программирования Python: для чего применяется и где используется

Если нам нужно изменить порядок вычисления, то есть, приоритеты, то следует использовать круглые скобки:

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

То есть, приоритеты работают так, как нас учили на школьных уроках математики. Я думаю, здесь все должно быть понятно. Также не забывайте, что все арифметические операторы выполняются слева-направо (кроме оператора возведения в степень), поэтому в строчке:

сначала будет выполнено деление на 4, а затем, результат умножается на 2.

Приоритет и ассоциативность арифметических операторов

Приоритеты арифметических операторов в - изображение номер двенадцать
Приоритеты арифметических операторов в — изображение номер двенадцать

Таблица №3

Приоритет Операторы Описание
Высший ** Возведение в степень
+x, -x Унарный плюс и минус
*, /, //, % Умножение, деление
Низший +, - Сложение, вычитание

Слушайте, мой совет из жизни: даже если вы думаете, что наизусть знаете, какой оператор за кем идёт, всё равно лепите скобки. Код должен быть понятным не только компу, но и вашим корешам по команде — и, главное, вам самим, когда через полгода будете пялиться на свои строчки и думать: «Это я что, ночью писал, что ли?»

Оформление арифметических выражений

Python - изображение номер тринадцать
Python — изображение номер тринадцать

3+4 3+4 3 + 4 3 + 4
С точки зрения Python между и нет разницы. Интерпретатор поймет оба варианта одинаково и в обоих случаях выполнит сложение. Разница только в оформлении кода. В программировании принято ставить пробелы вокруг арифметических операторов, потому что так выражения проще читать:

Но такой код выглядит менее аккуратно и его сложнее быстро воспринимать. Поэтому лучше сразу привыкать писать с пробелами вокруг операторов.

Дополнительные арифметические операторы

Программирование на - изображение номер четырнадцать
Программирование на — изображение номер четырнадцать

В заключение этого занятия рассмотрим некоторые дополнения к арифметическим операторам. Предположим, что у нас имеются переменные:

И, далее, мы хотим переменную i увеличить на 1, а j – уменьшить на 2. Используя существующие знания, это можно сделать, следующим образом:

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

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

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

Complex - изображение номер пятнадцать
Complex — изображение номер пятнадцать

Для создания комплексного числа можно использовать функцию complex(a, b), в которую, в качестве первого аргумента, передается действительная часть, в качестве второго – мнимая. Либо записать число в виде a + bj.

Комплексные числа можно складывать, вычитать, умножать, делить и возводить в степень.

Для получения комплексносопряженного число необходимо использовать метод conjugate().

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

Основы программирования на - изображение номер шестнадцать
Основы программирования на — изображение номер шестнадцать

В Python доступны битовые операции, их можно производить над целыми числами.

Представление чисел в других системах счисления

PPT - изображение номер семнадцать
PPT — изображение номер семнадцать

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

Библиотека (модуль) math

Math - изображение номер восемнадцать
Math — изображение номер восемнадцать

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

Чтобы увидеть результат, нужно его вывести

Python 3 - изображение номер девятнадцать
Python 3 — изображение номер девятнадцать

В реальной программе просто посчитать значение недостаточно. Нужно сделать что-то с результатом, например, показать его пользователю.

print() print()
Для этого используем мы используем уже привычную команду, которую в дальнейшем будем называть функцией:

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

Если записать это же выражение в виде строки, то мы получим совсем другой результат, на печать будет выведена строка «как есть»:

Практическое задание

Запись арифметических выражений на языке - изображение номер двадцать
Запись арифметических выражений на языке — изображение номер двадцать

Если вы только начинаете вникать в Python, попробуйте покодить на интерактивном Python курсе JavaRush. У нас каждая тема идёт с кучей задачек, которые сразу проверяются — реально помогает закрепить материал, когда видишь, где накосячил.

FAQ

Вопрос: Какие основные арифметические операторы есть в Python?
Ответ: Основные операторы: + (сложение), — (вычитание), * (умножение), / (деление), // (целочисленное деление), % (остаток от деления), ** (возведение в степень).

Вопрос: В чем разница между / и // в Python?
Ответ: Оператор / возвращает результат деления с плавающей точкой (float), а // выполняет целочисленное деление, отбрасывая дробную часть.

Вопрос: Как работает оператор % (остаток от деления)?
Ответ: Оператор % возвращает остаток от деления левого операнда на правый. Например, 7 % 3 вернет 1.

Вопрос: Что такое приоритет операций в Python?
Ответ: Приоритет определяет порядок выполнения операций в выражении. Например, умножение и деление выполняются до сложения и вычитания.

Вопрос: Можно ли выполнять арифметические операции с разными типами чисел?
Ответ: Да, Python автоматически приводит типы. Например, при сложении целого числа (int) и числа с плавающей точкой (float) результат будет float.

Вопрос: Как возвести число в степень в Python?
Ответ: Для возведения в степень используется оператор **. Например, 2 ** 3 вернет 8.

Вопрос: Что такое комплексные числа и как с ними работать?
Ответ: Комплексные числа имеют мнимую единицу j. Например, 3 + 4j. С ними можно выполнять все стандартные арифметические операции.

Вопрос: Какие подводные камни есть при делении в Python?
Ответ: Деление на ноль вызывает ошибку ZeroDivisionError. Также стоит помнить о точности чисел с плавающей точкой.

Вопрос: Как использовать модуль math для арифметических операций?
Ответ: Модуль math предоставляет дополнительные функции, такие как math.sqrt() для квадратного корня, math.sin() для синуса и другие.

Вопрос: Что такое битовые операции и как они связаны с арифметикой?
Ответ: Битовые операции (например, &, |, ^, <>) работают с двоичным представлением чисел. Они не являются арифметическими, но часто используются в низкоуровневых вычислениях.

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме.
Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”. <<< Python. Урок 3. Типы и модель данных Python. Урок 5. Условные операторы и циклы>>>

Основы программирования на языке - изображение номер двадцать один
Основы программирования на языке — изображение номер двадцать один