在Python中生成随机数学问题

时间:2017-10-04 17:45:13

标签: python

我需要创建一个生成10个随机数学问题的python程序。它应该生成两个随机数和一个运算符。到目前为止,这是我的代码:

from random import *

score = 0
def math():
    num1 = randint(1, 10)
    num2 = randint(1, 10)
    symbol = randint(1,3)

    if symbol == 1:
        question = input("What is " + str(num1) + "+" + str(num2) + "?")
        answer = num1 + num2
        if question == answer:
            score = score + 1

    elif symbol == 2:
        question = input("What is " + str(num1) + "-" + str(num2) + "?")
        answer = num1 - num2
        if question == answer:
            score = score + 1

    elif symbol == 3:
        question = input("What is " + str(num1) + "*" + str(num2) + "?")
        answer = num1 * num2
        if question == answer:
            score = score + 1

for i in range(10):
    math()

print("Your score was " + str(score))

代码有效并且没有语法错误,但它将所有问题都标记为错误。

提前致谢。

3 个答案:

答案 0 :(得分:0)

假设您使用的是Python 3,input会返回一个字符串。因此,将变量question转换为int(或适合您的任何数值数据类型)。即更改以下所有实例:

question = input(...)

为:

question = int(input(...))

此外,使用global score开始您的功能。

答案 1 :(得分:0)

按照上面的建议将int()放在input()周围,它会产生另一个错误,即你在分数得分时,得分不是函数中的变量。

为避免这种情况,请添加

global score
在分配之前,在函数内

。例如:

...
def math()
    global score
    num1 = randint(1,10)
    ...

答案 2 :(得分:0)

在放了全局分数之后,最终分数仍然为零。

import { ApolloProvider } from '@apollo/react-hooks';
import ApolloClient from 'apollo-boost';

export const createApolloClient = () => {
    return new ApolloClient({
        uri: 'http://localhost/headless-cms/admin/',
        fetchOptions: {
            mode: 'no-cors',
        },
    });
}

export default CreateApolloClient;