Python一行代碼能實現什麼"喪心病狂"的功能?

2019-07-01     一枚丶程序媛呀

在小編看來 python真的是無所不能的,語法簡單還易學。

那麼一行代碼能實現什麼喪心病狂的功能呢?今天小編給你列出了 12個!

1,輸出Mandelbrot圖像

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



看不懂?沒關係,我們直接來看效果。

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



2,九九乘法表

還記得我們熟記於心的九九乘法表嗎?來,我們來鞏固下,我們用一行代碼列印出來。

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



3,一行列印心型圖案

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

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



4,美麗的螺旋

exec("""\\n你覺得上面的心型圖案不夠浪漫?那麼試試下面這個美麗的螺旋?在 Python 編譯器中輸入下面的代碼。(from turtle import *\\nfor i in range(500): \\n forward(i)\\n left(91)\\n""")


看下執行過程中的部分動態圖。



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


5,一行代碼輸出斐波那契數列

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


看下執行結果:



6,一行代碼實現快排算法

還記得 pk 哥之前分享的實現快速排序的文章麼?裡面分析了快速排序的同時也給出了一行代碼的實現方法 一行Python代碼搞定快速排序算法

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

7,列印 Python 之禪

你們知道 Python 之禪麼?知道『人生苦短,我用 Python』這句經典的出處麼?用下面一行代碼就可以列印 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!

給大家一個參考的翻譯:

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

8,看漫畫

導入一個包就能看漫畫,執行代碼後系統會自動打開漫畫的頁面。

import antigravity



給大家一個參考的翻譯:

上圖:「你在飛!怎麼做到的?」「Python!」下左:「我昨晚學習了 Python,一切都是那麼簡單」「運行 HELLO WORLD 只需要 print 「Hello World!」」下中:「我還是不明白……動態類型,還是空格?」「來加入我們吧,編程又再次變得有趣起來了,Python 是一個全新的世界」「但你是怎麼飛起來的?」下右:「我只是輸入了 import antigravity」「就這樣?」「我還對藥品櫃中的所有東西進行了採樣比較」(暗指他對比過多種程式語言,但還是覺得 Python 最簡單)「但我想這就是 Python.」

9,單線迷宮



cmd 命令下輸入下列代碼實現單線迷宮。

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

10,迷你老虎機

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

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



11,一行代碼解決八皇后問題

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



用下列代碼可以列出所有結果,共 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)))]



12,生日快樂!

最後,最重要的!今天是我老婆生日,用一行代碼祝她生日快樂!比心!

print(list(map(lambda x: "Happy Birthday to " + ("you" if x % 2 != 0 else "DYW"), range(100))))



你覺得還有哪些好玩的、有意思的一行代碼實現的功能?可以在下方留言討論哦

當然也有資料免費給大家提供哦

正在自學Python的你還在等什麼呢?

現在轉發此文,關注並私信小編:「學習」即可馬上獲取哦!


文章來源: https://twgreatdaily.com/9RLnYWwBUcHTFCnfUX79.html