python - pi计算中的段错误(python)

标签 python for-loop segmentation-fault series pi

def pi(times):
    seq = []
    counter = 0
    for x in range(times):
        counter += 2
        seq.append("((%f**2)/(%f*%f))*"%(float(counter), float(counter-1), float(counter+1)))
    seq.append("1.0")
    seq = "".join(seq)
    seq = eval(seq)
    return seq*2

任何超过 85000 个术语的地方我都会遇到段错误并且 python 退出。我怎样才能避免这种情况?为什么会崩溃?难道不能使用更多内存之类的东西吗?

最佳答案

您似乎在 eval 中发现了一个错误,它无法处理非常长的表达式:

>>> eval("1.0*"*10000+"1.0")
1.0
>>> eval("1.0*"*100000+"1.0")
# segfault here

尽管如此,我还是慎重地使用了“疯狂长”这个短语。不要那样做,边走边计算。在这种情况下没有理由使用 eval

关于python - pi计算中的段错误(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5177432/

相关文章:

对 error() 的 Python C API 调用绑定(bind)到 libc 实现而不是本地实现

c++ - 函数返回期间出现奇怪的段错误

python 多行不能与/运算符一起使用

jquery - 使用 for 循环和 jquery 加载事件处理多个图像仅返回最后加载的一个 props

python - 并行 for 循环 python

java - 调用内部带有 for 循环的方法,而不更新变量

c - 为什么我有段错误?

python - Pyramid 登录和注销页面返回 404,应用程序的其余部分工作正常

python - Pandas 中将贸易数据集转换为长格式的最有效方法?

python - 寻找最繁忙时段的算法?