繁体   English   中英

尝试进行测验

[英]Trying to Make a Quiz

所以我试图在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.')

您可以使用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'])
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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM