1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        一行 Python 代碼能實現(xiàn)什么奇葩功能?

        共 3125字,需瀏覽 7分鐘

         ·

        2020-04-09 23:21



        閱讀本文大概需要 3 分鐘。


        如果只允許你寫一行代碼,你能夠?qū)崿F(xiàn)什么樣的功能?今天我們來看看這 16 行喪(gan)心(de)病(piao)狂(liang)代碼。

        輸出 Mandelbrot 圖像

        mandelbrot 圖像中文名叫曼德勃羅圖像。Mandelbrot 圖像中的每個位置都對應(yīng)于公式 N=x+y*i 中的一個復(fù)數(shù)。其實數(shù)部分是 x,虛數(shù)部分是 y,i 是 -1 的平方根。圖像中各個位置的 x 和 y 坐標(biāo)對應(yīng)于虛數(shù)的 x 和 y 部分。百度百科給出的圖形是這樣的。

        239fdcc7943cb7269b6af6403b9ec54e.webp

        看不懂?沒關(guā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?==?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)]))


        e199d08f2e4cbfbb8350aef2c9cea2f9.webp

        九九乘法表

        還記得我們熟記于心的九九乘法表嗎?來,我們來鞏固下,我們用一行代碼打印出來。(左右滑動查看所有代碼)

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


        882efba442ca59d339dae91087af14a3.webp

        一行打印心型圖案

        不會表白?一行代碼告訴你!

        print('\n'.join([''.join([('AndyLove'[(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)]))


        ce7adc23a6698a4ad2931954b31240fb.webp


        美麗的螺旋

        你覺得上面的心型圖案不夠浪漫?那么試試下面這個美麗的螺旋?在 Python 編譯器中輸入下面的代碼。(左右滑動查看所有代碼)

        exec("""\nfrom?turtle?import?*\nfor?i?in?range(500):?\n????forward(i)\n????left(91)\n""")


        看下執(zhí)行過程中的部分動態(tài)圖。


        48c10c8fc830e70203a37ce618c6f2d8.webp

        再截圖一張大圖看下,是不是很漂亮、很炫酷!

        2d4b5bcfa72a98c3deee8d698e15b36b.webp

        這個畫圖庫用的是 turtle 庫。

        計算出 1-100 之間的素數(shù)

        素數(shù)又稱質(zhì)數(shù)。一個大于 1 的自然數(shù),除了 1 和它自身外,不能整除其他自然數(shù)的數(shù)叫做素數(shù);

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

        結(jié)果是:

        7bbb3913387d791ecb567337e2e0d5de.webp

        一行代碼輸出斐波那契數(shù)列

        斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列、因數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為『兔子數(shù)列』,這個數(shù)列從第 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(30)]])


        看下執(zhí)行結(jié)果:

        bae6e080372b83c5745cbab657c16ac2.webp

        一行代碼實現(xiàn)快排算法

        快速排序是一種經(jīng)典而高效的排序算法。

        quickSort?=?lambda?array:?array?if?len(array)?<=?1?else?quickSort([item?for?item?in?array[1:]?if?item?<=?array[0]])?+?[array[0]]?+?quickSort([item?for?item?in?array[1:]?if?item?>?array[0]])
        array?=?[9,?11,?88,?32,?8]
        print(quickSort(array))

        打印 Python 之禪

        你們知道 Python 之禪么?知道『人生苦短,我用 Python』這句經(jīng)典的出處么?用下面一行代碼就可以打印 Python 之禪。(左右滑動查看所有代碼)

        >>>?import?this
        The?Zen?of?Python,?by?Tim?Peters

        Beautiful?is?better?than?ugly.
        Explicit?is?better?than?implicit.
        Simple?is?better?than?complex.
        Complex?is?better?than?complicated.
        Flat?is?better?than?nested.
        Sparse?is?better?than?dense.
        Readability?counts.
        Special?cases?aren't?special?enough?to?break?the?rules.
        Although?practicality?beats?purity.
        Errors?should?never?pass?silently.
        Unless?explicitly?silenced.
        In?the?face?of?ambiguity,?refuse?the?temptation?to?guess.
        There?should?be?one--?and?preferably?only?one?--obvious?way?to?do?it.
        Although?that?way?may?not?be?obvious?at?first?unless?you're?Dutch.
        Now?is?better?than?never.
        Although?never?is?often?better?than?*right*?now.
        If?the?implementation?is?hard?to?explain,?it's?a?bad?idea.
        If?the?implementation?is?easy?to?explain,?it?may?be?a?good?idea.
        Namespaces?are?one?honking?great?idea?--?let's?do?more?of?those!

        給大家一個參考的翻譯:

        優(yōu)美勝于丑陋。
        顯式勝于隱式。
        簡單勝于復(fù)雜。
        復(fù)雜勝于難懂。
        扁平勝于嵌套。
        稀疏勝于緊密。
        可讀性應(yīng)當(dāng)被重視。
        盡管實用性會打敗純粹性,特例也不能凌駕于規(guī)則之上。
        不要忽略任何錯誤,除非你確認(rèn)要這么做
        面對不明確的定義,拒絕猜測的誘惑。
        找到一種最好唯一的一種方法去解決問題。
        雖然一開始這種方法并不是顯而易見,因為你不是 Python 之父。
        做好過不做,但沒有思考的做還不如不做
        如果實現(xiàn)很難說明,那它是個壞想法。
        如果實現(xiàn)容易解釋,那它有可能是個好想法。
        命名空間是個絕妙的想法,請多加利用。

        看漫畫

        導(dǎo)入一個包就能看漫畫,執(zhí)行代碼后系統(tǒng)會自動打開漫畫的頁面。

        import?antigravity


        63745e1525ad5486b4c78b6166c7b13e.webp

        給大家一個參考的翻譯:

        上圖:
        “你在飛!怎么做到的?”
        “Python!”

        下左:

        “我昨晚學(xué)習(xí)了 Python,一切都是那么簡單”

        “運行 HELLO WORLD 只需要 print “Hello World!””

        下中:
        “我還是不明白……動態(tài)類型,還是空格?”

        “來加入我們吧,編程又再次變得有趣起來了,Python 是一個全新的世界”

        “但你是怎么飛起來的?”

        下右:

        “我只是輸入了 import antigravity”

        “就這樣?”

        “我還對藥品柜中的所有東西進(jìn)行了采樣比較”(暗指他對比過多種編程語言,但還是覺得 Python 最簡單)

        “但我想這就是 Python.”

        單線迷宮

        cmd 命令下輸入下列代碼實現(xiàn)單線迷宮。

        python?-c?"while?1:import?random;print(random.choice('||?__'),?end='')"

        3191631e4ed5bfb418a0cb42c5c84b40.webp


        一行代碼開啟 web 服務(wù)

        使用此命令,建立一個內(nèi)網(wǎng)可以快速訪問的 WEB 服務(wù)。

        python?-m?http.server?8080

        輸入 http://localhost:8080/ 網(wǎng)站就可以訪問的 WEB 服務(wù)了。

        a4bf37e542e84b35d131162514e9adb6.webp

        迷你老虎機(jī)

        用隨機(jī)的 unicode 字符打樣出來,完美模擬了老虎機(jī)的效果,按回車鍵停止。請看下面動態(tài)圖。

        python?-c?"import?random;p=lambda:random.choice('7?????????');[print('|'.join([p(),p(),p()]),end='\r')?for?i?in?range(8**5)]”


        5d1f345635897d933a120e1c8ccfc528.webp

        一行代碼解決八皇后問題

        什么是八皇后問題?我們看下百度百科的解釋:八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾于 1848 年提出:在 8×8 格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處于同一行、同一列或同一斜線上,問有多少種擺法。高斯認(rèn)為有 96 種方案。1854 年在柏林的象棋雜志上不同的作者發(fā)表了40 種不同的解,后來有人用圖論的方法解出 92 種結(jié)果。計算機(jī)發(fā)明后,有多種計算機(jī)語言可以解決此問題。

        7600cc767480bed00e884d9ba80aebdb.webp

        用下列代碼可以列出所有結(jié)果,共 92 種。

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


        b3b288a8d665c6ce44206fb80ab515e9.webp

        將多維數(shù)組轉(zhuǎn)化為一維


        一行代碼將多維數(shù)組轉(zhuǎn)化為一維數(shù)組。


        print([i?for?item?in?ab?for?i?in?item])

        給出一個多維數(shù)值 ab,通過這個方法變成一維數(shù)組。

        ab?=?[[1,?2,?3],?[5,?8],?[7,?8,?9]]
        print([i?for?item?in?ab?for?i?in?item])

        #?結(jié)果
        [1,?2,?3,?5,?8,?7,?8,?9]

        求解 2 的 1000 次方的各位數(shù)之和

        2 的 1000 次方的值很大,把結(jié)果每位數(shù)都加起來等于多少呢?

        print(sum(map(int,?str(2**1000))))

        #?結(jié)果?
        1366

        祝福

        最后,送給各位:愛你三千遍!

        print("I Love You!\n"?*?3000)

        你覺得還有哪些好玩的、有意思的一行代碼實現(xiàn)的功能,歡迎留言!

        瀏覽 85
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            深夜操逼逼 | 国产成人免费视频在线 | 久久综合伊人777777 | 国产精品一区二区三区AV | 一起草成人视频 | 美女天堂 | 91成人无码人妻一区二区 | 韩国一区二区三区在线 | 天天日日日日 | 窝窝久色成人影院 |