Calcular a média aritmética é uma das operações matemáticas mais úteis para quem está aprendendo programação. Em Python, você pode realizar esse cálculo usando funções nativas, como sum() e len(), ou utilizar o módulo statistics, que já faz parte da biblioteca padrão da linguagem.
Neste tutorial, você aprenderá como calcular a média em Python, organizar o código com funções, receber números digitados pelo usuário e tratar erros comuns. Também veremos exemplos práticos com notas de alunos e despesas mensais.
O que é a média aritmética?
A média aritmética é calculada somando todos os valores de um conjunto e dividindo o resultado pela quantidade de valores.
Imagine que um aluno recebeu as seguintes notas:
notas = [7, 8, 9, 10]
Para calcular a média, primeiro somamos as notas:
7 + 8 + 9 + 10 = 34
Em seguida, dividimos o total pela quantidade de notas, que é quatro:
34 / 4 = 8,5
Portanto, a média aritmética dessas notas é 8,5.
Em Python, podemos implementar essa operação de diferentes maneiras. Vamos começar utilizando duas funções bastante comuns: sum() e len().
Como calcular a média usando sum() e len()

As funções sum() e len() permitem calcular a média de uma lista de números sem precisar somar cada elemento manualmente.
A função sum() retorna a soma dos valores de um iterável numérico. Já len() retorna a quantidade de elementos de uma sequência, como uma lista.
Veja um exemplo:
numeros = [7, 8, 9, 10]
total = sum(numeros)
quantidade = len(numeros)
media = total / quantidade
print(f"A média é {media}")
A saída será:
A média é 8.5
Vamos entender cada parte do código.
-
numeros: armazena os valores em uma lista. -
sum(numeros): soma todos os números e retorna34. -
len(numeros): conta os elementos da lista e retorna4. -
total / quantidade: divide a soma pela quantidade de valores. -
print(): apresenta o resultado na tela.
Também podemos escrever o cálculo de maneira mais compacta:
numeros = [7, 8, 9, 10]
media = sum(numeros) / len(numeros)
print(f"A média é {media}")
As duas versões produzem o mesmo resultado.
A primeira, porém, deixa mais explícitas as etapas do cálculo. Para quem está aprendendo a organizar o código, utilizar variáveis como total e quantidade pode facilitar a leitura e a depuração do programa.
Atenção: se a lista estiver vazia, len(numeros) retornará zero. Nesse caso, a divisão provocará um ZeroDivisionError. Por isso, precisamos verificar se existem valores antes de calcular a média.
Como calcular a média usando o módulo statistics
Python também oferece o módulo statistics, que reúne funções estatísticas prontas para uso.
Para calcular a média aritmética, podemos utilizar statistics.mean().
Veja o exemplo:
import statistics
numeros = [7, 8, 9, 10]
media = statistics.mean(numeros)
print(f"A média é {media}")
A saída será:
A média é 8.5
Observe a primeira linha:
import statistics
Ela importa o módulo que contém a função responsável pelo cálculo.
Depois, utilizamos:
statistics.mean(numeros)
A função recebe a lista e retorna a média aritmética dos valores.
Também podemos importar apenas a função de que precisamos:
from statistics import mean
numeros = [7, 8, 9, 10]
media = mean(numeros)
print(f"A média é {media}")
Nesse caso, não precisamos escrever statistics.mean(). Basta chamar mean() diretamente.
Qual método utilizar?
Os dois métodos são úteis, mas atendem a necessidades ligeiramente diferentes.
| Método | Quando utilizar |
|---|---|
sum() e len() |
Quando você quer compreender ou implementar diretamente o cálculo. |
statistics.mean() |
Quando deseja utilizar uma função pronta para calcular a média. |
A função statistics.mean() faz parte da biblioteca padrão do Python. Portanto, não é necessário instalar bibliotecas externas para utilizá-la.
Para conhecer os detalhes de funcionamento, consulte a documentação oficial do módulo statistics.
Como calcular a média de uma lista de números
Até aqui, utilizamos listas cujos valores já estavam definidos no código. Entretanto, em um programa real, os números podem ser informados pelo usuário.
Uma boa maneira de organizar esse tipo de operação é criar uma função que receba uma lista e retorne a média calculada.
Veja uma implementação simples:
def calcular_media(numeros):
return sum(numeros) / len(numeros)
notas = [7, 8, 9, 10]
media = calcular_media(notas)
print(f"A média é {media}")
O resultado será:
A média é 8.5
Vamos analisar a função:
def calcular_media(numeros):
return sum(numeros) / len(numeros)
A palavra-chave def inicia a definição de uma função. O parâmetro numeros recebe a lista que será utilizada no cálculo.
A instrução return devolve o resultado para o trecho do programa que chamou a função.
Isso permite reutilizar o mesmo cálculo com diferentes conjuntos de dados:
notas = [7, 8, 9, 10]
despesas = [100, 150, 200]
print(calcular_media(notas))
print(calcular_media(despesas))
A primeira chamada calcula a média das notas. A segunda calcula a média das despesas.
A função não precisa ser reescrita para cada situação. Basta fornecer uma lista diferente.
Essa separação é importante porque permite reaproveitar a lógica do cálculo em diferentes partes do programa.
Como lidar com listas vazias e valores inválidos

