1
resposta

[Projeto] Questão 9

Desenvolva um programa que informa a nota de um(a) aluno(a) de acordo com suas respostas. Ele deve pedir a resposta desse(a) aluno(a) para cada questão e é preciso verificar se a resposta foi igual ao gabarito. Cada questão vale um ponto e existem as alternativas A, B, C ou D.

prova = {'01': '', '02': '', '03': '', '04': '', '05': '', '06': '', '07': '', '08': '', '09': '', '10': ''}

for questao in prova.keys():
  resposta = input(f'Resposta da questão {questao}: ')
  prova[questao] = resposta

prova

gabarito = {'01': 'D', '02': 'A', '03': 'C', '04': 'B', '05': 'A', '06': 'D', '07': 'C', '08': 'C', '09': 'A', '10': 'B'}

nota = 0
for res in prova.keys():
  if prova[res] in gabarito[res]:
    nota += 1
print(f'Nota final: {nota}')
1 resposta

Oi, Sara! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

O fluxo do seu programa está no caminho certo, mas o ponto de atenção é o uso de in na comparação. Isso pode gerar resultados incorretos, porque in verifica se um caractere existe dentro de outro. Para comparar respostas de forma direta, use ==, como no exemplo do instrutor.

# Inicializamos os dados
respostas = [] # Lista para receber as respostas
# Lista de gabaritos
gabarito = ['D', 'A', 'C', 'B', 'A', 'D', 'C', 'C', 'A', 'B']
nota = 0 # Irá acumular a nota total

# Recebemos as respostas do aluno
for i in range(0, 10):
  respostas.append(input(f'Insira a resposta da questão {i + 1}: ').upper())

# Verificamos se as respostas são iguais e adicionamos à nota
for i in range(0,10):
  if respostas[i] == gabarito[i]:
    nota += 1

# Exibindo nota final
print(f'Nota final: {nota}')

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!