Автор оригинала: Chris.
Python предоставляет оператор дополнения +
добавить два объекта. Семантика добавления зависит от типов данных операндов. Например, добавление двух целых чисел выполнять арифметическое добавление, тогда как добавление двух списков выполняет конкатенацию списка. Конкретное возвращаемое значение оператора дополнения определяется в типах данных « __add __ ()
магический метод.
Посмотрите на следующие примеры!
Примеры
Оператор + на целочисленных операндах дает еще одно целое – математическая сумма обеих операндов:
>>> 2 + 2 4 >>> 2 + 3 5 >>> -99 + (-1) -100
Если хотя бы один из операндов – это значение поплавка, результат также является поплавком, является инфекционным!
>>> 2.0 + 1 3.0 >>> 1 + 2.2 3.2 >>> 2.0 + 40.0 42.0
Можем ли мы добавить строки? Конечно! Результатом является новая строка из приклеивания второй строки к первому. Это называется строковым конкатенацией:
>>> 'learn' + ' python' 'learn python' >>> 'fi' + 'nxter' 'finxter'
Если операнды являются списками, результатом операции сложения является еще одним списком. Он создает новый список с элементами первого списка плюс элементы второго списка. Оригинальные списки остаются неизменными.
>>> [1, 2] + [3, 4] [1, 2, 3, 4] >>> l1 = ['alice'] >>> l2 = ['ann', 'bob'] >>> l1 + l2 ['alice', 'ann', 'bob'] >>> l1 ['alice'] >>> l2 ['ann', 'bob'] >>>
Что если два операнда имеют несовместимый тип данных, в отличие от поплавков и целых чисел? Например, если вы попытаетесь добавить строку в список?
>>> 'hello' + ['world'] Traceback (most recent call last): File "", line 1, in 'hello' + ['world'] TypeError: can only concatenate str (not "list") to str
Результат несовместимого добавления является Типеррор
Отказ Вы можете исправить его, используя только совместимые типы данных для операции сложения.
Можете ли вы использовать дополнение Оператор на пользовательских объектах? Да!
Магический метод добавления Python
Чтобы использовать оператор дополнения на пользовательских объектах, вам необходимо определить __add __ ()
Дундер Метод, который занимает два аргумента: Я
и Другое
и возвращает результат Я + Другое
Отказ Чтобы получить результат для пользовательского объекта, вы можете использовать атрибуты (данные), поддерживаемые в этом объекте.
В следующем коде вы добавляете две корзины вместе, объединяя их содержимое:
class Basket: def __init__(self, contents): self.contents = contents def __add__(self, other): return Basket(self.contents + other.contents) my_basket = Basket(['banana', 'apple', 'juice']) your_basket = Basket(['bred', 'butter']) our_basket = my_basket + your_basket print(our_basket.contents)
Выход этого фрагмента кода является комбинированной корзиной:
['banana', 'apple', 'juice', 'bred', 'butter']
Код состоит из следующих шагов:
- Создать класс
Корзина
Это содержит содержимое списка для хранения некоторых товаров. - Определите магический метод
__add__
Это создает новую корзину, объединяя список товаров (содержимое
) с двух операндов. Обратите внимание, что мы полагаемся на уже реализованный оператор дополнения в списках, то есть Список конкатенации , чтобы на самом деле реализовать оператор дополнения для корзин. - Мы создаем две корзины
My_Basket
а такжеyour_basket
и добавьте их вместе к новой корзинеour_basket
используя определенную операцию добавления.
Программа добавления Python с пользовательским вводом
Чтобы создать простую программу дополнения в Python, принимая ввод пользователя и добавление вместе с указанными номерами, вы можете использовать следующие четыре шага:
- Получите ввод пользователя в виде строки с помощью встроенного
вход ()
Функция и хранить результат в переменныхnum_1
иnum_2
Отказ - Преобразовать входы пользователей строки к численным типам, используя, например,
int ()
илипоплавок ()
конструкторы. - Добавьте численные значения, используя оператор дополнения
num_1 + num_2
Отказ - Распечатайте результат к оболочке Python.
Вот эти четыре шага в Python код:
# Python addition 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. Adding numbers result = num_1 + num_2 # 4. Display the result print(num_1, '+', num_2, '=', result)
Вот пример выполнения кода, где я помещаю в целые числа 40 и 2, и рассчитал сумму как с использованием оператора добавления:
First number: 40 Second number: 2 40 + 2 = 42
Сторирование оператора добавления Python
Вы можете связать вместе два оператора добавления. Например, выражение х + y + z сначала добавит вместе х
и уход
а затем добавьте Z к полученному объекту. Таким образом, это семантически идентично ( (x + y) + z) Отказ
Вот минимальный пример:
>>> x = 10 >>> y = 5 >>> z = 2 >>> x + y + z 17 >>> ((x + y) + z) 17
Арифметические операторы
Арифметические операторы – синтаксические ярлыки для выполнения основных математических операций по номерам.
Оператор | Имя | Описание | Пример |
+ | Добавление | Расчет суммы двух операндов | 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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.
Оригинал: “https://blog.finxter.com/python-addition-operator/”