W3docs

Сложение двух чисел

Как сложить два числа в Python: оператор +, sum() и functools.reduce(). Целые числа, числа с плавающей точкой и преобразование ввода.

Сложение двух чисел — одна из первых арифметических операций, которую нужно освоить в Python. Python поддерживает несколько подходов: обычный оператор + для простейших случаев, встроенная функция sum() при работе с коллекцией и functools.reduce() для кода в функциональном стиле. На этой странице рассмотрены все три варианта, а также важный шаг — преобразование пользовательского ввода в числовой тип перед сложением.

Метод 1: Оператор +

Оператор сложения + — самый прямой способ сложить два числа. Он работает с целыми числами, числами с плавающей точкой и комплексными числами.

python— editable, runs on the server

Тот же оператор работает с числами с плавающей точкой без каких-либо изменений:

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() складывает все элементы итерируемого объекта (например, списка или кортежа). Это подходящий инструмент, когда нужно сложить более двух чисел.

python— editable, runs on the server

sum() также принимает необязательный аргумент start, который прибавляется к результату:

total = sum([1, 2, 3], 10)   # 10 + 1 + 2 + 3
print(total)                  # Output: 16

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

Метод 4: functools.reduce()

reduce() из модуля functools последовательно применяет функцию с двумя аргументами ко всем элементам последовательности, сводя её к одному значению. Для простого сложения sum() нагляднее, однако reduce() незаменим, когда функция объединения сложнее, чем +.

python— editable, runs on the server

Вместо именованной функции можно передать 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()
Was this page helpful?