0

我正在尝试构建一个程序,该程序将整数 n 作为输入,然后询问 n 个个位数的加法问题。要添加的数字应从 [0,9] 范围内随机选择(即 0 到 9 包括在内)。用户将在提示时输入答案。该功能应打印正确答案的“正确”和错误答案的“不正确”。在 n 个问题之后,该函数应打印正确答案的数量。

>>>add(2)
8 + 2 =
Enter answer: 10
correct.
8 + 4 =
Enter answer: 5
Incorrect.
You got 1 correct answer out of 2

到目前为止我得到的代码是:

import random

def game(n):
    dig1 = random.randrange(0,10)
    dig2 = random.randrange(0,10)
    for i in range(n):
        print (dig1, '+', dig2, '=')
        answer = eval(input('Enter Answer: '))
        if answer == dig1 + dig2:
            print ('Correct.')
        else:
            print ('Incorrect.')
4

2 回答 2

0

我添加了请求的统计逻辑并修复了与 Martijn 指出的相同的循环问题

import random 

def game(n):
    rights = 0 
    for z in xrange(n):
        dig1 = random.randrange(0,10)
        dig2 = random.randrange(0,10)
        print (dig1, '+', dig2, '=')
        answer = input ('Enter Answer: ')
        if answer == dig1 + dig2:
            print ('Correct')
        else:
            rights += 1
            print ('Incorrect')

    print "You got {rights} right in {n} tries".format(rights=rights, n=n)
于 2013-05-23T18:48:14.633 回答
0

您需要在每个循环中创建新的随机数字:

def game(n):
    for i in range(n):
        dig1 = random.randrange(0,10)
        dig2 = random.randrange(0,10)
        print (dig1, '+', dig2, '=')
        answer = eval(input('Enter Answer: '))
        if answer == dig1 + dig2:
            print ('Correct.')
        else:
            print ('Incorrect.')
于 2013-05-23T18:41:15.257 回答