首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python eval()乘法不正确

Python eval()乘法不正确
EN

Stack Overflow用户
提问于 2019-02-28 03:56:52
回答 2查看 423关注 0票数 -5

我的代码有一个问题,由于某些原因,"result“有时会返回一些奇怪的数字,这是没有意义的。有没有更好的方法来做这件事?

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

发布于 2019-02-28 04:14:49

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2019-02-28 04:16:56

而不是做

代码语言:javascript
复制
result = eval(str(number1)*int(x1) + operator + str(number2)*int(x1))

我会这么做的

代码语言:javascript
复制
result = eval(str(number1*x1) + str(operator) + str(number2*x1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54913517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档