谁说不能用Python写出让人迷惑的代码?
admin
2023-07-31 00:48:11
0

这里是显示彭罗斯点阵的Python的脚本。是的,这是可以运行的有效Phython代码。

译注:彭罗斯点阵,物理学术语。上世纪70年代英国数学家彭罗斯第一次提出了这个概念,称为彭罗斯点阵(Pen-rose tiles)。

123456789101112131415161718192021222324252627282930 _                                 =\\                                \”\”\”if!                              1:\”e,V=100                            0,(0j-1)**-.2;                           v,S=.5/  V.real,                         [(0,0,4      *e,4*e*                       V)];w=1          -v\”def!                      E(T,A,              B,C):P                  ,Q,R=B*w+                A*v,B*w+C            *v,A*w+B*v;retur              n[(1,Q,C,A),(1,P     ,Q,B),(0,Q,P,A)]*T+[(0,C            ,R,B),(1,R,C,A)]*(1-T)\”for!i!in!_[:11]:S       =sum([E          (*x)for       !x!in!S],[])\”imp  ort!cair               o!as!O;      s=O.Ima               geSurfac   e(1,e,e)               ;c=O.Con  text(s);               M,L,G=c.     move_to                ,c.line_to,c.s                et_sour       ce_rgb                a\”def!z(f,a)                :f(-a.        imag,a.       real-e-e)\”for!T,A,B,C!in[i       !for!i!          in!S!if!i[\”\”\”;exec(reduce(lambda x,i:x.replace(chr           (i),\”\\n \”[34i:]),   range(   35),_+\”\”\”0]]:z(M,A             );z(L,B);z         (L,C);         c.close_pa             th()\”G             (.4,.3             ,1);c.             paint(             );G(.7             ,.7,1)             ;c.fil             l()\”fo             r!i!in             !range             (9):\”!             g=1-i/             8;d=i/          4*g;G(d,d,d,          1-g*.8             )\”!def     !y(f,a):z(f,a+(1+2j)*(     1j**(i             /2.))*g)\”!for!T,A,B,C!in!S:y(M,C);y(L,A);y(M             ,A);y(L,B)\”!c.st            roke()\”s.write_t             o_png(\’pen                        rose.png\’)             \”\”\”                                       ))

当这个程序运行时,它输出了一个1000×1000的图像文件,包含大约2212个由3D立体效应渲染的彭罗斯点阵。这里是该图像的一部分(点击放大)。

运行该脚本需要Pycairo。它只在Python它是标准的Python脚本,但我努力想把它变得更简洁,于是我又从中删减了一些。

编注:Pycairo是一组Python版本的Cario图形库。

彭罗斯点阵很酷,因为它们非周期性地覆盖了整个平面——图片的转换副本与原型从来不会一致。它们是由Roger Penrose先生通过将五边形的平面平铺在一起的一系列尝试而发明的。

与C或Perl相比,Python并不是让人迷惑的编程语言。这种比较似乎也从未发生,而且在网上也没有多少让人费解的Python的例子:你可以在官方的Python常见问题中或各种网页如这里和这里找到一些例子。在2011年的PyCon对此还有专题讨论。

我相信输出一个高分辨率的图像是第一个让人费解的Python程序。如果你知道其它的例子,可以在评论中告诉我。

 

翻译:伯乐在线 – 张秀君

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...