Python 的特点就是可以高效的开发,高效到一行代码就能让你爱不释手!
有趣:
对Python产生一个很好的初体验就是要美观。那么下面我们就来试试。
在Python里执行它,接下来你就会看见下面的东西
像这样的一个心形
字符图形还是很有趣的,有一个著名的图像叫mandelbrot。Mandelbrot图像中的每个位置都对应于公式N=x+y*i 中的一个复数,高中学过复数的都还应该有印象。每个位置用参数N来表示,它是x*x+y*y的平方根。如果这个值大于或等于2,则这个数字对应的位置值是0。如果参数N的值小于2,就把N的值改为NN-
N(N=(xx-yy-x)+(2xy-y)i)),并再次测试这个新N值。wiki百科给出的图像是这样的:
有没有很神奇
接下来就教大家用一行代码或一个Mandelbrot:
执行后会显示如图:
其高效性:
这个就很有趣了
比如说一行代码打印九九乘法表:
print ' '.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)])
一行代码实现带交互的阶乘:
字符串排序和快速排序:
"".join((lambda x:(x.sort(),x)[1])(list(‘string’)))qsort = lambda arr: len(arr) > 1 and qsort(filter(lambda x: xarr[0], arr[1:] )) or arr
扩展:
还有一个好玩的
输入:
它打开了浏览器,展示网站上的漫画和相关内容:
我们可以把python的文件打包,做成库的形式,然后import进来,是一种偷换概念和前提的一行代码。例如,为了与windows 传输文件,再Mac上临时搭个ftp:
这当然要依赖pyftpdlib 这个库了,机器上没有,pip install pyftpdlib 就可以了。
如果一行代码中允许分号存在,那就只是牺牲可读性而已了,那就基本上无所不能。
在联网的前提下,获取公网IP地址
python -c "import socket; sock=socket.create_connection(('ns1.dnspod.net',6666)); print sock.recv(16); sock.close()"
一行代码还可以轻易写个小游戏,来模拟一下golf击球:
python -c "import math as m;a,v=eval(input());[print('%03d'%x+' '*m.floor(0.5+x*m.tan(a)-x*x/(v*m.cos(a)))+'o') for x in range(102)]"
输入角度和力量大小如(0.8,80),就能得到一条字符描画的抛物线了。
增加上while 等语句,画一个没完没了的python -c "while 1:import random;print(random.choice('╱╲'), end='')"。
领取专属 10元无门槛券
私享最新 技术干货