誰說使用Python你就寫不出混亂的代碼?

碼頭工人 13年前發布 | 16K 次閱讀 Python

本文是從 Penrose Tiling in Obfuscated Python這篇文章翻譯而來

誰說使用Python你就寫不出混亂的代碼?

下面這段Python代碼是用來生成一些彭羅斯鋪磚圖案的。不錯,這是段可運行的Python代碼:

誰說使用Python你就寫不出混亂的代碼?

當這段代碼運行時,它會產生一個1000×1000的png格式的彭羅斯鋪磚圖案,里面包含有大概2212個具有3D浮雕效果的彭羅斯鋪磚圖。下圖是這個圖片的一部分:

誰說使用Python你就寫不出混亂的代碼?

這個腳本需要Pycairo代碼庫。它只能運行在 Python <= 2.7 版本上;Phthon 3并不支持。最初它是一個很正常的腳本,但經過我的努力,出現了神奇的視覺效果。

彭羅斯鋪磚法是個很神奇的東西,它的圖案呈不規則周期狀分布——你移動角度后都找不到再次重合的圖案。它由羅杰·彭羅斯(Sir Roger Penrose)經過無數次的五邊形鋪拼試驗而成。

相對于C和Perl,Python很少被認為是一種容易產生混亂的代碼的語言。似乎從來沒有人挑戰過這種觀點,網上也很少找到混亂的Python代碼的例子:你可以在Phthon官方問答區里和像 這里這里 的一些頁面中發現一些。這還有一個在PyCon 2011大會上的談話

我相信這是第一個能輸出高分辨率圖片的混亂的Python代碼。如果你還知道一些其它的,請在評論中分享出來!

來自: 外刊IT評論

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!