自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Python尋找彩蛋:從“Hello World”的玄機(jī)到Python之禪

開(kāi)發(fā) 后端
也許在你眼里,Python可能只是項(xiàng)目創(chuàng)建、模擬和自動(dòng)化的工具;但在一些人那里,它就像是《頭號(hào)玩家》的電影片場(chǎng),處處暗藏“玄機(jī)”,充滿了有趣的彩蛋。

本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)

也許在你眼里,Python可能只是項(xiàng)目創(chuàng)建、模擬和自動(dòng)化的工具;但在一些人那里,它就像是《頭號(hào)玩家》的電影片場(chǎng),處處暗藏“玄機(jī)”,充滿了有趣的彩蛋。

你是否已經(jīng)厭倦了整體呆在家里?不如來(lái)探索Python中的隱藏功能和小驚喜吧!

[[325459]]

1. 最簡(jiǎn)單的“HelloWorld”

你寫出的第一行代碼是什么?一千個(gè)哈姆雷特可能都只有同一個(gè)答案——“HelloWorld”。那么,你有沒(méi)有想過(guò), print( Hello World! )并不是打出這兩個(gè)單詞的唯一方法?

實(shí)際上,只需導(dǎo)入Python開(kāi)發(fā)人員隱藏的模塊就可以實(shí)現(xiàn)HelloWorld。試試這個(gè):

  1. >>> import __hello__ 
  2. Hello World! 

包括空格鍵在內(nèi),此代碼只有16個(gè)字符!這可以說(shuō)是“最簡(jiǎn)單的”HelloWorld程序之一。請(qǐng)注意,不能在Python程序中重新導(dǎo)入模塊,所以每次運(yùn)行時(shí)可以打印一次信息。

 

2. Python之禪

這是在PEP20中提出的概念。PEP是指Python的增強(qiáng)提案。

Python是您最喜歡的語(yǔ)言嗎?喜歡它什么?是設(shè)計(jì)嗎?有20條描述Python設(shè)計(jì)的指導(dǎo)原則,可通過(guò)以下方式找到其中的19條:

  1. >>> import this 

剩下的那條去哪兒了?筆者猜測(cè),人不可能無(wú)所不知。以下是前三條指導(dǎo)原則:

  1. Beautiful is better than ugly. 
  2. Explicit is better than implicit. 
  3. Simple is better than complex. 

必須感謝開(kāi)發(fā)人員為制作如此優(yōu)雅且易讀的編程語(yǔ)言方面所付出的努力。這也是迄今為止Python開(kāi)發(fā)者指南中唯一被稱為“彩蛋”的“官方”程序。

3. 體驗(yàn)反重力漫畫

一行Python代碼,就可以體驗(yàn)反重力漫畫!

  1. import antigravity 

試試看!請(qǐng)記住,這么做可能會(huì)被困在外太空,瀏覽幾個(gè)小時(shí)xkcd網(wǎng)絡(luò)漫畫。

 

4. 括號(hào)

與許多其他編程語(yǔ)言不同,Python在構(gòu)造語(yǔ)句、函數(shù)和循環(huán)時(shí)實(shí)際上并不使用花括號(hào){},但以后可能會(huì)用。

__future__ 模塊包含不兼容更改,這些更改將在不久的將來(lái)強(qiáng)制實(shí)施。例如,在Python2.6或2.7中從__future__ 導(dǎo)入 print_function允許“print”變成接受參數(shù) print()的函數(shù),就像在Python 3中一樣。

看看從__future__開(kāi)始,括號(hào)將如何工作:

  1. >>> from __future__ importbraces 
  2. SyntaxError: not a chance 

5. this.py

還記得Python之禪的前三行嗎?

深入挖掘并找到這個(gè)模塊文件this.py后,就會(huì)發(fā)現(xiàn),這是迄今為止最漂亮、最明確、最簡(jiǎn)單的代碼。

6. 散列

無(wú)窮大和NaN的散列。

  1. >>> hash(float( inf )) 
  2. 314159 
  3. >>> hash(float( nan )) 

這個(gè)彩蛋是在Reddit上找到的。筆者真想知道生命、宇宙與萬(wàn)事萬(wàn)物的終極解答。(出處:《銀河系漫游指南》。)

7. 巴里叔叔

關(guān)于運(yùn)算符選擇的爭(zhēng)論已持續(xù)了42個(gè)年頭。是時(shí)候解決了!

這一問(wèn)題是在PEP 401中提出的,以下內(nèi)容并不難猜到。著名的Python開(kāi)發(fā)者巴里·華沙 (又名巴里叔叔)被“選中”成為終身友好語(yǔ)言叔叔,簡(jiǎn)稱FLUFL。

[[325460]]

他制定了一些“修改”,用鉆石操作符<>替換不等式運(yùn)算符 != 。如果同意巴里叔叔的觀點(diǎn),可以導(dǎo)入這個(gè)有趣的庫(kù),并且<> 語(yǔ)法將會(huì)生效,而 !=會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤。

  1. >>> from __future__ importbarry_as_FLUFL>>> 0 != 1 
  2. SyntaxError: with Barry as BDFL, use  <>  instead of  != >>> 0<> 1 
  3. True 
  4. >>> 1 <> 1 
  5. False 

 其實(shí)彩蛋還有更多,接下來(lái)就自己探索吧,當(dāng)你打開(kāi)這扇門,Python世界從此妙趣橫生。

 

責(zé)任編輯:趙寧寧 來(lái)源: 讀芯術(shù)
相關(guān)推薦

2021-01-20 07:48:28

TechFlow前端網(wǎng)站

2009-09-16 17:15:19

OSGi Bundle

2023-01-06 08:18:44

2023-05-23 08:01:10

Netty網(wǎng)絡(luò)通信

2010-03-15 15:18:23

Python運(yùn)行

2011-09-08 10:41:12

Node.js

2016-12-13 14:12:25

程序機(jī)制

2016-12-14 14:41:20

Hello World程序運(yùn)行機(jī)制

2012-03-06 10:22:00

程序

2011-03-21 09:45:52

Hello WorldObjective-C生命周期

2011-07-01 11:02:30

EnyowebOShello world

2018-03-21 12:36:21

Python字符串

2011-12-05 15:44:45

Knockout

2014-12-19 10:07:10

C

2017-11-23 17:45:46

Yii框架IntelYii框架深度剖析

2019-07-30 14:35:58

TCPIP模型

2012-02-20 14:26:48

JavaPlay Framew

2009-07-30 13:21:17

Scala入門Hello World

2009-08-11 10:32:23

什么是Groovy

2023-09-04 07:30:03

Wasm匯編語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)