试着做一个测验

时间:2014-09-18 00:10:57

标签: python count

所以我试图在python3上运行一个程序,用随机数询问基本的加法问题。我已经让程序运行了,我想知道是否有一种方法可以计算"正确"的出现次数。和"错误"所以我可以给参加测验的人一些关于他们如何做的反馈。

import random

num_ques=int(input('Enter Number of Questions:'))
while(num_ques < 1):
   num_ques=int(input('Enter Positive Number of Questions:'))

   for i in range(0, (num_ques)):
      a=random.randint(1,100) 
      b=random.randint(1,100) 
      answer=int(input(str(a) + '+' + str(b) + '='))
      sum=a+b
      if (answer==sum):
        print ('Correct')
      else:
        print ('Wrong.')

2 个答案:

答案 0 :(得分:0)

您可以使用dict存储每种类型的计数,在遇到每种类型时递增它们,然后在打印出计数后再访问它。

这样的事情:

import random

stats = {'correct': 0, 'wrong': 0}

num_ques=int(input('Enter Number of Questions:'))
while(num_ques < 1):
   num_ques=int(input('Enter Positive Number of Questions:'))

   for i in range(0, (num_ques)):
      a=random.randint(1,100) 
      b=random.randint(1,100) 
      answer=int(input(str(a) + '+' + str(b) + '='))
      sum=a+b
      if (answer==sum):
        print ('Correct')
        stats['correct'] += 1
      else:
        print ('Wrong.')
        stats['wrong'] += 1


print "results: {0} correct, {1} wrong".format(stats['correct'], stats['wrong'])

答案 1 :(得分:0)

import operator
import random
def ask_float(prompt):
    while True:
        try: return float(input(prompt))
        except: print("Invalid Input please enter a number")

def ask_question(*args):
    a = random.randint(1,100)
    b = random.randint(1,100)
    op = random.choice("+-/*")
    answ = {"+":operator.add,"-":operator.sub,"*":operator.mul,"/":operator.div}[op](a,b)
    return abs(answ - ask_float("%s %s %s = ?"%(a,op,b)))<0.01 

num_questions = 5
answers_correct = sum(map(ask_question,range(num_questions)))
print("You got %d/%d Correct!"%(answers_correct,num_questions))