一行 Python 代码

382 查看

Life is short, just use Python.

自从08年接触Python,就有爱不释手的感觉,逐渐地,有些不忍地疏远了Perl 和Shell编程,因为python 的优雅么? 不全是,主要是可以高效开发吧。

那一行代码可以干什么呢?

有趣

我孩子的英文名叫andy,也许当初教他写程序的时候,如果先秀一下这行代码,可能就更能激起他对代码的兴趣了。

再python 里执行它,会输出一个字符拼出的心形。

LoveAndy

字符图形还是很有趣的,有一个著名的图像叫mandelbrot。Mandelbrot图像中的每个位置都对应于公式N=x+y*i 中的一个复数,高中学过复数的都还应该有印象。每个位置用参数N来表示,它是x*x+y*y的平方根。如果这个值大于或等于2,则这个数字对应的位置值是0。如果参数N的值小于2,就把N的值改为N*N-
N(N=(x*x-y*y-x)+(2*x*y-y)*i)),并再次测试这个新N值。wiki百科给出的图像是这样的:
Mandelbrot

让我们用一行代码画一个Mandelbrot:

这里写图片描述

高效

对于随手小工具而言,更是Python的拿手好戏。

一行代码打印九九乘法表:

输出:
乘法表

一行代码计算出1-1000之间的素数

一行代码可以输出前100项斐波那契数列的值:

一行代码实现阶乘,而且还带交互:

一行代码实现摄氏度与华氏度之间的转换器:

至于字符串排序和快速排序更是手到擒来。

内涵

看一看下面一行python代码,可能就要晕了:

猜数游戏

这是原来为了激发孩子编程兴趣,让孩子练习的代码,它的真实面貌是大致这样的:

实际上,只要理解了函数式编程,使用神奇的Lambda,配合列表推导以及复杂一点的判断语句,任何的python 代码都可以转换成一行代码的。

例如,取一个列表里的随机数

转换成Lambda 可以是:

这些代码出了觉得好玩,主要是可以帮助我们了解某些Python的雕虫小记,尤其是神奇的Lambda 用法

延展

当然,还有其他好玩的地方,输入下面这一行