當前位置:
首頁 > 最新 > 這10個題,有 68% 的人答不對

這10個題,有 68% 的人答不對

昨晚推送的圖片被微信壓成渣渣,這張圖是從「Python之禪私密讀者圈」分享出來的,作者乘風,裡面的內容就是前天Python沖頂大會每道題的簡析。

這篇文章總共收到118條留言,回答正確的有40 人,68% 的人答錯了,以下是每道題的詳細解答,第一位回答正確者請移步到文章底部查看。

第一題:下面哪個單詞不是Python3裡面的關鍵字

這道題選a,所謂關鍵字就是 Python 預先保留的標識符,每個關鍵字都有特殊的含義,不能作為變數名,通過 keyword 可以查看所有關鍵字,eval 是Python中的一個內建函數。


這道題選c,考察的是運算符優先順序,指數運算具有最高優先順序,下圖運算符優先順序從高到低


這道題選b,考察的是 Python 中兩個整數對象的比較,「is」 比較對象內存地址,只有兩個對象都指向相同的地址時才返回True,「==」 比較對象的值,值相等的兩個對象內存地址不一定相同。值為300的兩個整數在內存中是兩個不同的對象,介於[-5,256]之間的整數,值相同的整數都會共享同一個對象,所以不管內存中出現了多少個數值為1的對象,都表示同一個對象。

選d,這道題考察是操作符重載的概念,在Python中,操作符支持重載,也就是說不僅數字支持「+」操作,列表也支持這些操作,因為列表對象重載了這兩個操作符。自定義類也可以重載這些操作符,例如:


選b,在Python中,數值對象都是用二進位來表示的,浮點數也不例外,但不是所有的浮點數都能用二進位精確表示的。一個浮點數轉化為二進位就是是不斷的乘2,取其中的整數部分,例如:

所以0.1的二進位表示就是0.0 0011 0011 0011…,計算機沒法精確表示這個浮點數,所有就造成了誤差。


「~」是按位取反操作符,就是對整數的二進位位進行取反,把1變為0,0變為1,例如5的二進位表示為00000101,按位取反是 111111010,這串二進位在計算機裡面以補碼的形式存儲,我們需要把它轉換為原碼才知道它代表的真實數值是多少。因為這個補碼的最高位為1,所以他是一個負數,負數從補碼轉換為原碼是符號位保留為1,其它各位取反,再加1,所有 111111010 取反是 100000101,加1轉換成了原碼 100000110,轉換為10進位整數就是-6(最高位為1表示負數),取三次反跟取一次是一樣的。所以這道題的答案是-6。


選a,這道題考察的是對象的真假值,」False」在這裡是一個字元串,只要不是空字元串,bool返回的結果就是True,下面是真假值對照表。


選b,鏈式比較中,True==False==False 等價於 (True==False) and (False==False)


選b,這道題考察的是while … break …else 的執行邏輯,只要執行了break就不會執行else,反之亦然,沒有執行break就一定會執行else。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python之禪 的精彩文章:

TAG:Python之禪 |