我实现了真与假测验,每个主题中多个问题,加上输入和结果的聚集验证一个完整的例子,我希望这可以是一个很好的例子
animals_questions = 'Animals Questions'
capitals_questions = 'Capitals Questions'
math_questions = 'Math Questions'
questions = [animals_questions, capitals_questions, math_questions]
quiz = {animals_questions: [("All lionesses in a pride", True),
("Another animals question", False),
("Last animals question", False)],
capitals_questions: [("Cairo is the capital city of Egypt", True),
("Another capitals question", True),
("Last capitals question", False)],
math_questions: [("20 is log 100 for base 1o", False),
("Another math question", True),
("Last math question", False)]
}
result = {"Correct": 0, "Incorrect": 0}
def get_quiz_choice():
while True:
try:
quiz_number = int(raw_input(
'Choose the quiz you like\n1 for {}\n2 for {}\n3 for {}\nYour choice:'.format(animals_questions,
capitals_questions,
math_questions)))
except ValueError:
print "Not a number, please try again\n"
else:
if 0 >= quiz_number or quiz_number > len(quiz):
print "Invalid value, please try again\n"
else:
return quiz_number
def get_answer(question, correct_answer):
while True:
try:
print "Q: {}".format(question)
answer = int(raw_input("1 for True\n0 for False\nYour answer: "))
except ValueError:
print "Not a number, please try again\n"
else:
if answer is not 0 and answer is not 1:
print "Invalid value, please try again\n"
elif bool(answer) is correct_answer:
result["Correct"] += 1
return True
else:
result["Incorrect"] += 1
return False
choice = get_quiz_choice()
quiz_name = questions[choice - 1]
print "\nYou chose the {}\n".format(quiz_name)
quiz_questions = quiz[quiz_name]
for q in (quiz_questions):
print "Your answer is: {}\n".format(str(get_answer(q[0], q[1])))
的输出是一样的东西:
/usr/bin/python /Users/arefaey/workspace/playground/python/Quiz/quiz.py
Choose the quiz you like
1 for Animals Questions
2 for Capitals Questions
3 for Math Questions
Your choice: 2
You chose the Capitals Questions
Q: Cairo is the capital city of Egypt
1 for True
0 for False
Your answer: 1
Your answer is: True
Q: Another capitals question
1 for True
0 for False
Your answer: 1
Your answer is: True
Q: Last capitals question
1 for True
0 for False
Your answer: 1
Your answer is: False
You have finished the quiz with score: {'Incorrect': 1, 'Correct': 2}
的所有代码首先是(无犯罪)都乱作一团,一个你完全无视':'S,不要使用普通的'input'除非必要或者您在Python 3。此外,请解释你将如何进行测验,字符串格式,问题和答案列表,字典,服务器等。你没有真正提供足够的信息来回答你的问题。也欢迎堆栈溢出! – tox123 2014-11-07 01:53:36
@Carar你能否在 – Montaro 2014-11-07 12:14:21