Fiz essa solução tentando buscar loops para entradas erradas de usuário. Senti o código com muitas repetições, algumas dicas para melhora-lo?
lista_de_notas = []
def escolhe_nota():
continuar = ''
while True:
try:
nota = float(input('Digite sua nota (0 - 100): '))
if 0 <= nota <= 100:
lista_de_notas.append(nota)
continuar = input('Quer continuar? [S/N]: ').upper().strip()[0]
while continuar not in 'SN':
continuar = input('Entrada inválida. Digite apenas [S/N]: ').upper().strip()[0]
if continuar == 'N':
break
elif continuar == 'S':
continue
else:
print('Nota não adicionada, fora do limite (0-100).')
except ValueError:
print('Entrada Inválida. Digite um número entre 0 a 100')
except IndexError:
continuar = input('Digite [N] para sair: ').upper().strip()[0]
def exibir_resultado():
lista_em_ordem = sorted(lista_de_notas)
media = sum(lista_em_ordem) / len(lista_em_ordem)
print(f'\nEsta é a lista de notas em ordem: {lista_em_ordem}')
print(f'E esta é a média das notas {media:.2f}')
escolhe_nota()
exibir_resultado()