veusz绘制mandelbrot集
Python2到Python3的问题修复
本文测试veusz绘制2D图形的能力,于是在官方网站下载了mandelbrot的经典例子:mandelbrot.vsz,
但是官方的例子是以python2构建的,而本文希望切换到python3解决问题。由于语法的兼容,需要做出少许修改:
- 指明
python2可以直接运行程序,但不是目前我想要的。 print函数,在python2中不需要加括号,但是python3中需要加括号,即print "hello world"→print ("hello world")python2中使用xrange函数,在python3中已经取消,合并到range函数。所以需要修改:xrange()→range()- 错误:
TypeError: ‘float‘ object cannot be interpreted as an integer. 造成错误的原因是range里面使用了小数,所以解决方法有两个:python2中的/只保留整数部分,是int型。在python3中的/的结果是真正意义上的除法,得到的是一个小数,所以是float型,所以改用python3中的//得到一个整数,则问题解决。即:/→//- 如果不想任何改变仍要使用
range的功能,则可以使用numpy中提供的arange,即1
2for i in numpy.arange(0.0, 4.1, 0.8)
print(i)
Python3下的mandelbrot.vsz
1 | # Veusz script (version 0.7 or later) |
运行结果