Сложение двух чисел
Как сложить два числа в Python: оператор +, sum() и functools.reduce(). Целые числа, числа с плавающей точкой и преобразование ввода.
Сложение двух чисел — одна из первых арифметических операций, которую нужно освоить в Python. Python поддерживает несколько подходов: обычный оператор + для простейших случаев, встроенная функция sum() при работе с коллекцией и functools.reduce() для кода в функциональном стиле. На этой странице рассмотрены все три варианта, а также важный шаг — преобразование пользовательского ввода в числовой тип перед сложением.
Метод 1: Оператор +
Оператор сложения + — самый прямой способ сложить два числа. Он работает с целыми числами, числами с плавающей точкой и комплексными числами.
Тот же оператор работает с числами с плавающей точкой без каких-либо изменений:
x = 3.5
y = 1.2
print(x + y) # Output: 4.7Совет по именованию переменных: избегайте называть переменную sum — это перекрывает встроенную функцию Python sum() и может вызвать трудноуловимые ошибки в коде.
Метод 2: Сложение чисел из пользовательского ввода
Когда пользователь вводит число, Python получает его как string. Перед арифметическими операциями необходимо преобразовать его в целое число с помощью int() или в число с плавающей точкой с помощью float(). Подробное объяснение преобразования типов см. в разделе Python Casting.
a = int(input("Enter first number: "))
b = int(input("Enter second number: "))
result = a + b
print("The sum is:", result)Если ввод может содержать десятичные дроби, используйте float() вместо int():
a = float(input("Enter first number: "))
b = float(input("Enter second number: "))
print("The sum is:", a + b)Метод 3: Встроенная функция sum()
Встроенная функция Python sum() складывает все элементы итерируемого объекта (например, списка или кортежа). Это подходящий инструмент, когда нужно сложить более двух чисел.
sum() также принимает необязательный аргумент start, который прибавляется к результату:
total = sum([1, 2, 3], 10) # 10 + 1 + 2 + 3
print(total) # Output: 16Это удобно, когда нужно накапливать значение в промежуточной сумме.
Метод 4: functools.reduce()
reduce() из модуля functools последовательно применяет функцию с двумя аргументами ко всем элементам последовательности, сводя её к одному значению. Для простого сложения sum() нагляднее, однако reduce() незаменим, когда функция объединения сложнее, чем +.
Вместо именованной функции можно передать lambda:
from functools import reduce
total = reduce(lambda x, y: x + y, [10, 20, 30, 40, 50])
print(total) # Output: 150Выбор подходящего метода
| Ситуация | Рекомендуемый подход |
|---|---|
| Сложение двух известных значений | Оператор + |
| Чтение чисел с клавиатуры | int() / float(), затем + |
| Суммирование списка или кортежа | sum() |
| Применение пользовательской функции объединения | functools.reduce() |
Связанные темы
- Python Variables — как хранить и именовать значения
- Python Operators — полный справочник по арифметическим, сравнительным и логическим операторам
- Python Numbers — целые числа, числа с плавающей точкой и комплексные числа
- Python Casting — преобразование типов с помощью
int(),float()иstr() - Python User Input — чтение значений с клавиатуры с помощью
input()