一行Python程式碼能實現什麼喪心病狂的功能?
友情提示:部分案例適用於Python3,在Windows下面可以用Python命令代替,具體請根據自己的修行選擇。
一、江湖純情版
1、 愛心
先來個高贊愛心的中英文結合版:
print'n'.join([''.join([(u'ILoveChina愛'[(x-y)%11]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)])
如果換成純漢字的版本,則可能會出現較明顯的變形,所以為保證妹子不理解成“變心”,建議使用中英文結合的方式。你get到了嗎?
2、 美麗的螺旋
或許你覺得心型圖案太俗套,那麼試試下面這個美麗的螺旋?在python編譯器中輸入下面的程式碼,接下來讓我們來見證奇蹟吧!
exec """nfrom turtle import *nfor i in range(500): n forward(i)n left(91)n"""
二、娛樂縱情版
1、猜數字
無聊的時候,猜猜數字也是很有樂趣的嘛。1~99範圍內的整數,如果猜對了會給你一個“Y”,如果猜高了會給出一個“H”;猜低了,你會得到一個“L”(Y、H、L可以根據你希望它給出的提示進行更換),你有六次機會猜出正確的結果哦!
python3 -c "import random;n=random.randint(1,99);[(lambda a:print('Y' if a==n else 'H' if a>n else 'L')) (int(input())) for i in range(6)]”
2、老虎機
猜數字不過癮?不如再來試試迷你老虎機,用隨機的unicode字元打樣出來,完美模擬了老虎機的效果!
python3 -c "import random;p=lambda:random.choice('7♪♫♣♠♦♥◄☼☽');[print('|'.join([p(),p(),p()]),end='r') for i in range(8**5)]”
3、 一行程式碼幫你選彩票號碼
當然,還有更刺激的彩票搖號,不過與其將命運交給彩票站的投注機器,不如自己寫一行程式碼,喏,彩票選號程式碼瞭解一下:
python -c "from random import sample; print 'Lotto numbers: %s' % sample(range(1, 50), 6)"
友情提示:彩票有風險,出手須謹慎,至於這行程式碼給出的結果是否能夠中獎,那就只能看你的運氣啦!
三、學府深造版
1、一行程式碼實現GUI使用者介面
python -c "from Tkinter import *;root = Tk();w = Label(root, text='你好!慕課網!');w.pack();root.mainloop()”
一行程式碼實現GUI使用者介面有木有!
2、一行程式碼啟動一個http伺服器
一行程式碼可以啟動一個HTTP伺服器,這一點真的非常好用,所以儘管有其他答主提到過,還是忍不住要再分享一下!
python3 -m http.server 8888
在本地,輸入網址 localhost:8888即可訪問,預設會列出你的本地目錄:
3、Python的哲學
每次讀到Python之禪的時候,總是情不自禁地陷入優美的意境不能自拔,恨不能隨時隨地都能拿來拜讀?下面這行程式碼能夠滿足你的願望:
python -c "import this"
回車!然後,你便會發現你的螢幕上已然出現了心心念唸的Python的ZEN(禪意)。神不神奇?驚不驚喜?
4、 簡易計算器
print(eval(input()))
這個單行程式碼只用了預設引入的函式,其意義也是單純而透明:讀入一個python表示式並求值,將其結果輸出到螢幕,當個簡單計算器綽綽有餘。
5、 今天距離明年元旦還有多少天?
不會跟妹子搭訕?教你一招搭訕大法:故作神秘地問她知不知道還有多少天就是明年的元旦了,趁妹子一臉懵掉你開啟編譯器,瀟灑地敲出以下這行程式碼,然後看著結果告訴她:你看,距離明年元旦還有XX天!
python -c """import datetime;today = datetime.date.today();someday = datetime.date(2019, 1, 1);diff = someday - today;print str(diff.days)+' days' “""
妹子接下來可能會有一波感嘆:哎呀,還有XX天了? 日子過得真快啊!
然後你轉手將程式碼一改,把元旦的時間改為你和妹子認識的時間,然後跟妹子說:你看,我們都認識這麼久了,還沒一起吃過飯呢,不如今晚下班請你吃個飯?
接下來,一定要記得按時下班啊!
其實,就單行而言,Python並不會比其它的多正規化語言更強,實際上由於lambda表現能力弱,導致Python本身要更弱一些。
但是,存在lambda就存在無限可能。Python中的import語句是可以透過呼叫__builtin__模組中的__import__來代替的,更有意思的是,__builtin__模組內的所有內容均是自動import的。
四、附加武功秘籍
1、換臉術
這個10進位制轉換16進位制的單行程式碼就是lambda無限可能的有力論證:
print("#"+''.join(["{:0>2}".format(hex(int(a))[2:])for a in __import__('sys').argv[1:]]))
2、星羅陣
這樣的畫圖,只是簡單的用到了呼叫時傳遞引數而已。
[print('n'.join(" "*abs(c)+"* "*(a-abs(c))for c in range(-a+1,a))) for a in[int(__import__('sys').argv[1])]]
3、操控術
如果呼叫更復雜的功能呢?例如用Flask來個Hello world?
[y[0].run() for y in [(x, x.route('/')(lambda :'Hello, world!')) for x in [__import__('flask').Flask(__name__)]]]
使用列表生成的實現看起來可能不太優雅,但並不會影響效果。
4、凌波微步
或者你還想看看帶視窗的心形曲線?不要看那個黑黑的ASCII顏藝的話可以這樣(需要numpy和matplotlib)
[plt.show() for _, __, ___, plt in [(plt.plot(x, y1, color='r'), plt.plot(x, y2, color='r'), np, plt) for x, y1, y2, np, plt in [(x, 0.618*np.abs(x) - 0.8* np.sqrt(64-x**2), 0.618*np.abs(x) + 0.8* np.sqrt(64-x**2), np, plt) for x, np, plt in [(np.linspace(-8, 8, 1024), np, plt) for np, plt in [(__import__('numpy'), __import__('pylab'))]]]]]
5、吸星大法
如果你是深度學習煉丹師,那不妨來個一行預測?
[print(decode(model.predict(x))) for model, x, decode in [(ResNet50(weights='imagenet'), preprocess_input (np.expand_dims(image.img_to_array(image.load_img('elephant.jpg', target_size=(224, 224))), axis=0)), decode) for ResNet50, image, preprocess_input, np, decode in [(kav.applications.resnet50.ResNet50, kp.preprocessing.image, kav.applications.resnet50.preprocess_input, np, kav.applications.resnet50.decode_predictions) for kav, kp, np in [(__import__('keras.applications.resnet50'), __import__('keras.preprocessing.image'), __import__('numpy'))]]]]
按照這樣的方法,幾乎所有的程式碼最終都能壓到同一行裡;配合Python各種強大的包,寫出個一行人臉識別、一行機器學習、一行網頁爬蟲等都不會有什麼問題。
綜上,“一行程式碼”可供修煉的“功夫”多種多樣,雖然有趣,但並沒有太多的實際意義,在實際工作中沒有必要強行把所有的程式碼都壓縮到一行中實現。當然,如果是為了向妹子炫技的話,那麼請儘管展示你的才華!
python學習網,大量的免費,歡迎線上學習!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/810/viewspace-2835799/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一行 Python 程式碼實現並行Python並行
- 喪心病狂的Android混淆檔案生成器Android
- 怎樣用一行 Python 程式碼實現並行Python並行
- 不到500行Python程式碼,你能編出什麼?Python
- python 程式碼實現查詢功能介面測試Python
- 一行程式碼實現微前端行程前端
- python寫程式碼怎麼跳到下一行Python
- 一行能裝逼的JavaScript程式碼的延伸JavaScript
- 喪心病狂,竟有Thread.sleep(0)這種神仙寫法?thread
- 30 個Python程式碼實現的常用功能,精心整理版Python
- 一行程式碼實現ViewPager卡片效果行程Viewpager
- 實現【檢視更多】功能的程式碼
- python指令碼實現開心消消樂的遊戲Python指令碼遊戲
- 一行程式碼實現Android的跨程式呼叫與通訊行程Android
- App 黑白化實現探索,有一行程式碼實現的方案嗎?APP行程
- 學Python的方法是什麼 怎麼能學好Python程式設計Python程式設計
- 一行程式碼實現 UIView 鏤空效果行程UIView
- Python技巧-只用一行程式碼輕鬆實現圖片文字識別Python行程
- 我在 GitHub 上看到了一個喪心病狂的開源專案!Github
- Python能幹什麼?Python
- Linux 3389是什麼?其可以實現什麼功能?Linux
- python實現播放音訊和錄音功能示例程式碼Python音訊
- python3+tkinter實現的黑白棋,程式碼完整 100%能執行Python
- 幻術,一行程式碼實現鏤空效果行程
- 不寫一行程式碼!SpringBoot + MinIO實現萬能檔案線上預覽,太酷了!行程Spring Boot
- Redis實現排名功能的示例程式碼CRKCRedis
- Python課程程式碼實現Python
- 一行程式碼實現滑鼠橫向滾動💪行程
- Python能幹什麼?python怎麼這麼火?Python
- Python能幹什麼?為什麼會火?Python
- 《橋樑建築師》這次喪心病狂的聯動,讓你在行屍走肉的世界裡程式設計逃生程式設計
- python實現報表用什麼?Python
- 揭秘仿比心app原始碼的開發背後,功能是如何實現的APP原始碼
- Python 程式碼中的 yield 到底是什麼?Python
- 零程式碼整合自動化的實現邏輯是什麼?
- 用150行程式碼實現Vuex 80%的功能行程Vue
- HTML、CSS、JavaScript能實現的功能彙總!HTMLCSSJavaScript
- 室內導航用什麼來實現?通過什麼可以實現導航功能?