1
resposta

fiz uma questao mas não entedi o porque mudou

#teste
numeros = [5,12,20,15]
media = (numeros[0]*1) + (numeros[1]*2) + (numeros[2]*3) + (numeros[3]*4) / 10

print(media)
#11
numeros = [5,12,20,15]
media = ((numeros[0]*1) + (numeros[1]*2) + (numeros[2]*3)) + (numeros[3]*4) / 10

print(media)

o uso parênteses é para dar prioridade então por que no primeiro codigo deu um valor e no segundo deu outro?

Obrigado! aguardo pela resposta

1 resposta

Olá Renan, tudo bem?

O seu código não deu o resultado esperado porque você está fazendo a divisão antes de somar todos os termos ponderados.

numeros = [5, 12, 20, 15]
media = (numeros[0]*1) + (numeros[1]*2) + (numeros[2]*3) + (numeros[3]*4) / 10
print(media)

Neste código, a divisão por 10 está sendo aplicada apenas ao último termo (numeros[3]*4), e não à soma total dos produtos ponderados. Para corrigir isso, você precisa usar parênteses para garantir que a soma de todos os termos ponderados seja calculada antes da divisão. Note que no seu segundo código você quase chegou lá, apenas deve realocar um dos parânteses para após o (numeros[3]*4) . O código correto deve ser:

numeros = [5,12,20,15]
media = ((numeros[0]*1) + (numeros[1]*2) + (numeros[2]*3) + (numeros[3]*4)) / 10

print(media)

Acima engobei a multiplicação de cada número pelo seu respectivo peso em um único numerador antes da divisão.

Espero ter esclarecido.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!