【python】10分鍾教你用python一行代碼搞點大新聞


准備

相信各位對python的語言簡潔已經深有領會了。那么,今天就帶大家一探究竟。看看一行python代碼究竟能干些什么大新聞。趕緊抄起手中的家伙,跟我來試試吧。

首先你得先在命令行進入python。像下面一樣。

1> python
2Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 201608:06:12) [MSC v.1900 64 bit (AMD64)] on win32
3Type "help""copyright""credits" or "license" for more information.

python之禪

讓我們用一行代碼以python 的哲學開始吧。輸入:import this。

 1>>> import this
2The Zen of Python, by Tim Peters
3
4Beautiful is better than ugly.
5Explicit is better than implicit.
6Simple is better than complex.
7Complex is better than complicated.
8Flat is better than nested.
9Sparse is better than dense.
10Readability counts.
11Special cases aren't special enough to break the rules.
12Although practicality beats purity.
13Errors should never pass silently.
14Unless explicitly silenced.
15In the face of ambiguity, refuse the temptation to guess.
16There should be one-- and preferably only one --obvious way to do it.
17Although that way may not be obvious at first unless you'
re Dutch.
18Now is better than never.
19Although never is often better than *right* now.
20If the implementation is hard to explain, it's a bad idea.
21If the implementation is easy to explain, it may be a good idea.
22Namespaces are one honking great idea -- let'
s do more of those!
23>>>

Python為什么如此吸引人?你需要讀一讀這個。翻譯和解釋如下:

本文最初發表於戀花蝶的博客(http://blog.csdn.net/lanphaday),如蒙轉載,敬請何留全文完整,並連本聲明一起轉載。

 1Python之禪 by Tim Peters
2
3優美勝於丑陋(Python 以編寫優美的代碼為目標)
4明了勝於晦澀(優美的代碼應當是明了的,命名規范,風格相似)
5簡潔勝於復雜(優美的代碼應當是簡潔的,不要有復雜的內部實現)
6復雜勝於凌亂(如果復雜不可避免,那代碼間也不能有難懂的關系,要保持接口簡潔)
7扁平勝於嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)
8間隔勝於緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)
9可讀性很重要(優美的代碼是可讀的)
10即便假借特例的實用性之名,也不可違背這些規則(這些規則至高無上)
11不要包容所有錯誤,除非你確定需要這樣做(精准地捕獲異常,不寫 except:pass 風格的代碼)
12當存在多種可能,不要嘗試去猜測
13而是盡量找一種,最好是唯一一種明顯的解決方案(如果不確定,就用窮舉法)
14雖然這並不容易,因為你不是 Python 之父(這里的 Dutch 是指 Guido )
15做也許好過不做,但不假思索就動手還不如不做(動手之前要細思量)
16如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然(方案測評標准)
17命名空間是一種絕妙的理念,我們應當多加利用(倡導與號召)

Mandelbrot圖像

有一個著名的圖像叫Mandelbrot。Mandelbrot圖像中的每個位置都對應於公式N=x+y*i中的一個復數。其實數部分是x,虛數部分是y,i是-1的平方根。圖像中各個位置的x和y坐標對應於虛數的x和y部分。圖像如下:

imageimage

那么,用一行代碼畫出這個圖像。如下:

 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==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)]))
2                                                                                *
3
4
5                                                                          **
6                                                                     ***********
7                                                                    ************
8                                                                      *********
9                                                            *    * ************  * *
10                                                    ****** * *************************** *
11                                                    *************************************** *****
12                                                     *******************************************
13                                               *** ******************************************** *
14                                                **************************************************
15                                             *******************************************************
16                      *        *              *****************************************************
17                     **** ******* *          *******************************************************
18                      *****************     *******************************************************
19                   *********************** *********************************************************
20                   *********************** ********************************************************
21             **** ********************************************************************************
22*********************************************************************************************
23             **** ********************************************************************************
24                   *********************** ********************************************************
25                   *********************** *********************************************************
26                      *****************     *******************************************************
27                     **** ******* *          *******************************************************
28                      *        *              *****************************************************
29                                             *******************************************************
30                                                **************************************************
31                                               *** ******************************************** *
32                                                     *******************************************
33                                                    *************************************** *****
34                                                    ****** * *************************** *
35                                                            *    * ************  * *
36                                                                      *********
37                                                                    ************
38                                                                     ***********
39                                                                          **
40
41
42>>>

有趣love愛心

我孩子的英文名叫andy,也許當初教他寫程序的時候,如果先秀一下這行代碼,可能就更能激起他對代碼的興趣了。一行代碼打印心形:

 1>>> 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(-3030)]) for y in range(30-30-1)]))
2
3
4                veLoveLov           veLoveLov
5            eLoveLoveLoveLove   eLoveLoveLoveLove
6          veLoveLoveLoveLoveLoveLoveLoveLoveLoveLov
7         veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveL
8        veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLov
9        eLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
10        LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveL
11        oveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo
12        veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLov
13        eLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
14         oveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
15          eLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
16          LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveL
17            eLoveLoveLoveLoveLoveLoveLoveLoveLove
18             oveLoveLoveLoveLoveLoveLoveLoveLove
19              eLoveLoveLoveLoveLoveLoveLoveLove
20                veLoveLoveLoveLoveLoveLoveLov
21                  oveLoveLoveLoveLoveLoveLo
22                    LoveLoveLoveLoveLoveL
23                       LoveLoveLoveLov
24                          LoveLoveL
25                             Lov
26                              v

但是,僅憑這樣還是不足以捕獲妹子真心的(我知道你們想說無論怎樣都捕獲不了妹子的真心)。小編在這發現了一個更好玩的玩法,咱們用定時器來做個高級一點的吧。代碼如下:

1import time
2words = input('輸入你想說的話哦!:')
3for item in words.split():
4    print('\n'.join([''.join([(item[(x-y) % len(item)] 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(-3030)]) for y in range(12-12-1)]))
5    time.sleep(1.5)

至於效果嘛,看下面,是不是好很多了?

九九乘法表

python一行代碼打印九九乘法表,如下:

 1>>> print ('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
21*1=1
31*2=2  2*2=4
41*3=3  2*3=6  3*3=9
51*4=4  2*4=8  3*4=12 4*4=16
61*5=5  2*5=10 3*5=15 4*5=20 5*5=25
71*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
81*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
91*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
101*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
11>>>

來個水波展示

1while 1:import random;print(random.choice('╱╲'), end='')

效果看下圖:

源代碼下載

源代碼下載在公眾號后台回復:【pyone】,不包括【】即可下載。

希望我們的分享,能給你帶來更多收獲。

微信公眾號微信公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM