Автор оригинала: Chris.
Python предоставляет оператор вычитания -
вычесть один объект из другого. Семантика вычитания зависит от типов данных операндов. Например, вычитание двух целых чисел выполняет Арифметическая разница Операция, тогда как вычитание двух наборов выполняет Установить разницу операция. Конкретное возвращаемое значение оператора минус определяется в типах данных « __sub __ ()
магический метод.
Посмотрите на следующие примеры!
Примеры
Оператор на целочисленных операндах дает еще одно целое – математическое Разница обоих операндов:
>>> 2 - 2 0 >>> 2 - 3 -1 >>> -99 - (-1) -98
Если хотя бы один из операндов – это значение поплавка, результат также является поплавком, является инфекционным!
>>> 2.0 - 1 1.0 >>> 1 - 2.2 -1.2000000000000002 >>> 44.0 - 2.0 42.0
Вы также можете выполнить оператор вычитания на Python наборы Отказ В этом случае он рассчитывает Установить разницу , то есть, он создает новый набор элементов в первом, но не во втором операнде.
Вот пример:
>>> {1, 2, 3} - {1, 2} {3} >>> {'Alice', 'Bob'} - {1, 'Bob'} {'Alice'} >>> {1, 2, 3} - {1, 2, 3, 4, 5} set()
Что если два операнда имеют несовместимый тип данных? Например, если вы попытаетесь вычесть набор из строки?
>>> 'hello' - {1, 2, 3} Traceback (most recent call last): File "", line 1, in 'hello' - {1, 2, 3} TypeError: unsupported operand type(s) for -: 'str' and 'set'
Результат несовместимого добавления является Типеррор
Отказ Вы можете исправить его, используя только совместимые типы данных для операции.
Можете ли вы использовать оператор вычитания на пользовательских объектах? Да!
Магический метод вычитания Python
Чтобы использовать оператор вычитания на пользовательских объектах, определите __sub __ ()
Дундер Метод, который занимает два аргумента: Я
и Другое
и возвращает результат Я - другие
Отказ Вы можете определить конкретное поведение, используя атрибуты (данные), поддерживаемые в этом объекте.
В следующем коде вы создаете корзину из {«Кофе», «Банан», «Хлеб»}
Но затем вы удалите содержимое в другой корзине {«CRED»}
Из него – например, чтобы предотвратить двойную покупку:
class Basket: def __init__(self, goods): self.goods = goods def __sub__(self, other): return Basket(self.goods - other.goods) my_basket = Basket({'coffee', 'banana', 'bred'}) to_remove = Basket({'bred'}) updated_basket = my_basket - to_remove print(updated_basket.goods)
Выход этого фрагмента кода является новой корзиной:
{'banana', 'coffee'}
Код состоит из следующих шагов:
- Создать класс
Корзина
Это содержит содержимое списка для хранения некоторых товаров. - Определите магический метод
__sub__
Это создает новую корзину, сочетая наборы товаров от корзин двух операндов. Обратите внимание, что мы полагаемся на уже реализованный оператор вычитания на множествах, то есть Установить разницу , чтобы на самом деле реализовать оператор вычитания для корзин. - Мы создаем две корзины
My_Basket
иto_remove
и рассчитайте разницу между ними к новой корзинеupdated_basket
Отказ
Вы можете вычесть списки в Python?
Python не позволяет встроенную поддержку для Разница в списке Операция , то есть, создавая новый список с элементами из первого списка операнда Но без элементов из второго списка операнда. Вместо этого, чтобы вычесть lst_2
из списка lst_1
Используйте оператор понимания списка как фильтр [x для x в lst_1, если x не в lst_2] Отказ
Вот пример кода:
lst_1 = [1, 2, 3, 4, 5, 6] lst_2 = [1, 2, 3] difference = [x for x in lst_1 if not x in lst_2]
Вывод:
print(difference) # Output: [4, 5, 6]
Этот код использует понимание списка, который является компактным способом создания списков. Простая формула – [Выражение + контекст]
Отказ
- Выражение: Что делать с каждым элементом списка?
- Контекст: Какие элементы для выбора? Контекст состоит из произвольного количества
для
иЕсли
заявления.
Вы можете узнать больше о понимании списка в этом углубленном уроке с видео:
*** Список понимания – Ultimate Guide ***
Но прежде чем мы будем двигаться дальше, я рад представить вам мою новую книгу Python Python One-listers (Amazon Link).
Если вам нравятся одноклассники, вы будете любить книгу. Это научит вам все, что нужно знать о Одно строка кода Python. Но это тоже Введение в компьютерную науку , наука о данных, машин обучения и алгоритмы. Вселенная в одной строке Python!
Книга была выпущена в 2020 году с помощью книги по программированию мирового класса Nostarch Press (San Francisco).
Ссылка: https://nostarch.com/pythononeliners.
Программа вычитания Python с пользовательским входом
Чтобы создать простую программу вычитания в Python, принимая ввод пользователя и вычитание предоставленных номеров, вы можете использовать следующие четыре шага:
- Получите ввод пользователя в виде строки с помощью встроенного
вход ()
Функция и хранить результат в переменныхnum_1
иnum_2
Отказ - Преобразовать входы пользователей строки к численным типам, используя, например,
int ()
илипоплавок ()
конструкторы. - Вычте численные значения с использованием оператора вычитания
num_1 - num_2
Отказ - Распечатайте результат к оболочке Python.
Вот эти четыре шага в Python код:
# Python subtraction program with user input # 1. Get string user inputs representing integers num_1 = input('First number: ') num_2 = input('Second number: ') # 2. Converting strings to ints num_1 = int(num_1) num_2 = int(num_2) # 3. Subtracting numbers result = num_1 - num_2 # 4. Display the result print(num_1, '-', num_2, '=', result)
Вот пример выполнения кода, где я помещаю в целые числа 44 и 2, и рассчитал разницу с использованием оператора вычитания:
First number: 44 Second number: 2 44 - 2 = 42
Сторирование оператора вычитания Python
Вы можете объединить два оператора вычитания. Например, выражение X – Y – Z сначала рассчитал разницу между х
и y
а затем вычесть z
из полученного объекта. Таким образом, это семантически идентично ( (X – Y) – Z) Отказ
Вот минимальный пример:
>>> x = 10 >>> y = 5 >>> z = 2 >>> x - y - z 3 >>> ((x - y) - z) 3
Арифметические операторы
Арифметические операторы – синтаксические ярлыки для выполнения основных математических операций по номерам.
Оператор | Имя | Описание | Пример |
+ | Добавление | Расчет суммы двух операндов | 3 + 4 |
– | Вычитание | Вычитание второго операнда с первого операнда | 4 – 3 |
* | Умножение | Умножить первый со вторым операндом | 3 * 4 |
/ | Разделение | Разделение первого на второй операнд | 3 / 4.75 |
% | Модуль | Расчет остатка при делите первого на второй операнд | 7 % 4 |
// | Целочисленное разделение, напольное разделение | Разделение первого операнда на второй операнд и закругление результата до следующего целого числа | 8 // 3 |
** | Экспонент | Поднимая первый операнд на силу второго операнда | 2 ** 3 |
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.