我的代码有一个问题,由于某些原因,"result“有时会返回一些奇怪的数字,这是没有意义的。有没有更好的方法来做这件事?
import random
number1 = random.randint(1,9)
operator = random.choice(r"+-*")
number2 = random.randint(1,9)
x1 = random.randint(1,9)
print(x1)
result = eval(str(number1)*int(x1) + operator + str(number2)*int(x1))
answer = x1
print("solve for x: {}x {} {}x = {}".format(number1, operator, number2, result))
print(number1*x1,operator,number2*x1,"=",result)
发布于 2019-02-28 04:14:49
import random
number1 = random.randint(1,9)
operator = random.choice(r"+-*")
number2 = random.randint(1,9)
x1 = random.randint(1,9)
print(x1)
result = eval(str(number1*x1) + operator + str(number2*x1))
answer = x1
print("solve for x: {}x {} {}x = {}".format(number1, operator, number2, result))
print(number1*x1,operator,number2*x1,"=",result)
我认为,它不起作用的原因是eval
将所有东西都解释为字符串,并试图给出答案。在上面的代码中,我简单地将eval
中的所有内容的类型都更改为string。
点击此处阅读更多信息:On Eval
发布于 2019-02-28 04:16:56
而不是做
result = eval(str(number1)*int(x1) + operator + str(number2)*int(x1))
我会这么做的
result = eval(str(number1*x1) + str(operator) + str(number2*x1))
https://stackoverflow.com/questions/54913517
复制相似问题