PHP一行代码java,JAVA看了会哭泣,PHP看了会沉默,一行PYTHON代码,做些神奇的事...

本文展示了Python编程语言的简洁性和高效性,通过一行代码实现了搭建临时Web下载服务器、输出心形图案、快速实现快速排序算法以及找出1-100的素数等功能。这些实例揭示了Python在解决实际问题时的便捷性,突显其作为优美编程语言的特点。
摘要由CSDN通过智能技术生成

人生苦短,我用python,相信各位玩蛇的大佬对这句话肯定心服首肯,python作为一个公认简洁的编程语言被大家所喜爱,在python的命令行控制台输入import this 你会看到一段神奇的东西!

77d038ce096db3c8ccbcf07ba170192c.png

翻译如下:优美胜于丑陋(Python 以编写优美的代码为目标)

明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

可读性很重要(优美的代码是可读的)

不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

当存在多种可能,不要尝试去猜测

尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

那么python到底可以简洁到什么程度呢?

今天小编给大家带来一些有关于python有意思的东西,一行代码,python都可以做什么?

1、你可能会有一个这样的需求,我的电脑上的(linunx,windows,max系统随意,支持py)一个文件要传给别人,立刻就要传,但是又没啥媒介,此时可以快读搭建一个web下载服务器,如下。

py2: python -m SimpleHTTPServer 8890

py3: python3 -m http.server 8080

36203119c99f2b8aa2d9662ca4af46d8.png

这个代码执行之后,就可以下载当前文件夹的文件了,浏览器访问http://127.0.0.1:8890/(支持远程),就会加载当前文件夹的文件,点击一下,就可以下载了。

b194d076175094f3c05dce9851ad1a5d.png

是不是超级简单快速,虽然下载速度不快,但是临时传个文件,简单到爆炸!

2、如有有一天你突然想给女票一个惊喜,那么可以一行代码搞定这个事情,一行代码输出特定字符”Love”拼成的心形。

print('\n'.join([''.join([('Love'[(x-y) % len('Love')] 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(30, -30, -1)]))

ea0b3647a927d974ae34cf078f725d65.png

e0c09960ace6fe87a1883dcc8e49f125.png

妹子十分感动,扑倒在了你的怀中,哥哥你好厉害。。。当然这个是做梦,忽略这段话。

3、那么虚拟第三种场景,你去面试,面试官问你,能写代码么?你说可以,面试官说,来写个快排算法,丢过来一张纸,然后等着看你出丑。你泰然自若再纸上写下了下面的代码:

qsort = lambda arr: len(arr) > 1 and qsort(list(filter(lambda x: x <= arr[0], arr[1:]))) + arr[0:1] + qsort(list(filter(lambda x: x > arr[0], arr[1:]))) or arr

面试官看后不解,然后你说,找台电脑,打上去,运行下。

82a36c08b2ead3d3f666946525ad7cdb.png

面试官半小时后回来,把门堵死,少侠别走,等二面来会会你。

4、一会二面大佬来找你面试,他祭出了自己的第一题,手写下代码,计算出1-100的素数,然后你。

print(' '.join([str(item) for item in filter(lambda x: not [x % i for i in range(2, x) if x % i == 0], range(2, 101))]))

f0db5109a228bf36f74d76276ed288fa.png

看着面试官楞楞的表情,正准备回去拿电脑运行,你回答,当然还有第二种:

print(' '.join([str(item) for item in filter(lambda x: all(map(lambda p: x % p != 0, range(2, x))), range(2, 101))]))

d6ccd733ce72a87036e183260d89ab9b.png

二面面试官二话不说把你绑了起来,hr带着劳动合同和你签了无限期协议,并留下了手机号码,从此你走上人生巅峰。

好吧上面这段也是做梦,请忽略。

看不懂的,多学习下。

5、好吧这是篇技术文章,我们正规一点,说最后一个,首先给大家普及一下Mandelbrot 图像“Mandelbrot图像中的每个位置都对应于公式N=x+y*i中的一个复数。其实数部分是x,虚数部分是y,i是-1的平方根。图像中各个位置的x和y坐标对应于虚数的x和y部分。

图像中的每个位置用参数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值。如果这个值大于或等于2,则这个数字对应的位置值是1。这个过程一直继续下去,直到我们给图像中的位置赋一个值,或迭代执行的次数多于指定的次数为止。”

上面说了这么多,只是想说这个事情,实现起来极其复杂,但是我们用一行代码实现之:

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 == 0 else 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)]))

是的就是这么嚣张,一行搞定

041bdaaeaffb36c6ab1d0a59e5a7ab5b.png

好了,以上就是今天的内容了,各种语言都有自己的优势,当然python肯定是世界上最好的语言,不服可以留言。

这只是第一期,后面还有更多一行代码可以做什么的文章哦、

欢迎关注小编头条号,都是原创文章,小编手动码字~

禁止转载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值