Somar Dois Números
Aprenda a somar dois números em Python com o operador +, sum() e functools.reduce(). Inclui inteiros, floats e conversão de entrada do usuário.
Somar dois números é uma das primeiras operações aritméticas que você precisa entender em Python. Python suporta várias abordagens: o operador + simples para os casos mais diretos, a função embutida sum() quando se trabalha com uma coleção, e functools.reduce() para código em estilo funcional. Esta página cobre os três métodos, além do passo importante de converter a entrada do usuário para um tipo numérico antes de somar.
Método 1: Usando o Operador +
O operador de adição + é a forma mais direta de somar dois números. Funciona com inteiros, floats e números complexos.
O mesmo operador funciona com floats sem nenhuma alteração:
x = 3.5
y = 1.2
print(x + y) # Output: 4.7Dica sobre nomes de variáveis: evite nomear uma variável sum — isso oculta a função embutida sum() do Python e pode causar bugs confusos mais adiante no seu código.
Método 2: Somando Números da Entrada do Usuário
Quando um usuário digita um número, Python o recebe como uma string. Você deve convertê-lo para um inteiro com int() ou para um número de ponto flutuante com float() antes de realizar operações aritméticas. Veja Python Casting para uma explicação completa sobre conversão de tipos.
a = int(input("Enter first number: "))
b = int(input("Enter second number: "))
result = a + b
print("The sum is:", result)Se a entrada puder conter decimais, use float() em vez de int():
a = float(input("Enter first number: "))
b = float(input("Enter second number: "))
print("The sum is:", a + b)Método 3: Usando a Função Embutida sum()
A função embutida sum() do Python soma todos os itens em um iterável (como uma lista ou tupla). É a ferramenta certa quando você tem mais de dois números para somar.
sum() também aceita um argumento opcional start, que é adicionado ao resultado:
total = sum([1, 2, 3], 10) # 10 + 1 + 2 + 3
print(total) # Output: 16Isso é útil quando você deseja acumular em um total acumulado.
Método 4: Usando functools.reduce()
reduce() do módulo functools aplica repetidamente uma função de dois argumentos sobre uma sequência, reduzindo-a a um único valor. Para adição simples, sum() é mais claro, mas reduce() é valioso quando a função de combinação é mais complexa do que +.
Você também pode passar uma lambda em vez de uma função nomeada:
from functools import reduce
total = reduce(lambda x, y: x + y, [10, 20, 30, 40, 50])
print(total) # Output: 150Escolhendo a Abordagem Correta
| Situação | Abordagem recomendada |
|---|---|
| Somar dois valores conhecidos | operador + |
| Ler números do teclado | int() / float() e depois + |
| Somar uma lista ou tupla | sum() |
| Aplicar uma função de combinação personalizada | functools.reduce() |
Tópicos Relacionados
- Python Variables — como armazenar e nomear valores
- Python Operators — referência completa de operadores aritméticos, de comparação e lógicos
- Python Numbers — inteiros, floats e números complexos explicados
- Python Casting — conversão entre tipos com
int(),float()estr() - Python User Input — lendo valores do teclado com
input()