Para a opção de calcular a nota de recuperação, eu usei o método usado em muitas faculdades, inclusive na minha, para os casos de recuperação, onde a menor nota é substituída pela nota da prova de recuperação, se a nota da prova de recuperação for menor que a menor nota das provas, a nota da prova de recuperação não é validada_
OBS: Saí dessa atividade com a clara evidência das possibilidades de conseguir a aprovação de qualquer matéria, caso fique de recuperação :')
provas_aplicadas = int(input("Quantas atividades para nota, incluindo provas, foram aplicadas? "))
banco_notas = []
for indice in range(provas_aplicadas):
nota = float(input(f"Qual a nota da {indice+1}° atividade do(a): "))
banco_notas.append(nota)
soma_notas = 0
for nota in banco_notas:
soma_notas += nota
media = soma_notas/provas_aplicadas
if media >= 7:
print(f"Média final: {media:.2f}\nSituação: Aluno aprovado(a)")
elif media < 7 and media > 5:
print(f"Média final: {media:.2f}\nSituação: Aluno em recuperação")
nota_recuperacao = float(input("Qual a nota da atividade de recuperação: "))
banco_ordenado = sorted(banco_notas)
if nota_recuperacao < banco_ordenado[0]:
print(f"Média final: {media:.2f}\nSituação: Aluno reprovado(a)")
else:
banco_ordenado[0] = nota_recuperacao
soma_notas = 0
for nota in banco_ordenado:
soma_notas += nota
media = soma_notas/provas_aplicadas
if media >= 7:
print(f"Média final: {media:.2f}\nSituação: Aluno aprovado(a)")
else:
print(f"Média final: {media:.2f}\nSituação: Aluno reprovado(a)")
else:
print(f"Média final: {media:.2f}\nSituação: Aluno reprovado(a)")