【发布时间】:2021-01-27 07:23:55
【问题描述】:
我正在尝试为数值积分器编写程序。省略所有我知道我正确的步骤,这是我没有工作的步骤:
fcn = str(input("Enter your function in terms of x: "))
a = eval(input('Enter a: '))
b = eval(input('Enter b: '))
N = 10
for i in range(1,N):
x = str(fcn.find('x'))
height = eval(fcn.replace(x,str(i)))
height += height
但是,这不会生成正确的高度。例如,如果我有: fcn 是 x, a 为 1, b 是 10, N为10; 而不是得到高度是 1,2,3,4,5,6,7,8,9,10 ...我得到 00,00,00,00,00,00,00,00,00,00。
我是 Python 的初学者。我知道我的代码中有很多 eval 和 str 函数,但这只是为了纠正 Python 不断给我的错误。
【问题讨论】:
-
如果您只使用
eval来纠正其他错误,那么解决这些错误可能是最好的做法。 -
.find()返回找到字符串的索引。因此,如果您的字符串是“x”并且您正在寻找“x”,它将返回零。 -
请提供预期的MRE。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。您发布的程序挂起等待输入。不要指望我们提供测试数据:只需将您的
input替换为引发问题的测试用例即可。 -
@Prune - OP 确实提供了输入和预期输出......当然,它可能更容易阅读。
标签: python replace str-replace numerical-integration