Um programa que calcula médias precisa considerar situações em que os dados recebidos não são válidos.
Dois problemas comuns são tentar calcular a média de uma lista vazia e receber um texto quando o programa espera um número.
1. Evitar a divisão por zero
Considere a seguinte função:
def calcular_media(numeros):
return sum(numeros) / len(numeros)
Ela funciona quando a lista contém números, mas falha quando recebe uma lista vazia:
numeros = []
media = calcular_media(numeros)
Como a quantidade de elementos é zero, o Python não consegue realizar a divisão.
Podemos resolver esse problema verificando a lista antes do cálculo:
def calcular_media(numeros):
if not numeros:
raise ValueError("A lista não pode estar vazia.")
return sum(numeros) / len(numeros)
A expressão if not numeros verifica se a lista está vazia.
Se estiver, raise ValueError() interrompe a operação e informa que os dados fornecidos não são adequados para o cálculo.
Essa abordagem é útil quando queremos que a função de cálculo rejeite explicitamente uma entrada inválida.
2. Converter entradas para números
A função input() recebe informações digitadas pelo usuário, mas retorna uma string, ou seja, um texto.
Por exemplo:
numero = input("Digite um número: ")
Mesmo que o usuário digite 8, o valor recebido será o texto "8".
Para realizar operações matemáticas, precisamos converter esse texto para um tipo numérico. A função float() permite fazer essa conversão:
numero = float(input("Digite um número: "))
Assim, o valor poderá ser utilizado em cálculos com números inteiros ou decimais.
Entretanto, se o usuário digitar algo como abc, a conversão provocará um ValueError.
Podemos tratar esse erro utilizando try e except:
try:
numero = float(input("Digite um número: "))
print(f"Número informado: {numero}")
except ValueError:
print("Entrada inválida. Digite um número válido.")
O bloco try contém a operação que pode falhar. Se a conversão gerar um ValueError, o bloco except será executado e apresentará uma mensagem mais clara.
Para aprofundar esse assunto, consulte a documentação oficial sobre erros e exceções do Python.
Exemplos práticos com notas de alunos e despesas mensais
Agora que conhecemos o cálculo, as funções e o tratamento de erros, podemos aplicar esses conceitos em situações cotidianas.
Exemplo 1: calcular a média das notas de um aluno
Imagine um programa que recebe as notas de um aluno e calcula a média.
Podemos separar a coleta dos dados da função responsável pelo cálculo.
def calcular_media(numeros):
if not numeros:
raise ValueError("Informe pelo menos uma nota.")
return sum(numeros) / len(numeros)
notas = [7, 8, 9, 10]
media = calcular_media(notas)
print(f"Média do aluno: {media:.2f}")
A saída será:
Média do aluno: 8.50
O formato :.2f apresenta o resultado com duas casas decimais.
Essa função pode ser utilizada para calcular médias de diferentes alunos sem duplicar a lógica do cálculo.
Exemplo 2: calcular a média das despesas mensais
O mesmo raciocínio pode ser utilizado para analisar gastos.
Imagine que uma pessoa registrou as seguintes despesas:
despesas = [120.50, 89.90, 150.00]
media = calcular_media(despesas)
print(f"Despesa média: R$ {media:.2f}")
A saída será:
Despesa média: R$ 120.13
Nesse exemplo, calculamos a média aritmética de três valores. Isso não significa que o resultado represente necessariamente o gasto de todos os meses do ano, mas sim a média dos valores informados.
O exemplo demonstra como uma mesma função pode ser reutilizada em contextos diferentes, desde que os dados representem valores numéricos adequados ao cálculo.
Como organizar o código com funções separadas
Quando um programa começa a receber dados do usuário, validar entradas e executar cálculos, colocar tudo em um único bloco pode dificultar a compreensão.
Uma alternativa é separar o programa em funções com responsabilidades específicas.
Neste exemplo, utilizaremos três funções:
-
coletar_numeros(): solicita a quantidade de números e recebe os valores. -
calcular_media(): verifica a lista e calcula a média. -
main(): coordena a execução e apresenta o resultado.
Veja o programa completo:
def coletar_numeros():
while True:
try:
quantidade = int(
input("Quantos números deseja informar? ")
)
if quantidade <= 0:
print("Informe uma quantidade maior que zero.")
continue
break
except ValueError:
print("Digite uma quantidade inteira válida.")
numeros = []
for i in range(quantidade):
while True:
try:
numero = float(
input(f"Digite o {i + 1}º número: ")
)
numeros.append(numero)
break
except ValueError:
print("Entrada inválida. Digite um número válido.")
return numeros
def calcular_media(numeros):
if not numeros:
raise ValueError("A lista não pode estar vazia.")
return sum(numeros) / len(numeros)
def main():
numeros = coletar_numeros()
media = calcular_media(numeros)
print(f"A média dos números é {media:.2f}")
if __name__ == "__main__":
main()
Como esse programa funciona?
1. A função coletar_numeros() recebe a quantidade de valores.
A instrução input() solicita a quantidade de números, e int() converte a entrada para um número inteiro.
O bloco try/except trata entradas que não podem ser convertidas para inteiro. A condição quantidade <= 0 impede que o programa prossiga com uma quantidade inválida.
2. O programa solicita cada número.
O laço for repete a solicitação pela quantidade informada.
Cada entrada é convertida com float() e adicionada à lista por meio de append(). Se o usuário digitar um valor inválido, o programa apresenta uma mensagem e solicita o mesmo número novamente.
3. A função calcular_media() realiza o cálculo.
Essa função recebe a lista pronta e verifica se ela está vazia antes de realizar a divisão.
A coleta de dados fica separada da regra matemática, o que facilita a reutilização e a manutenção do código.
4. A função main() organiza a execução.
A função principal chama primeiro a coleta dos números e depois o cálculo da média.
Essa organização torna mais fácil identificar onde cada tarefa acontece.
5. O bloco de execução protege a chamada principal.
A condição:
if __name__ == "__main__":
main()
faz com que main() seja executada quando o arquivo é iniciado diretamente. Isso também facilita importar as funções em outro arquivo sem executar automaticamente o programa principal.
Como fica a execução?
Uma execução possível seria:
Quantos números deseja informar? 3
Digite o 1º número: 7
Digite o 2º número: 8
Digite o 3º número: 9
A média dos números é 8.00
O programa recebe os valores, armazena-os em uma lista e calcula a média.
Esse é um exemplo de como organizar um código que já realiza uma operação matemática em uma estrutura mais clara, reutilizável e fácil de ampliar.
Conclusão
Calcular a média em Python é uma boa oportunidade para praticar listas, funções, variáveis e tratamento de erros.
Com sum() e len(), você consegue implementar o cálculo diretamente. Com statistics.mean(), pode utilizar uma função pronta da biblioteca padrão.
Ao receber números com input(), é importante converter os valores para um tipo numérico e tratar entradas inválidas. Também é necessário impedir que o cálculo seja executado com uma lista vazia.
Mais do que conhecer a fórmula, aprender a separar a coleta de dados, o cálculo e a execução do programa ajuda a criar códigos mais organizados e fáceis de manter.
Quer aprender a organizar melhor seus programas e reutilizar funções? Continue estudando com nosso tutorial sobre Funções em Python: exemplos.