1
resposta

Minha solução para o organizador de notas

def ordena_lista(lista: list) -> list:
    """Função que recebe uma lista e retorna a mesma
    lista com os elementos ordenados do menor para o 
    maior.
    Paramêtro:
        lista (list): Uma lista.
    Retorno:
        lista (list): A mesma lista com os elementos 
        ordenados do menor para o maior.
    """
    try:
        if lista == []:
            raise ValueError
        else:
            lista.sort()
            return lista
    except ValueError:
        print("A lista não pode estar vazia.")
        
def apresenta_notas(lista: list) -> None:
    """Função que recebe uma lista de notas e 
    apresenta o índice e cada nota, linha a linha.
    Paramêtro:
        lista (list): A lista de notas.
    Retorno:
        None
    """
    if lista is None:
        print("Não há notas para exibir")
    else:
        for indice, nota in enumerate(lista, start=1):
            print(f"{indice}: Nota {nota}")

if __name__ == "__main__":
    lista1 = [85, 70, 90, 60, 75]
    lista_ordenada = ordena_lista(lista1)
    apresenta_notas(lista_ordenada)
1 resposta

Oii, Gabriel!

É muito bom ver como você foi além do exercício proposto, aplicando conceitos de funções, tratamento de exceções e documentação com docstrings. Isso demonstra um cuidado especial com a organização e a legibilidade do código.

Sua solução está muito bem estruturada. A separação entre a lógica de ordenação e a lógica de exibição é uma excelente prática, pois deixa cada função com uma responsabilidade única.

  • O uso do try...except com raise ValueError para verificar se a lista está vazia ajuda a evitar que o programa prossiga sem dados válidos.
  • O uso de comentários estruturados para explicar parâmetros e retornos é fundamental em projetos maiores e colaborativos.
  • Na função apresenta_notas, você utilizou o enumerate(lista, start=1), o que é ideal para exibir rankings ou listas numeradas de forma limpa.

Vale lembrar que o método lista.sort() altera a lista original permanentemente (in-place). Se em algum momento você precisasse manter a lista original intacta e gerar uma nova versão ordenada, poderia usar a função sorted(lista).

# Exemplo de sorted que não altera a original
nova_lista = sorted(lista1)

Parabéns pelo excelente trabalho e pela organização do código. É visível que você está se preocupando com a qualidade do software, não apenas com o resultado final.

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