Criando uma lista usando o comando for em python

Estou tentando resolver essa questão que não consegui, já deixei de responder várias outras similares e também não soube. Estou tentando criar um loop for para receber nomes aleatórios de alunos e suas notas e, ao término, mostra todos os nomes e notas respectivas dos alunos. Conseguir criar ainda esse:

pupils = [input('nome do aluno: ') for i in range(4)]
med = [float(input('média das notas: ')) for i in range(4)]

print(‘Aluno - Média’)
print(pupils,med)".

Porém, não tá como eu quero, pois pede antes os nomes dos alunos e depois suas notas, e da mesma forma, quando mostra o resultado das listas completa, mostra a lista das notas separadas da lista do alunos. Alguém poderia me mostrar como, usando o loop for, é possível fazer essa duas solicitações e no final, apresentar o nome de cada aluno junto com sua respectiva nota!!!

Oi existe várias formas de fazer isso, talvez a mais simples é usando dois array como você fez e usando o print(f" "), para formatar a saída!

nomes = []
notas = []

for i in range(5):
  print(f"Aluno {i+1}");
  nomes.append(input("Digite o nome: "))
  notas.append(float(input("Digite a Nota: ")))

print("Notas dos alunos")
for i in range(5):
  print(f"{nomes[i]}: {notas[i]}")
1 curtida

opa!!! obrigado, meu erro tava sendo colocar o input fora do append, tipo assim:

nomes.append() = input('nome: ')

1 curtida