在网上看到一个数学题,整数 33 能否用三个整数的立方和表示。正好刚开始学 Python,就写了个小程序:
import sys
max=sys.maxint
min=-sys.maxint-1
for x in xrange(min,max):
for y in xrange(min,max):
for z in xrange(min,max):
if x**3+y**3+z**3==33:
print "x=",x
print "y=",y
print "z=",z
简单粗暴,就是不停地尝试。
但在运行时,提示:OverflowError: xrange() result has too many items
按照书上的说法,xrange 每次循环只会产生一个对象,应该不会这样。range 每次都是先生成所有的数据,所以容易出现这个问题,而且性能也不好。
以上是 python2 程序。
(因为书上提到 python3 中的 range 和 python2 中的 xrange 相同,所以把程序换成了 python3,现在正在运行)