谁说使用Python你就写不出混乱的代码?
admin 13年前
本文是从 <a href="/misc/goto?guid=4958189982597360388">Penrose Tiling in Obfuscated Python</a>这篇文章翻译而来 <p> 谁说使用Python你就写不出混乱的代码?</p> <p id="page-note"> 下面这段Python代码是用来生成一些<a href="/misc/goto?guid=4958189983365349446">彭罗斯铺砖</a>图案的。不错,这是段可运行的Python代码:</p> <p style="text-align:center;"><img title="谁说使用Python你就写不出混乱的代码?" border="0" alt="谁说使用Python你就写不出混乱的代码?" src="https://simg.open-open.com/show/ca754024aa5c0fd1b2a7e6657e39a74b.jpg" width="453" height="423" /></p> <p> 当这段代码运行时,它会产生一个1000×1000的png格式的彭罗斯铺砖图案,里面包含有大概2212个具有3D浮雕效果的彭罗斯铺砖图。下图是这个图片的一部分:</p> <p align="center"><img title="谁说使用Python你就写不出混乱的代码?" border="0" alt="谁说使用Python你就写不出混乱的代码?" src="https://simg.open-open.com/show/7d382ccc2cdef8cc8ef03b68f2d915ae.jpg" /></p> <p> 这个脚本需要<a href="/misc/goto?guid=4958189984113193626">Pycairo</a>代码库。它只能运行在 Python <= 2.7 版本上;Phthon 3并不支持。最初它是一个很正常的脚本,但经过我的努力,出现了神奇的视觉效果。</p> <p> 彭罗斯铺砖法是个很神奇的东西,它的图案呈不规则周期状分布——你移动角度后都找不到再次重合的图案。它由罗杰·彭罗斯(Sir Roger Penrose)经过无数次的五边形铺拼试验而成。</p> <p> 相对于C和Perl,Python很少被认为是一种容易产生混乱的代码的语言。似乎从来没有人挑战过这种观点,网上也很少找到混乱的Python代码的例子:你可以在<a href="/misc/goto?guid=4958189984839160954">Phthon官方问答区</a>里和像 <a href="/misc/goto?guid=4958189985585248731">这里</a> 和 <a href="/misc/goto?guid=4958189986326086831">这里</a> 的一些页面中发现一些。这还有一个在<a href="/misc/goto?guid=4958189987065235996">PyCon 2011大会上的谈话</a>。</p> <p> 我相信这是第一个能输出高分辨率图片的混乱的Python代码。如果你还知道一些其它的,请在评论中分享出来!<br /> <br /> 来自: <a id="link_source2" href="/misc/goto?guid=4958189987798444560" target="_blank">外刊IT评论</a><br /> </p>