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)]))
thonHello           PythonHel                           oPythonHelloPytho   lloPythonHelloPyt                     loPythonHelloPythonHelloPythonHelloPython                  loPythonHelloPythonHelloPythonHelloPythonHe                loPythonHelloPythonHelloPythonHelloPythonHell               oPythonHelloPythonHelloPythonHelloPythonHello               PythonHelloPythonHelloPythonHelloPythonHelloP               ythonHelloPythonHelloPythonHelloPythonHelloPy               thonHelloPythonHelloPythonHelloPythonHelloPyt               honHelloPythonHelloPythonHelloPythonHelloPyth                nHelloPythonHelloPythonHelloPythonHelloPyth                  elloPythonHelloPythonHelloPythonHelloPyth                   lloPythonHelloPythonHelloPythonHelloPytho                     PythonHelloPythonHelloPythonHelloPyth                        thonHelloPythonHelloPythonHelloPyth                          onHelloPythonHelloPythonHelloPyth                             elloPythonHelloPythonHelloPyt                                 oPythonHelloPythonHelloPy                                     thonHelloPythonHelloP                                          HelloPythonHell                                                oPythonHe                                                      hon                                                          n

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

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)]))
1*1=1 1*2=2  2*2=4 1*3=3  2*3=6  3*3=9 1*4=4  2*4=8  3*4=12 4*4=161*5=5  2*5=10 3*5=15 4*5=20 5*5=251*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

4、让两个变量交换值

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

a,b=100,253print('变换前',a,b)a, b = b, aprint('变换后',a,b)
变换前 100 253变换后 253 100

5、排序算法

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

list1=[231,454,789,12,456,7891,12]print('排序前',list1)qs = lambda xs :((len(xs) <= 1 and [xs]) or [ qs( [x for x in xs[1:] if x < xs[0]] ) + [xs[0]] + qs( [x for x in xs[1:] if x >= xs[0]] ) ])[0]print('排序后',qs(list1))
排序前 [231, 454, 789, 12, 456, 7891, 12]排序后 [12, 12, 231, 454, 456, 789, 7891]

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)))]
Q...........Q..........Q.....Q....Q...........Q..Q.........Q....========Q............Q.........Q..Q...........Q....Q.....Q..........Q...========(...以下省略...)

7、打印迷宫

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

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

python表白代码 python表白代码大全爱心_Python

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) ]])
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025, 20365011074, 32951280099, 53316291173, 86267571272, 139583862445, 225851433717, 365435296162, 591286729879, 956722026041, 1548008755920, 2504730781961, 4052739537881, 6557470319842, 10610209857723, 17167680177565, 27777890035288, 44945570212853, 72723460248141, 117669030460994, 190392490709135, 308061521170129, 498454011879264, 806515533049393, 1304969544928657, 2111485077978050, 3416454622906707, 5527939700884757, 8944394323791464, 14472334024676221, 23416728348467685, 37889062373143906, 61305790721611591, 99194853094755497, 160500643816367088, 259695496911122585, 420196140727489673, 679891637638612258, 1100087778366101931, 1779979416004714189, 2880067194370816120, 4660046610375530309, 7540113804746346429, 12200160415121876738, 19740274219868223167, 31940434634990099905, 51680708854858323072, 83621143489848422977, 135301852344706746049, 218922995834555169026, 354224848179261915075]