2

次の小さなプログラムは、Python 3.8 を使用すると失敗しますが、2.7 では問題ありません。

from mpmath import mpf, nsum

def z(n):
    x = [mpf(1) for k in range(1,n)]
    return 99

print (nsum(z, [2,2]))

かなり大きなプログラムから切り捨てられているため、コードは奇妙に見えます。これ以上切り詰めることはできません。これは、 https://www.python.org/shell/のインタラクティブ シェルを使用して簡単に確認できます。

エラーレポートは次のとおりです。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/site-packages/mpmath/calculus/extrapolation.py", line 1698, in nsum
    return +g()
  File "/usr/lib/python3.8/site-packages/mpmath/calculus/extrapolation.py", line 1745, in <lambda>
    return False, lambda: f(*([0]*len(intervals)))
  File "/usr/lib/python3.8/site-packages/mpmath/calculus/extrapolation.py", line 1777, in g
    s += f(*args)
  File "<stdin>", line 2, in z
TypeError: 'mpf' object cannot be interpreted as an integer

明らかな何かを見逃しましたか?

4

1 に答える 1