Python: Арифметические операции
На базовом уровне компьютеры оперируют только числами. Даже в прикладных программах на высокоуровневых языках внутри много чисел и операций над ними. Но для старта достаточно знать обычную арифметику — с нее и начнем.
Например, для сложения двух чисел в математике мы пишем: 3 + 4 . В программировании — то же самое. Вот программа, которая складывает два числа:
3 + 4
Арифметика в программировании практически не отличается от школьной арифметики.
Строчка кода 3 + 4 заставит интерпретатор сложить числа и узнать результат. Эта программа будет работать, но в ней нет смысла. По сути, мы не даем команду интерпретатору, мы просто говорим ему: «смотри, сумма трех и четырех». В реальной работе недостаточно сообщать интерпретатору о математическом выражении.
Например, если создавать интернет-магазин, недостаточно просить интерпретатор посчитать стоимость товаров в корзине. Нужно просить посчитать стоимость И показать цену покупателю.
Нам нужно попросить интерпретатор сложить 3 + 4 И дать команду сделать что-то с результатом. Например, вывести его на экран:
# Сначала вычисляется сумма, # затем она передается в функцию печати print(3 + 4)
После запуска на экране появится результат:
Кроме сложения доступны следующие операции:
- — — вычитание
- * — умножение
- ** — возведение в степень
- / — деление
- // — целочисленное деление
- % — остаток от деления
Теперь выведем на экран результат деления, а потом результат возведения в степень:
print(8 / 2) # => 4.0 (При делении двух чисел получается тип данных float) print(3 ** 2) # => 9
Иногда для удобства мы будем показывать в комментариях результат запуска строчек кода вот так: => РЕЗУЛЬТАТ . Например, # => 4 .
Первая инструкция выведет на экран 4 (потому что 8 / 2 равно 4), а вторая инструкция выведет на экран 9 (потому что 3 2 равно 9).
Задание
Выведите на экран результат деления числа 81 на 9 .
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
- Всегда отбивайте арифметические операторы пробелами от самих чисел (операндов) – это хороший стиль программирования. Поэтому в наших примерах print(3 + 4) , а не print(3+4) .
- Деление на ноль — порождает ошибку.
- Деление с остатком
Определения
- Инструкция — наименьшая автономная часть языка программирования; команда или набор команд. Программа обычно представляет собой последовательность инструкций.
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе
- Привет, Мир!
- Комментарии
- Инструкции (Statements)
- Как мы проверяем ваши решения
- Синтаксические ошибки
- Арифметические операции
- Операторы
- Коммутативная операция
- Композиция операций
- Приоритет
- Числа с плавающей точкой
- Линтер
- Кавычки
- Экранированные последовательности
- Конкатенация
- Кодировка
- Что такое переменная
- Изменение переменной
- Выбор имени переменной
- Ошибки при работе с переменными
- Выражения в определениях
- Переменные и конкатенация
- Именование переменных
- Магические числа
- Константы
- Интерполяция
- Извлечение символов из строки
- Срезы строк
- Multi-line строки
- Типы данных
- Сильная (или Строгая) типизация
- Неизменяемость примитивных типов
- Явное преобразование типов
- Функции и их вызов
- Сигнатура функции
- Аргументы по умолчанию
- Вызов функции — выражение
- Функции с переменным числом параметров
- Детерминированность
- Стандартная библиотека
- Объекты
- Неизменяемость
- Методы как выражения
- Цепочка вызовов
- Создание (определение) функций
- Возврат значений
- Параметры функций
- Необязательные параметры функций
- Именованные аргументы
- Аннотации типов
- Логический тип
- Предикаты
- Комбинирование операций и функций
- Логические операторы
- Отрицание
- Результат логических выражений
- Условная конструкция (if)
- Условная конструкция else
- Конструкция else + if = elif
- Тернарный оператор
- Оператор Match
- Цикл While
- Агрегация данных (Числа)
- Агрегация данных (Строки)
- Обход строк
- Условия внутри тела цикла
- Формирование строк в циклах
- Пограничные случаи
- Синтаксический сахар
- Возврат из циклов
- Цикл For
Python. Урок 4. Арифметические операции
![]()
Язык Python, благодаря наличию огромного количества библиотек для решения разного рода вычислительных задач, сегодня является конкурентом таким пакетам как Matlab и Octave. Запущенный в интерактивном режиме, он, фактически, превращается в мощный калькулятор. В этом уроке речь пойдет об арифметических операциях, доступных в данном языке.
Арифметические операции будем изучать применительно к числам, причем работу с комплексными числами разберем отдельно. Также, кратко остановимся на битовых операциях, представлении чисел в разных системах исчисления и коснемся библиотеки math.
Как было сказано в предыдущем уроке, посвященном типами и модели данных Python, в этом языке существует три встроенных числовых типа данных:
- целые числа (int);
- вещественные числа (float);
- комплексные числа (complex).
Если в качестве операндов некоторого арифметического выражения используются только целые числа, то результат тоже будет целое число. Исключением является операция деления, результатом которой является вещественное число. При совместном использовании целочисленных и вещественных переменных, результат будет вещественным.
Арифметические операции с целыми и вещественными числами
Все эксперименты будем производить в Python, запущенном в интерактивном режиме.
Складывать можно непосредственно сами числа…
>>> 3+2 5
либо переменные, но они должны предварительно быть проинициализированы.
>>> a = 3 >>> b = 2 >>> a + b 5
Результат операции сложения можно присвоить другой переменной…
>>> a = 3 >>> b = 2 >>> c = a + b >>> print(c) 5
либо ей же самой, в таком случае можно использовать полную или сокращенную запись, полная выглядит так
>>> a = 3 >>> b = 2 >>> a = a + b >>> print(a) 5
>>> a = 3 >>> b = 2 >>> a += b >>> print(a) 5
Все перечисленные выше варианты использования операции сложения могут быть применены для всех нижеследующих операций.
>>> 4-2 2 >>> a = 5 >>> b = 7 >>> a - b -2
>>> 5 * 8 40 >>> a = 4 >>> a *= 10 >>> print(a) 40
>>> 9 / 3 3.0 >>> a = 7 >>> b = 4 >>> a / b 1.75
Получение целой части от деления.
>>> 9 // 3 3 >>> a = 7 >>> b = 4 >>> a // b 1
Получение остатка от деления.
>>> 9 % 5 4 >>> a = 7 >>> b = 4 >>> a % b 3
Возведение в степень.
>>> 5 ** 4 625 >>> a = 4 >>> b = 3 >>> a ** b 64
Работа с комплексными числами
Для создания комплексного числа можно использовать функцию complex(a, b), в которую, в качестве первого аргумента, передается действительная часть, в качестве второго – мнимая. Либо записать число в виде a + bj.
Рассмотрим несколько примеров.
Создание комплексного числа.
>>> z = 1 + 2j >>> print(z) (1+2j) >>> x = complex(3, 2) >>> print(x) (3+2j)
Комплексные числа можно складывать, вычитать, умножать, делить и возводить в степень.
>>> x + z (4+4j) >>> x - z (2+0j) >>> x * z (-1+8j) >>> x / z (1.4-0.8j) >>> x ** z (-1.1122722036363393-0.012635185355335208j) >>> x ** 3 (-9+46j)
У комплексного числа можно извлечь действительную и мнимую части.
>>> x = 3 + 2j >>> x.real 3.0 >>> x.imag 2.0
Для получения комплексносопряженного число необходимо использовать метод conjugate().
>>> x.conjugate() (3-2j)
Битовые операции
В Python доступны битовые операции, их можно производить над целыми числами.
>>> p = 9 >>> q = 3 >>> p & q 1
>>> p | q 11
Побитовое Исключающее ИЛИ (XOR).
>>> p ^ q 10
>>> ~p -10
Сдвиг вправо и влево.
>>> p 1 18 >>> p >> 1 4
Представление чисел в других системах счисления
В своей повседневной жизни мы используем десятичную систему исчисления, но при программирования, очень часто, приходится работать с шестнадцатеричной, двоичной и восьмеричной.
Представление числа в шестнадцатеричной системе
>>> m = 124504 >>> hex(m) '0x1e658'
Представление числа в восьмеричной системе
>>> oct(m) '0o363130'
Представление числа в двоичной системе
>>> bin(m) '0b11110011001011000'
Библиотека (модуль) math
В стандартную поставку Python входит библиотека math, в которой содержится большое количество часто используемых математических функций.
Для работы с данным модулем его предварительно нужно импортировать.
>>> import math
Рассмотрим наиболее часто используемые функции.
math.ceil(x)
Возвращает ближайшее целое число большее, чем x.
>>> math.ceil(3.2) 4
math.fabs(x)
Возвращает абсолютное значение числа.
>>> math.fabs(-7) 7.0
math.factorial(x)
Вычисляет факториал x.
>>> math.factorial(5) 120
math.floor(x)
Возвращает ближайшее целое число меньшее, чем x.
>>> math.floor(3.2) 3
math.exp(x)
>>> math.exp(3) 20.085536923187668
math.log2(x)
Логарифм по основанию 2.
math.log10(x)
Логарифм по основанию 10.
math.log(x[, base])
По умолчанию вычисляет логарифм по основанию e, дополнительно можно указать основание логарифма.
>>> math.log2(8) 3.0 >>> math.log10(1000) 3.0 >>> math.log(5) 1.6094379124341003 >>> math.log(4, 8) 0.6666666666666667
math.pow(x, y)
Вычисляет значение x в степени y.
>>> math.pow(3, 4) 81.0
math.sqrt(x)
Корень квадратный от x.
>>> math.sqrt(25) 5.0
Тригонометрические функции, их мы оставим без примера.
math.cos(x)
math.sin(x)
math.tan(x)
math.acos(x)
math.asin(x)
math.atan(x)
И напоследок пару констант.
math.pi
math.e
Помимо перечисленных, модуль math содержит ещё много различных функций, за более подробной информацией можете обратиться на официальный сайт.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
>>
Раздел: Python Уроки по Python Метки: Python, Уроки Python
Python. Урок 4. Арифметические операции : 1 комментарий
- Анна 15.07.2023 Можно пояснение по операции Инверсия? p присвоено было значение 9, после выполнения инверсии над p его результат стал -10. Ответ верный здесь? Или это ошибка?
Сложить числа Python
Чтобы сложить или получить сумму чисел можно использовать оператор + . Смотрите пример:
num1 = 5 num2 = 10 res = num1 + num2 print(res)
Результат выполнения кода:
С помощью метода fsum модуля math
Метод fsum модуля math позволяет найти сумму всех членов последовательности чисел. Смотрите пример:
import math lst = [2, 4, 6] print(math.fsum(lst))
Результат выполнения кода:
Смотрите также
- метод fsum модуля math,
который возвращает сумму всех членов последовательности
Модуль tkinter. Урок №3 — Проект «Сложение двух чисел»

После запуска вы должны увидеть следующее окно приложения:

Согласитесь, выглядит не очень симпатично. Что поделать, метод размещения виджетов pack() в данном случае нам не подходит.
2. Метод размещения Grid
С помощью этого способа мы можем разместить виджеты по сетке, состоящей из столбцов и строк. Можно объединять столбцы и строки, указывать выравнивание элементов.
Если внимательно посмотреть рисунок в начале этого урока, то вы можете заметить, что окно нашего приложения состоит из 4 строк и 2 столбцов, причем некоторые ячейки объединены.
3. Перепишем нашу программу с использованием Grid:
from tkinter import * root = Tk() root.title('Произведение двух чисел') # первая метка в строке 0, столбце 0 (0 по умолчанию) # парамет sticky означает выравнивание. W, E,N,S — запад, восток, север, юг Label(root, text='Первое число').grid(row=0, sticky=W) # вторая метка в строке 1 Label(root, text='Второе число').grid(row=1, sticky=W) # создаем виджеты текстовых полей EntryA = Entry(root, width=10, font='Arial 16') EntryB = Entry(root, width=10, font='Arial 16') EntryC = Entry(root, width=20, font='Arial 16') # размещаем первые два поля справа от меток, второй столбец (отсчет от нуля) EntryA.grid(row=0, column=1, sticky=E) EntryB.grid(row=1, column=1, sticky=E) # третье текстовое поле ввода занимает всю ширину строки 2 # columnspan — объединение ячеек по столбцам; rowspan — по строкам EntryC.grid(row=2, columnspan=2) # размещаем кнопку в строке 3 во втором столбце but = Button(root, text='Произведение') but.grid(row=3, column=1, sticky=E) root.mainloop()
После запуска мы увидим правильно оформленное окно:

Осталось написать функцию, вычисляющую произведение чисел и привязать к кнопке.
4. Напишем функцию обработчик нажатия кнопки:
Эту функцию необходимо разместить до создания кнопки.
def proizv(): a = EntryA.get() # берем текст из первого поля a = int(a) # преобразуем в число целого типа b = EntryB.get() b = int(b) result = str(a * b) # результат переведем в строку для дальнейшего вывода EntryC.delete(0, END) # очищаем текстовое поле полностью EntryC.insert(0, result) # вставляем результат в начало
5. Привяжем нажатие кнопки с функцией (добавьте команду для кнопки):
but = Button(root, text='Произведение', command=proizv)
Задание 1:
Добавьте кнопки вычисления суммы, разности и вычисления частного (деление).

Задание 2:
Напишите программу, складывающую целые числа в одной из компьютерных систем:

Подсказки:
1) функция int(строка,2) преобразует преобразует исходную строку, представляющую двоичное число в целое десятичное число.
Например, int(‘101’,2) (результат 5)
2) Для обратного преобразования десятичного числа можно использовать встроенные функции, результатом которых будет строка:
hex(18) (результат 0x12)
oct(25) (результат 0o31)
bin(17) (результат 0b10001)
