如何在数学测验中一次问一个问题

2024-04-26 00:13:17 发布

您现在位置:Python中文网/ 问答频道 /正文

这将生成一个随机数字和运算符的随机数学测验。我如何让它一次打印一个问题,如果他们得到正确的答案,将其添加到分数中

score = 0

for i in range(10):
   ops=['+','-','*','//']
   num1 = random.randint(1,20)
   num2 = random.randint(1,20)
   if ops == '+':
       answer=num1+num2
   elif ops == '-':
       answer = num1-num2
   elif ops == '*':
       answer = num1*num2  
   elif ops == "//":
       answer == num1//num2
   print(num1,ops[random.randint(0,3)],num2,'=')
         

Tags: 答案answerinfor运算符数字数学random
1条回答
网友
1楼 · 发布于 2024-04-26 00:13:17

这是您的代码的固定版本。你犯了好几个错误

  • 您需要选择一个操作符(我在这里使用random.choice

  • answer == num1//num2需要一个简单的=

  • 您可以使用input请求用户输入

import random
n = 10
score = 0
for i in range(n):
   ops=['+','-','*','//']
   num1 = random.randint(1,20)
   num2 = random.randint(1,20)
   op = random.choice(ops)
   if op == '+':
       answer = num1+num2
   elif op == '-':
       answer = num1-num2
   elif op == '*':
       answer = num1*num2
   elif op == "//":
       answer = num1//num2
   try:
       test = int(input(f'{num1} {op} {num2} = '))
   except ValueError:
       print('invalid input')
       continue
   if answer == test:
       print('correct!')
       score += 1
   else:
       print(f'wrong, the answer was: {answer}')
print(f'you scored {score}/{n}')

相关问题 更多 >