• Python
  • Projetos
  • Projetos passados
  • Projeto Individual 2 2022-2
  • Sorteia Questão Inédita

Sorteia Questão Inédita#

Antes de fazer este exercício é recomendado ter feito os exercícios:

Construa uma função que recebe, nesta ordem:

  • um dicionário de questões organizado em níveis;
  • um nível, representado por uma string, do qual deseja-se sortear uma questão;
  • uma lista de questões já sorteadas. Cada elemento da lista é um dicionário (uma questão).

Sorteie e retorne uma questão inédita do nível solicitado, ou seja, uma questão que ainda não tenha sido sorteada.

Ao encontrar uma questão inédia, antes de retornar, você deve adicioná-la à lista de questões já sorteadas.

Dica 1

Na solução, copie e utilize a função do exercício Sorteia Questão.

Exemplo:#

  • Entradas:
questoes = {
    "facil": [
      {
        "titulo": "Qual o resultado da operação 57 + 32?",
        "nivel": "facil",
        "opcoes": {
          "A": "-19",
          "B": "85",
          "C": "89",
          "D": "99"
        },
        "correta": "C"
      },
      {
        "titulo": "Qual destes parques não se localiza em São Paulo?!",
        "nivel": "facil",
        "opcoes": {
          "A": "Ibirapuera",
          "B": "Parque do Carmo",
          "C": "Parque Villa Lobos",
          "D": "Morro da Urca"
        },
        "correta": "D"
      },
      {
        "titulo": "Qual destas não é uma linguagem de programação?",
        "nivel": "facil",
        "opcoes": {
          "A": "Miratdes",
          "B": "Python",
          "C": "Lua",
          "D": "C++"
        },
        "correta": "A"
      },
      {
        "titulo": "Dentre os listados, qual destes esportes é menos praticado no Brasil?",
        "nivel": "facil",
        "opcoes": {
          "A": "Natação",
          "B": "Vôlei",
          "C": "Ski Cross Country",
          "D": "Natação"
        },
        "correta": "C"
      }
    ],
    "medio": [
      {
        "titulo": "Qual destes números é primo?",
        "nivel": "medio",
        "opcoes": {
          "A": "259",
          "B": "85",
          "C": "49",
          "D": "19"
        },
        "correta": "D"
      },
      {
        "titulo": "Na Conjectura de _______, escolhendo-se um número natural inicial n, onde n > 0, os seguintes critérios serão obedecidos: Se n for par o seu sucessor será a metade e se n for ímpar o seu sucessor será o triplo mais um, gerando então um novo número. Qual o nome da conjectura?",
        "nivel": "medio",
        "opcoes": {
          "A": "Collatz",
          "B": "Goldbach",
          "C": "Poincaré",
          "D": "Hodge"
        },
        "correta": "A"
      },
      {
        "titulo": "Qual a segunda pessoa mais seguida no Instagram?",
        "nivel": "medio",
        "opcoes": {
          "A": "Cristiano Ronaldo",
          "B": "Dwayne Johnson",
          "C": "Kim Kardashian",
          "D": "Kylie Jenner"
        },
        "correta": "D"
      }
    ],
    "dificil": [
      {
        "titulo": "A reprodução dos seres vivos é um processo biológico através do qual os organismos geram descendência. Qual desta não é uma forma de reprodução assexuada?",
        "nivel": "dificil",
        "opcoes": {
          "A": "Autogamia",
          "B": "Esporulação",
          "C": "Partenogênese",
          "D": "Divisão binária"
        },
        "correta": "A"
      },
      {
        "titulo": "Qual o resultado da operação 5 + 2 * 3 ^ 2, onde ^ representa potenciação?",
        "nivel": "dificil",
        "opcoes": {
          "A": "441",
          "B": "86",
          "C": "Nenhuma das outras respostas",
          "D": "23"
        },
        "correta": "D"
      }
    ]
}

nivel = "medio"

questoes_sorteadas = [
  {
    "titulo": "Qual destes parques não se localiza em São Paulo?!",
    "nivel": "facil",
    "opcoes": {
      "A": "Ibirapuera",
      "B": "Parque do Carmo",
      "C": "Parque Villa Lobos",
      "D": "Morro da Urca"
    },
    "correta": "D"
  },
  {
    "titulo": "Qual o resultado da operação 57 + 32?",
    "nivel": "facil",
    "opcoes": {
      "A": "-19",
      "B": "85",
      "C": "89",
      "D": "99"
    },
    "correta": "C"
  },
  {
    "titulo": "Qual destes números é primo?",
    "nivel": "medio",
    "opcoes": {
      "A": "259",
      "B": "85",
      "C": "49",
      "D": "19"
    },
    "correta": "D"
  }
]

print(sorteia_questao_inedita(questoes, nivel, questoes_sorteadas))
  • Saída:
    {
      "titulo": "Qual a segunda pessoa mais seguida no Instagram?",
      "nivel": "medio",
      "opcoes": {
        "A": "Cristiano Ronaldo",
        "B": "Dwayne Johnson",
        "C": "Kim Kardashian",
        "D": "Kylie Jenner"
      },
      "correta": "D"
    }
    

Sua função deve se chamar sorteia_questao_inedita.