• Python
  • Projetos
  • Projetos passados
  • Projeto Individual 2 2022-2
  • Valida Questão

Valida Questão#

Construa uma função que valida uma questão conforme as regras:

  • Verifique se as chaves titulo, nivel, opcoes e correta estão na questão.

    • Caso não, adicione no retorno a chave e valor conforme o exemplo {'titulo': 'nao_encontrado'}.
  • Verifique se a questão (dicionário principal) tem exatamente quatro chaves.

    • Caso não, adicione no retorno a chave e valor conforme o exemplo {'outro': 'numero_chaves_invalido'}.
  • Caso a chave titulo exista, verifique se o titulo está vazio ou contém apenas espaços / caracteres em branco.

    • Caso sim, adicione no retorno a chave e valor conforme o exemplo {'titulo': 'vazio'}.
  • Caso a chave nivel exista, verifique se o nivel contém um dos valores facil, medio ou dificil.

    • Caso não, adicione no retorno a chave e valor conforme o exemplo {'nivel': 'valor_errado'}.
  • Caso a chave opcoes exista, verifique se o valor da chave opcoes tem exatamente quatro chaves.

    • Caso não, adicione no retorno a chave e valor conforme o exemplo {'opcoes': 'tamanho_invalido'}.
  • Caso a chave opcoes exista e tenha exatamente quatro chaves em seu dicionário, verifique nas opcoes se as todas A, B, C e D existem (e nada além disso).
    • Caso não, adicione no retorno a chave e valor conforme o exemplo {'opcoes': 'chave_invalida_ou_nao_encontrada'}.
  • Caso a chave opcoes exista, tenha exatamente quatro chaves em seu dicionário e se as todas A, B, C e D existem (e nada além disso), então verifique se alguma resposta de todas as opções A, B, C e D está vazia ou contém apenas espaços / caracteres em branco.
    • Caso sim, adicione no retorno a chave e valor conforme o exemplo:

  {
    'opcoes':
      {
        'A': 'vazia',
        'C': 'vazia'
      }
  }
- Caso a chave correta exista, verifique se a resposta correta está definida como A, B, C ou D. - Caso não, adicione no retorno a chave e valor conforme o exemplo {'correta': 'valor_errado'}.

Exemplo 1:#

  • Entrada:
  • questao:

    {
      'titulo': 'Qual o resultado da operação 57 + 32?',
      'nivel': 'facil',
      'opcoes': {'A': '-19', 'B': '85', 'C': '89', 'D': '99'},
      'correta': 'C'
    }
    

  • Saída:

    {}
    

Exemplo 2:#

  • Entrada:
  • questao:

    {
      'titulo': 'Qual o resultado da operação 57 + 32?',
      'nivel': 'moleza',
      'opcoes': {'A': '  ', 'B': '85', 'C': '89', 'D': '\t'}
    }
    

  • Saída:

    {
      'correta': 'nao_encontrado',
      'outro': 'numero_chaves_invalido',
      'nivel': 'valor_errado',
      'opcoes': {'A': 'vazia', 'D': 'vazia'}
    }
    

Sua função deve se chamar valida_questao.