分组 if-else 语句然后执行随机集合

Group if-else statement then execute a random set

我正在制作一个程序,该程序将生成一个随机的琐事测验,其中每个问题都包含 if-else 语句和变量。需要知道如何使用 import random 对每个集合进行分组并每次生成一个随机集合,或者如果有其他方法可以建议我。

我的代码:

c1 = 0
c2 = 0
while(1):
  quiz1 = print("What is Prosciutto?")
  q = input().lower()
  if ("italian" in q) or ("dry" in q) or ("ham" in q):
    print("Correct!")
    c1 +=1
  else:
    print("Not quiet right, Prosciutto is Italian dry-cured ham")
    c2 +=1
  input("Press Enter to continue...")
  quiz2 = print("What is the capital of the US state of Alabama?")
  q = input().lower()
  if "montgomery" in q:
    print("Correct!")
    c1 +=1
  else:
    print("Nope, Montgomery, it is.")
    c2 +=1
  input("Press Enter to continue...")
  quiz3 = print("Which planet spins on a nearly horizontal axis?")
  q = input().lower()
  if "uranus" in q:
    print("Correct!")
    c1 +=1
  else:
    print("Actually it is Uranus!")
    c2 +=1
  input("Press Enter to continue...")
  quiz4 = print("Who invented writing?")
  q = input().lower()
  if "sumerian" in q:
    print("Correct!")
    c1 +=1
  else:
    print("Nope, the Sumerians invented writing")
    c2 +=1
  input("Press Enter to continue...")
  quiz5 = print("What rapper was born Marshall Bruce Mathers III?")
  q = input().lower()
  if "eminem" in q:
    print("Correct!")
    c1 +=1
  else:
    print("He's Eminem")
    c2 +=1
  input("Trivia ended, Press Enter to view your result...")
  break
print("You've made", c1, "corrects answers and ", c2, "wrong answers")

用 key = question 和 value = answers 创建一个字典,同时列出所有问题。然后导入 random 和 randint 一个介于 0 和 len(question_list) 之间的数字,并向用户显示该问题 - 并检查他的答案是否是字典中的值,其中键是给定的问题。就在我的头顶

首先分解出经常出现的 "ask a question and check answer" 模式:

def handle(question, answer, err):
    print(question)
    a = input().lower()
    if a in answer:
        print("Correct!")
        return True
    else:
        print(err)
        return False

然后定义你的 questions/answers/err :

QUIZZES = [
    ("What is Prosciutto?", ("italian","cured","dryed","ham"), "Not quiet right, Prosciutto is Italian dry-cured ham"),
    ("What is the capital of the US state of Alabama?", ("montgomery",), "Nope, Montgomery, it is."),
    # etc
    ]

然后你只需要一个 main 函数来 运行 整个事情:

def main():
    good = 0
    wrong = 0   
    for question, answers, err in QUIZZES:
        ok = handle(question, answers, err)
        if ok:
            good += 1
        else:
            wrong += 1
    input("Trivia ended, Press Enter to view your result...")
    print("You've made {} corrects answers and  {} wrong answers".format(good, wrong))

一旦你在那里,添加随机化只​​是在 QUIZZES...

上调用 random.choice() 的问题