標籤:類的方法 功能 進位轉換 機器碼 問題 字元 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)