如何在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回答的问题。我想知道是否有一种更简单的方法来用随机数字进行数学测验,因此您不必创建每个问题。
答
可以动态生成类似这样的问题:
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? ")
在您的测验只有三件事情被改变,他们是num1
和num2
其结果改变answer
。这意味着您可以重新使用其他所有内容并随机生成num1
和num2
。
如果这是您认为可以改进的**工作代码**,请参阅[codereview.se]。你绝对可以简化它,并且绝对会产生随机问题。 – jonrsharpe
你显然是在学习,所以可能给你的解决方案会比伤害更多。所以只是指出一个方向:为什么没有问题和答案的列表呢? –
提示@ tomasz-plaskota给你的答案是清理这一吨的关键。 – Jeff