如何在python 2中使用随机数字编写数学测验?

问题描述:

最好的数学测验我目前是:如何在python 2中使用随机数字编写数学测验?

answer = '' 
while not (answer == '75'): 
answer = raw_input('What is 5 x 15? ') 
if answer == '75': 
    print ' ' 
    print 'You are correct' 

    answer1 = '' 
    while not (answer1 == '72'): 
     answer1 = raw_input('What is 8 x 9? ') 
     if answer1 == '72': 
      print ' ' 
      print 'You are correct' 

      answer2 = ' ' 
      while not (answer2 == '0'): 
       answer2 = raw_input('What is 5 x 0? ') 
       if answer2 == '0': 
        print' ' 
        print'You are correct' 

        answer3 = '' 
        while not (answer3 == '18'): 
         answer3 = raw_input('what is 6 x 3? ') 
         if answer3 == '18': 
          print '' 
          print 'You are correct' 
         else: 
          print 'You are incorrect' 
       else: 
        print'You are incorrect' 
     else: 
      print 'You are incorrect' 
      continue 
else: 
    print 'You are incorrect' 
    continue 

对我来说,至少,它认为这个代码是太长只有4回答的问题。我想知道是否有一种更简单的方法来用随机数字进行数学测验,因此您不必创建每个问题。

+1

如果这是您认为可以改进的**工作代码**,请参阅[codereview.se]。你绝对可以简化它,并且绝对会产生随机问题。 – jonrsharpe

+2

你显然是在学习,所以可能给你的解决方案会比伤害更多。所以只是指出一个方向:为什么没有问题和答案的列表呢? –

+0

提示@ tomasz-plaskota给你的答案是清理这一吨的关键。 – Jeff

可以动态生成类似这样的问题:

from random import randint 
q = '' 
while not q.capitalize() == 'N': 
    num1 = randint(0, 100) 
    num2 = randint(0, 100) 
    answer = input("What is " + str(num1) + " x " + str(num2) + " ? ") 
    if answer == (num1 * num2): 
     print "Correct" 
    else: 
     print "Incorrect" 

    q = raw_input("Do you want to continue: Y/N? ") 

在您的测验只有三件事情被改变,他们是num1num2其结果改变answer。这意味着您可以重新使用其他所有内容并随机生成num1num2