3
respostas

Dúvida sobre questão 5 da aula 2

O meu código e o código da resolução da aula da questão 5 estão dando o mesmo erro:

notas = []
for i in range(1,6):
  nota = float(input(f"Digite a {i}ª nota: "))
  notas.append(nota)
def media(lista):
  lista.remove(max(lista))
  lista.remove(min(lista))
  return sum(lista) / len(lista)
media = media(notas)
print(f"Nota da manobra: {round(media, 1)}") 

O problema aparentemente está no código lista.remove() e está dando o seguinte erro:

TypeError: 'int' object is not callable
3 respostas

Oi boa noite!!

faltou um ) na seguinte linha, no final:

return sum(lista) / len(lista)

aqui rodou com notas 1, 2, 3, 4, 5, obtive 3.0

mesmo com o ) depois de lista continua sem funcionar aqui para mim, não sei o porque

Você está usando Jupyter notebook ou Google Colab ?

Você nomeou uma função de media() e uma variável com mesmo nome, se você atribuir um valor à média em outra célula (media = 0 p/ exemplo), vai dar esse erro mesmo pois o 'media' deixou de ser função e virou variável,

Esse erro também se dá quando vc nomeia variáveis com mesmo nome de funções built-ins (sum = 0, ou max = 10.0),

Veja abaixo, tente rodar numa única célula o que eu fiz, vai dar o mesmo erro :

notas = []
for i in range(1,6):
    nota = float(input(f"Digite a {i}ª nota: "))
    notas.append(nota)

def media(lista):
    lista.remove(max(lista))
    lista.remove(min(lista))
    return sum(lista) / len(lista)

media = 0

media = media(notas)  # vai dar erro aqui, pois uma variável int não é função
print(f"Nota da manobra: {round(media, 1)}")

Minha sugestão é não repetir os nomes, troque o nome da função, p/ exemplo

def calc_media(lista):