pi计算中的分段错误(python)
发布时间:2020-12-20 11:17:31 所属栏目:Python 来源:网络整理
导读: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个术语的任
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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |