以下是我的代码,可以正常工作。它创建两个随机数,一个随机运算符并将它们放在一起,但是在这样做之后它不会对它们求和。我需要的是让程序将其识别为方程式,而不是简单地打印出各个变量。
所以,为了避免混淆;我的问题是:如何使用所选的任何 operator 将 firstNumber 和 secondNumber 相加,而不是简单地将它们打印在一起?
from random import choice
from random import randint
ranOperator = ["*", "/", "+", "-"]
def askQuestion():
firstNumber = randint(1,10)
secondNumber = randint(1,10)
operator = choice(ranOperator)
generateQuestion = ' '.join((str(firstNumber), operator, str(secondNumber)))
print(generateQuestion)
askQuestion()
当前输出(示例):
4 + 3
使用上面相同的数字,我希望发生什么:
7
请您参考如下方法:
一种不依赖于 eval 的方法是使用 operator 模块来表示操作。
from random import choice
from random import randint
from operator import add, sub, truediv, mul
ranOperator = [add, sub, truediv, mul]
def askQuestion():
firstNumber = randint(1,10)
secondNumber = randint(1,10)
the_operator = choice(ranOperator)
result = the_operator(firstNumber, secondNumber)
print(result)
