免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1392 | 回复: 0
打印 上一主题 下一主题

Python 有趣的例子 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-16 00:29 |只看该作者 |倒序浏览
本文转自:
http://learn.tsinghua.edu.cn:8080/2005212716/html/python.html

1 有趣的例子
1.1 看不懂
Python 的代码以可读性强著称, 不过如果你足够变态的话, 还是能够写出很可怕的代码的。 Ulf Bartelt 就写了这些可怕的代码:
小于 1000 的质数:
print 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)))
开头 10 个 Fibonacci 数:
print map(lambda x,f=lambda x,f:(x
Mandelbrot 集:
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=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
小孩子千万别在自己家里乱试!

1.2 无穷递归现象
看这段代码:
[edward@argos Viki]$ python
Python 2.4.1 (#1, Apr 12 2005, 15:37:40)
[GCC 3.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> GNU=["GNU","'s not", "Unix"]
>>> GNU[0]=GNU
>>> GNU
[[...], "'s not", 'Unix']
>>> GNU[0]
[[...], "'s not", 'Unix']
>>> GNU[0][0]
[[...], "'s not", 'Unix']
>>> GNU[0][0][0]
[[...], "'s not", 'Unix']
>>> GNU[0][0][0][0]
[[...], "'s not", 'Unix']
>>> GNU[0][0][0][0][0]
[[...], "'s not", 'Unix']
>>> GNU[0][0][0][0][0][0]
[[...], "'s not", 'Unix']
>>> GNU[0][0][0][0][0][0][0]
[[...], "'s not", 'Unix']
>>>
好像有点可怕啊……
2 乱七八糟的 Python
2.1 乱七八糟的逻辑常量
看看下面的代码片段, 貌似 Python 根本就没把 True、False 当作逻辑常量来处理。
Python 2.4.1 (#1, Apr 12 2005, 15:37:40)
[GCC 3.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> True = False
>>> print False
False
>>> print True
False
>>>
怎么办? 怎么办? 天下大乱了!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8780/showart_232586.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP