1
resposta

[Projeto] Resolução

Sei que o exercício poderia ser muito mais simples que isso, mas aproveitei logo para tentar implementar todas as validações que eu consegui pensar.

from statistics import mean

def calcular_media(notas: list[float]) -> float:
    """Calcula a média aritmética de uma lista de notas."""
    if not notas:
        return 0.0
    media_das_notas = mean(notas)
    return media_das_notas

def receber_notas(mensagem: str) -> float:
    """Solicita e valida a entrada de uma nota do usuário."""
    while True:
        try:
            nota = float(input(mensagem))
            if 0 <= nota <= 10:
                return nota
            else:
                print('Digite uma nota entre 0 e 10.')
        except ValueError:
            print('Digite um valor numérico válido.')

def exibir_situacao(media: float):
    """Exibe a situação do aluno com base na sua média final."""
    if media >= 7:
        print(f'Aprovado com média {media:.1f}')
    elif media >= 5:
        print(f'Recuperação com média {media:.1f}')
    else:
        print(f'Reprovado com média {media:.1f}')

def main():
    """Função principal que realiza a execução do programa."""
    notas = []

    while True:
        try:
            numero_de_notas = int(input('Digite o número de notas que deseja inserir: '))
            if numero_de_notas > 0:
                break
            else:
                print('Digite um número maior que zero.')
        except ValueError:
            print('Digite um número inteiro válido')

    for i in range(numero_de_notas):
        notas.append(receber_notas(f'Digite a {i + 1}ª nota: '))

    media = calcular_media(notas)

    exibir_situacao(media)

if __name__ == '__main__':
    main()

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Boa tarde, Pedro! Tudo bem?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções para organizar a lógica do programa, utilizou muito bem o tratamento de exceções para garantir entradas válidas do usuário e ainda compreendeu a importância do encapsulamento da lógica principal na função main() para tornar o código mais estruturado e reutilizável.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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