Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução de Atividades - 12. Calculando a média de notas

# A profª Helena quer um programa para calcular a média de notas que ela entregar

def main():

    print ("Olá profª Helena, tudo bem? Digite as notas dos alunos para eu realizar o cálculo da média")

    lista_notas = input ("Insira aqui: ").split(", " or " e ")

    # Por ser uma string, é necessário converter a lista para floats. Foi utilizado o float()

    lista_formatada = [float (nota_individual) for nota_individual in lista_notas]

    media = sum (lista_formatada) / len (lista_formatada)

    print ("\nMédia final do aluno:", media)



if __name__ == "__main__":

    main()
1 resposta

Olá, Victor. Tudo bem por aí?

Vi que você resolveu o exercício usando list comprehension pra converter as notas, ficou uma solução enxuta e funcional. Só encontrei um ponto que vale ajuste antes de fechar essa atividade.

O .split(", " or " e "). Isso não funciona do jeito que você imaginou: o operador or em Python avalia a primeira string, e como ", " não é vazia, ela é considerada "verdadeira" e o or sempre retorna só ", ", ignorando o " e ". Então se o aluno digitar as notas separadas por " e ", o split vai falhar. O ideal é usar .split(",") e dar um .strip() em cada item pra tirar espaços extras, assim você cobre variações de digitação:

lista_notas = input("Insira aqui: ").split(",")
lista_formatada = [float(nota.strip()) for nota in lista_notas]

Você já testou o programa com entradas que tenham espaços diferentes entre as notas, tipo sem espaço depois da vírgula?

Parabéns pelo empenho, Victor. Qualquer dúvida, o fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!