python3-開發面試題(python)6.23基礎篇(2)

來源:互聯網
上載者:User

標籤:類的方法   功能   進位轉換   機器碼   問題   字元   set   lse   避免   

1、請至少列舉5個 PEP8 規範(越多越好)。

一、代碼編排

1、縮排。4個空格的縮排,不使用Tap,更不能混合使用Tap和空格

2、每行最大長度79,換行可以使用反斜線,最好使用圓括弧。換行點要在操作符的後邊敲斷行符號

二、文檔編排

1、不要在一句import中多個庫,比如import 歐式,sys

三、空格的使用

總體原則,避免不必要的空格

四、注釋

1、總體原則,錯誤的注釋不如沒有注釋,當一段代碼發生變化時,第一件事就是要修改注釋!

2、注釋必須使用英文,最好是完整的句子,首字母要大寫的。

3、避免無謂的注釋

五、命名規範

類的方法第一個參數必須是self,而靜態方法第一個參數必須是cls

遵循python的變數的命名規範。

六、編碼建議

1、編碼中考慮是他python實現的效率等問題,比如運算子‘+’在Jpython中效率卻非常低,採用。join()的方式

2、字串不要以空格收尾

3、使用startwith() and endswith() 代替切片進行序列首碼或尾碼的檢查

4、使用isinstance()比較對象的類型:

5、判斷序列空與不空,if not 條件,優於if 條件 

2、通過代碼實現如下轉換:
二進位轉換成十進位:v = “0b1111011”?

int(v,2)     
十進位轉換成二進位:v = 18?

bin(v)
八進位轉換成十進位:v = “011”?

int(v,8)
十進位轉換成八進位:v = 30?

oct(v)
十六進位轉換成十進位:v = “0x12”?

int(v,16)

十進位轉換成十六進位:v = 87

hex(v)

 

3、python遞迴的最大層數?

在pycharm中 遞迴的最大層數是1000次,無限制的遞迴調用自己是沒有意義的

1、遞迴必須要有一個明確的結束條件

2、每次進入更深一層遞迴時,問題規模相比上次遞迴都有應有所減少

3、遞迴效率不高,遞迴層次過多會導致棧溢出

import syssys.setrecursionlimit(遞迴的最大次數)

 

4、求結果:
v1 = 1 or 3?

1
v2 = 1 and 3?

3
v3 = 0 and 2 and 1

0
? v4 = 0 and 2 or 1

1
? v5 = 0 and 2 or 1 or 4

1

? v6 = 0 or Flase and 1

1

詳細過程可以點擊這裡:https://www.cnblogs.com/ManyQian/p/9216815.html

5、ascii、unicode、utf-8、gbk 區別?

ascii  :   8bit=1bytes,一個英文字元佔用1個位元組  範圍基本只有英文字母、數字和一些特殊字元,只有256個字元

gbk 編碼漢字的: 16bit=2bytes  2個位元組表示一個中文位元組,1個位元組表示英文位元組

unicode全世界的所有位元組(記憶體中固定的編碼):16bit=2bytes,2個位元組表示一個字元,中文也是2個位元組

utf-8萬國碼:1位元組表示一個英文字元,3bytes表示一個中文字元

6、位元組碼和機器碼的區別?

位元組碼是一種中間碼和二進位代碼(檔案),需要直譯器轉譯後成為機器碼

位元組碼:位元組碼通常指的是已經經過編譯的源碼,位元組碼的實現方式是通過編譯器和虛擬機器

機器碼:機器語言是一種指令集的體系,這種指令集就是機器碼,是電腦cpu可以直接解讀的資料

電腦可以直接執行,並且執行速度最快的代碼

解釋性語言:程式---》位元組碼-----》機器碼  根據具體系統在編譯為機器語言

編譯型語言:程式----》機器碼    

7、三元運算規則以及應用情境?

三元運算子的功能與‘if ...else’流程語句一致,它在一行中書寫,代碼非常精練,執行效率更高

嵌套使用的三元運算子可讀性不太好,日後對代碼的維護極可能存在問題

8、列舉 Python2和Python3的區別?

1、print被視為一個語句而不是一個函數

2、整數的除法,2.7不直觀

3、支援Unicode 2.7預設ASCII  3中預設Unicode

4、後續發展  2.7官方沒有後續支援,3才是正統

 

python3-開發面試題(python)6.23基礎篇(2)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.