python 新闻_Python一行代码竟能干这种事,同学都欢呼:要向女神表白!

4e4a20a4462309f72dae28915d50acf4d5cad6d2.jpeg?token=c21e016daf575bb1d8c40888a5d3db8b

@数据分析师攻略 公众号

关注、学习更多数据分析的知识与资讯

------

Python的语法十分简洁,简洁到只需要一行代码,即可输出意想不到的效果。一行代码到底有什么独特的魅力,下面一起来感受一下吧!

1、画一个爱心

作为一个Python程序员,自从接触Python就有种爱不释手的感觉,逐渐地被它的简洁高效的代码所吸引,所有我想用一行Python代码来画出一个心形向Python语句表白。学会的小伙伴,也可以这行代码来画一个爱心,向自己的女神表白哦!

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

a5c27d1ed21b0ef4790e0fcfed9af1dd80cb3e26.jpeg?token=bfb6a1f35e67d49615cc6864ddce6946

2、画一个Mandelbrot

有一个著名的图像叫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值。

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)]))

21a4462309f79052960612be23ad77cd7acbd5fe.jpeg?token=83c575cb7ccb3afd8f30be12ca77732f

3、打印99乘法表

小时候刚学习99乘法表,数学老师经常布置的作业就是背诵和默写99乘法表,那段时候感觉这个表又神奇,又很难学。但多亏老师的谆谆教导,如今我们对99乘法表简直可以倒背如流。可是,你也许不知道,Python能用一行代码就可以将99乘法表整齐地输出来了,是不是更神奇了!

print('\n'.join([' '.join(['%s*%s=%-2s' % (y, x, x*y) for y in range(1, x+1)]) for x in range(1, 10)]))

e1fe9925bc315c601702f98abcef6b14485477a1.jpeg?token=742e8c200055896bbb1f8ca0b7e89f12

4、让两个变量交换值

这也许是Python一行代码最简单的表达方式,让两个变量交换值。以前习惯了使用第三个变量作为中间变量,用这个中间变量分别给两个变量去交换值,现在来看那都复杂了,一行代码能搞定的事情,就没中间变量什么事。

8ad4b31c8701a18bad1c3d7eae71a70f2938fef5.jpeg?token=1d6e015c6514b3ca974b8651532ad508

5、排序算法

Python一行代码实现排序算法,就这一点足以体现Python代码的简洁高效的魅力。

6a600c338744ebf8e72e2fd0e9a7772d6159a76c.jpeg?token=ef0c0926f274753ef7875205bf45505f

6、八皇后问题

玩过国际象棋的人都知道,八皇后问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。

[__import__('sys').stdout.write('\n'.join('.' * i + 'Q' + '.' * (8-i-1) for i in vec) + "\n========\n") for vec in __import__('itertools').permutations(range(8)) if 8 == len(set(vec[i]+i for i in range(8))) == len(set(vec[i]-i for i in range(8)))]

738b4710b912c8fce16c1422cc5d3242d7882123.jpeg?token=e2ee0099407cdcb83e34d711d69d16bd

7、打印迷宫

工作累了,打印一个迷宫来玩会吧。

print(''.join(__import__('random').choice('\u2571\u2572') for i in range(30*25)))

b812c8fcc3cec3fdf4ac617ce6d674388694278a.jpeg?token=cb40c118ed7c8abd427224a513910df7

8、计算1-100之间的素数

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,1-100之间的素数有哪些?快来看看。

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

输出结果:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

9、输出前100项斐波那契数列的值

斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,这个数列从第3项开始,每一项都等于前两项之和。

print([x[0] for x in [ (a[i][0], a.append((a[i][1], a[i][0]+a[i][1]))) for a in ([[1,1]], ) for i in range(100) ]])

7c1ed21b0ef41bd5d42156b6608421cc38db3de3.jpeg?token=17572c8b3fa5fbdfce51ff78a03aeeaf

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值