python是否可以用Python編寫混淆的單行程序?
小編:艷芬 365閱讀 2020.08.25
可以。通常是在lambda中嵌套lambda來實現的。請參閱以下三個來自 Ulf Bartelt 的示例代碼:
from functools import reduce
# Primes < 1000
print(list(filter(None,map(lambda y:y*reduce(lambda x,y:x*y!=0,
map(lambda x,y=y:y%x,range(2,int(pow(y,0.5)+1))),1),range(2,1000)))))
# First 10 Fibonacci numbers
print(list(map(lambda x,f=lambda x,f:(f(x-1,f)+f(x-2,f)) if x>1 else 1:
f(x,f), range(10))))
# Mandelbrot set
print((lambda Ru,Ro,Iu,Io,IM,Sx,Sy:reduce(lambda x,y:x+y,map(lambda y,
Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,Sy=Sy,L=lambda yc,Iu=Iu,Io=Io,Ru=Ru,Ro=Ro,i=IM,
Sx=Sx,Sy=Sy:reduce(lambda x,y:x+y,map(lambda x,xc=Ru,yc=yc,Ru=Ru,Ro=Ro,
i=i,Sx=Sx,F=lambda xc,yc,x,y,k,f=lambda xc,yc,x,y,k,f:(k<=0)or (x*x+y*y
>=4.0) or 1+f(xc,yc,x*x-y*y+xc,2.0*x*y+yc,k-1,f):f(xc,yc,x,y,k,f):chr(
64+F(Ru+x*(Ro-Ru)/Sx,yc,0,0,i)),range(Sx))):L(Iu+y*(Io-Iu)/Sy),range(Sy
))))(-2.1, 0.7, -1.2, 1.2, 30, 80, 24))
#? ? \___ ___/? \___ ___/? |? ?|? ?|__ lines on screen
#? ? ? ? V? ? ? ? ? V? ? ? |? ?|______ columns on screen
#? ? ? ? |? ? ? ? ? |? ? ? |__________ maximum of "iterations"
#? ? ? ? |? ? ? ? ? |_________________ range on y axis
#? ? ? ? |____________________________ range on x axis
相關推薦
- Python 爬蟲面試題 170 道:2019 版 所有題目 語言特性 1.談談對 Python 和其他語言的區別2.簡述解釋型和編譯型編程語言3.Python 的解釋器種類以及相關特點?4.說說你知道的Python3 和 Python2 之間的區別?5.Python3 和 Python2 中 int 和 long 區別?6.xrange 和 range 的區別?編碼規范 7.什么…
- 自然語言處理工具python調用hanlp中文實體識別 Hanlp作為一款重要的中文分詞工具,在GitHub的用戶量已經非常之高,應該可以看得出來大家對于hanlp這款分詞工具還是很認可的。本篇繼續分享一篇關于hanlp的使用實例即Python調用hanlp進行中文實體識別。想要在python中調用hanlp進行中文實體識別,Ubuntu 16.04…
- 3DMAX使用“材質資源管理器”的“場景”面板管理材質 要更改材質分配,請執行以下操作之一:將“材質資源管理器”的“場景”面板中材質的縮略圖或圖標(位于材質名稱的左側)拖動到視口中的某個對象上。 選擇多個對象,然后將“材質資源管理器”的“場景”面板中材質的縮略圖或圖標(位于材質名稱的左側)拖動到其…