Ela é tão fera, que é professora tanto de Português e Inglês.
Mas ela tem uma turma muito grande, e dá muito trabalho ficar somando e dividindo por 2, pois geralmente fica número quebrado no meio.
Vamos ajudar sua tia?
Crie um script que pede a nota de Português e a de Inglês, e forneça a média das duas notas.
Sua tia. Sim, sua tia toca baixo, qual o problema ? |
Calculando Média em Python
Vamos criar a variável 'port', para a notar de Português e armazenar um número float nela, através das funções float() e input().Depois, fazemos o mesmo para a variável 'ing', de Inglês.
Por fim, somamos as duas e dividimos por 2. O resultado dessa operação, armazenamos na variável 'media' e simplesmente damos um print mostrando a média.
Digite e teste o código abaixo:
# Pedindo as notas port = float( input("Digite a nota de Português, tia: ") ) ing = float( input("Tia, agora a de Inglês: ") ) # Cálculo da média media = port + ing / 2 print("A média desse estudante foi: ",media)
Vamos ver o resultado dando uma nota 8 e uma 10 (logo a média deve dar 9):
Peraí!!!!! Média 13 ???
O que foi isso que aconteceu? Que tiro foi esse, viado ???
Calma, por incrível que pareça, este resultado está correto.
Sim, correto. Mas do ponto de vista do Python. Do seu, que quer calcular uma média, tá errado...e o grande culpado dessa confusão é um sujeito chamado "Precedência de operadores".
![]() |
Sua tia ficou chateada com o bug no seu programa |
Precedência de operadores em Python
Quanto dá: 1 + 1 * 2 ?Alguém pode pensar: 1 + 1 * 2 = 1 + 2 = 3
Outro pode fazer: 1 + 1 * 2 = 2 * 2 = 4
E aí, qual o certo?
Pra não haver essa confusão, o Python tem uma regra, sobre qual operação fazer primeiro.
Na ordem de importância, maior pra menor:
- Exponenciação: **
- Multiplicação, divisão e resto da divisão: * / %
- Adição e subtração: + -
Tem exponenciação? Não, ok.
Tem multiplicação, divisão ou resto da divisão? Sim, tem multiplicação. Então multiplica primeiro 1 * 2 = 2
Só depois faz a soma: 1 + 2 = 3
Parêntesis pra evitar confusão
Vamos rever nosso código da média:media = port + ing / 2
Huuum! Taí o erro! Primeiro ocorre a divisão da nota de inglês por 2.
Mas, na verdade, a gente queria que a soma ocorresse antes, só depois divide tudo por 2.
Uma maneira de resolver isso é simplesmente colocando parêntesis, pra deixar bem claro o que deve ser feito.
Assim, o correto seria:
# Pedindo as notas port = float( input("Digite a nota de Português, tia: ") ) ing = float( input("Tia, agora a de Inglês: ") ) # Cálculo da média media = (port + ing) / 2 print("A média desse estudante foi: ",media)
Aaaaaagora sim! Vai dar direitinho!
![]() |
Agora sua tia ficou feliz! |
Exercício: Média e Precedência
Devido a crise que está ocorrendo no Brasil, demitiram o professor de Matemática.E adivinhe para quem sobrou? Claro, pra sua tia.
Agora ela vai dar aula de Matemática também.
Faça um programa em Python que receba as notas de Português, Inglês e Matemática de um aluno, e em seguida forneça a média aritmética dessas notas.
Não se esqueça de usar parêntesis no cálculo da média, para não ter problemas de precedência de operadores.
Digite o código no seu script nos comentários.
![]() |
Cara da sua tia quando você disser que é profissional Python e não trabalha mais de graça! Vai ter que pagar tia, preciso custear minha mansão e minha BMW adora que sou programador Python |
math =float(input('Tia coloque a note de matematica: '))
ResponderExcluirport =float(input('Tia coloque a nota de portugues: '))
ingl =float(input('Tia coloque a nota de ingles: '))
media =(math+port+ingl)/3
print('A média desse aluno é:',media)
Abaixo ainda coloquei um if para ela ter a resposta se o aluno foi aprovado ou não no cursinho
port = float(input("Nota de Português: "))
ResponderExcluiring = float(input("Nota de Inglês: "))
mat = float(input("Nota de Matemática: "))
# Cálculo da média
media = (port + ing + mat) / 3
print("A média desse estudante foi: ",media)
portN1 = float(input('Insira a primeira nota de Português: '))
ResponderExcluiringN2 = float(input('Insira a segunda nota de Inglês: '))
matN3 = float(input('Insira a segunda nota de Matemática: '))
print ('A média das notas: ', (portN1 + ingN2 + matN3)/3)
mat = float(input("digite a nota de matematica:"))
ResponderExcluirpor = float(input("digite a nota de portguês:"))
ing = float(input("digite a nota de inglês:"))
media = (por + ing + mat) /3
print("A MEDIA DO ALUNO FOI: {:.2f}".format(media)
valeu eu ja havia esquecido a ordem de precedência
ResponderExcluir# calcula a média
ResponderExcluirportugues = float(input('Qual a nota da diciplina Português? '))
matematica = float(input('Qual a nota da diciplina Matemática? '))
# media = (portugues + matematica) / 2
# print(media)
print('Média final: %.2f' % ((portugues + matematica) / 2))
Pessoal, preciso de um programa que calcule a média de um conjunto de números. O programa tem que perguntar a quantidade de números no início, depois pegar eles e no final imprimir o resultado.
ResponderExcluirPensei nesse esboço:
n = int(input('Qual a quantidade de números?'))
d = float(input('Digite um número: '))
print(' A sequência de números: {} e a média é {}' )
mas não sei desenvolver, alguém habilitado para ajudar?
média ponderada python me ajuda
ResponderExcluirport = float(input("Digite sua nota de portugues\n"))
ResponderExcluiring = float(input("Digite a sua nota de ingles\n"))
math = float(input("Digite a sua nota de matematica"))
print("A sua media é de: ", (math+port+ing)/3)