作者是一名沉迷于Python无法自拔的蛇友,为提高水平,把Python的重点和有趣的实例发在简书上。
众所周知的是,Python是一款极为灵活的编程语言,灵活到什么程度呢,一行代码便可实现非同凡响的功能。
爱心
print('\n'.join([''.join([('BestWish'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))
这个代码的结果令人意想不到:
笔者不得不说,说说改一改就可以撩妹子了~
a = input('请输入你的姓名:')
print('\n'.join([''.join([('{}'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)])).fomat(a)
不要在意内容哈哈哈哈哈 ~
九九乘法表
一行代码打印九九乘法表:
print('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
结果非常干净:
Mandelbrot图像:
一行代码输出Mandelbrot图像:图像中的每个位置都对应于公式N=x+y*i中的一个复数:
print('\n'.join([''.join(['*'if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else' 'for x in range(-80,20)])for y in range(-20,20)]))
执行结果要全屏看哦:
素数
一行代码实现阶乘:
print(*(i for i in range(2, 1000) if all(tuple(i%j for j in range(2, int(i**.5))))))
输出结果:
猜数字
意不意外,惊不惊喜,开不开心,猜数字小游戏只需要一行代码?!
太变态了,不提供代码 ~
Python的模块
笔者有话在先:接下来的两个模块不像大家使用的那些,请耐心看完。
废话不多说,直接上代码:
import antigravity
大家看了这么多,也要休息了,轻轻按下最后一行代码,享受Python之禅吧!
import this
Python之禅 by Tim Peters
优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
总结
Python的神奇之处远不止这些,如果大家还有补充,欢迎在下方评论留言打call赞赏 ~