这里_有_两_个_问题_ :_
如何迭代
如何确保不同的随机选择的变量是不同的每次通过。在
只需在现有函数上循环,或者让它递归(比如在其他几个答案中),就可以解决第一个问题(实际上,递归确实不行,因为Python没有尾部调用消除,所以它最终会耗尽堆栈)。在
要解决这两个问题,需要使随机选择的变量成为函数的局部变量,然后循环。我还修改了它,以便在出现错误答案(函数的最后一行)的情况下,它返回要打印的字符串,而不是打印它。在import sys
import os
import random
def question_asker_and_answerer():
answer_correct_message = random.choice(['Well done', 'Correct answer',
'Nice one','Thats correct!'])
answer_wrong_message = random.choice(['Unlucky','Thats wrong','Nope'])
random_num_1 = random.randint(1,10)
random_num_2 = random.randint(1,10)
q2 = input("What is " + str(random_num_1) + " + " + str(random_num_2) + "?")
if q2 == random_num_1 + random_num_2:
the_questions = True
if the_questions == True:
return (answer_correct_message)
else:
return (answer_wrong_message)
else:
the_questions = False
if the_questions == True:
return (answer_correct_message)
else:
return (answer_wrong_message)
while True:
print question_asker_and_answerer()