您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關關于Python基礎的面試題及解決方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
=
1、python遞歸的最大層數?
998
2、求結果(and or or)
1. 求結果:1 or 3 print(1 or 3) # 1 2. 求結果:1 and 3 print(1 and 3) # 3 3. 求結果:0 and 2 and 1 print(0 and 2 and 1) # 0 4. 求結果:0 and 2 or 1 print(0 and 2 or 1) # 1 5. 求結果:0 and 2 or 1 or 4 print(0 and 2 or 1 or 4) # 1 6. 求結果:0 or Flase and 1 print(0 or False and 1) # Flase 總結: # x or y 如果 x為真,則值為x, 否則為y # x and y 如果 x 為真,則值為 y,否則為 x
運算符
1. 求結果:2 & 5
print(2 & 5) # 10 & 101 => 000 => 0
2. 求結果:2 ^ 5
print(2 ^ 5) # 10 ^ 101 => 111 => 1*2**0+1*2**1+1*2**2=1+2+4=7
13、ascii、unicode、utf-8、gbk 區別
python2內容進行編碼(默認ascii),而python3對內容進行編碼的默認為utf-8。 ascii 最多只能用8位來表示(一個字節),即:2**8 = 256,所以,ASCII碼最多只能表示 256 個符號。 unicode 萬國碼,任何一個字符==兩個字節 utf-8 萬國碼的升級版 一個中文字符==三個字節 英文是一個字節 歐洲的是 2個字節 gbk 國內版本 一個中文字符==2個字節 英文是一個字節 gbk 轉 utf-8 需通過媒介 unicode
4、字節碼和機器碼的區別
機器碼,學名機器語言指令,有時也被稱為原生碼,是電腦的CPU可直接解讀的數據。 字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。需要直譯器轉譯后才能成為機器碼。 什么是機器碼 機器碼(machine code),學名機器語言指令,有時也被稱為原生碼(Native Code),是電腦的CPU可直接解讀的數據。 通常意義上來理解的話,機器碼就是計算機可以直接執行,并且執行速度最快的代碼。 總結:機器碼是電腦CPU直接讀取運行的機器指令,運行速度最快,但是非常晦澀難懂,也比較難編寫 什么是字節碼 字節碼(Bytecode)是一種包含執行程序、由一序列 op 代碼/數據對 組成的二進制文件。 字節碼是一種中間碼,它比機器碼更抽象,需要直譯器轉譯后才能成為機器碼的中間代碼。 總結:字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。需要直譯器轉譯后才能成為機器碼。 ----------- #is 比較的是內存地址 #== 比較的是值 # int 具有范圍:-5---256 #對于int 小數據池 范圍:-5----256 創建的相間的數字,都指向同一個內存地址 #對于字符串 (面試) 1、小數據池 如果有空格,那指向兩個內存地址, 2、長度不能超過 20 3、不能用特殊字符 i = 'a'*20 j = 'a'*20 print(i is j) # True i = "a"*21 j = "a"*21 print(i is j) # False 關于編碼所占字節 unicode: 所有字符(無論英文、中文等) 1個字符:2個字節 gbk:一個字符,英文1個字節,中文兩個字節 utf-8:英文1個字節、 歐洲:2個字節, 亞洲:3個字節 在utf-8中,一個中文字符占用3個字節 在gbk中一個漢字占用2個字節 黎詩 = utf-8(6字節)=48 黎詩 = gbk(4字節)=32 字節和位的關系。 #一個字節(byte) = 8 位(bit) # 位為最小的單位 簡述變量命名規范 #1、以字母,數字,下劃線任由結合 #2、不能以命名太長,不使用拼音,中文 #3、不能以數字開頭 #4、不能用關鍵詞
5、三元運算寫法和應用場景?
應用場景:簡化if語句 # 關于三元運算 # 結果+ if + 條件 + else + 結果 result='gt' if 1>3 else 'lt' print(result) # lt # 理解:如果條件為真,把if前面的值賦值給變量,否則把else后面的值賦值給變量。 lambda 表達式 temp = lambda x,y:x+y print(temp(4,10)) # 14 可替代: def foo(x,y): return x+y print(foo(4,10)) # 14
6、Python3和Python2的區別?
1:打印時,py2需要可以不需要加括號,py3 需要 python 2 :print ('lili') , print 'lili' python 3 : print ('lili') python3 必須加括號 exec語句被python3廢棄,統一使用exec函數 2:內涵 Python2:1,臃腫,源碼的重復量很多。 2,語法不清晰,摻雜著C,php,Java,的一些陋習。 Python3:幾乎是重構后的源碼,規范,清晰,優美。 3、輸出中文的區別 python2:要輸出中文 需加 # -*- encoding:utf-8 -*- Python3 : 直接搞 4:input不同 python2 :raw_input python3 :input 統一使用input函數 5:指定字節 python2在編譯安裝時,可以通過參數-----enable-unicode=ucs2 或-----enable-unicode=ucs4分別用于指定使用2個字節、4個字節 表示一個unicode; python3無法進行選擇,默認使用 ucs4 查看當前python中表示unicode字符串時占用的空間: impor sys print(sys.maxunicode) #如果值是65535,則表示使用usc2標準,即:2個字節表示 #如果值是1114111,則表示使用usc4標準,即:4個字節表示 6: py2:xrange range py3:range 統一使用range,Python3中range的機制也進行修改并提高了大數據集生成效率 7:在包的知識點里 包:一群模塊文件的集合 + __init__ 區別:py2 : 必須有__init__ py3:不是必須的了 8:不相等操作符"<>"被Python3廢棄,統一使用"!=" 9:long整數類型被Python3廢棄,統一使用int 10:迭代器iterator的next()函數被Python3廢棄,統一使用next(iterator) 11:異常StandardError 被Python3廢棄,統一使用Exception 12:字典變量的has_key函數被Python廢棄,統一使用in關鍵詞 13:file函數被Python3廢棄,統一使用open來處理文件,可以通過io.IOBase檢查文件類型
7、用一行代碼實現數值交換
a = 1 b = 2 a, b = b, a
8、Python3和Python2中int和long區別
在python3里,只有一種整數類型int,大多數情況下,和python2中的長整型類似。
9、xrange和range的區別
都在循環時使用,xrange內存性能更好,xrange用法與range完全相同,range一個生成list對象,xrange是生成器。
要生成很大的數字序列的時候,用xrange會比range性能優很多,因為不需要一上來就開辟一塊很大的內存空間。
在python2中:
range([start,] stop[, step]),根據start與stop指定的范圍以及step設定的步長,生成一個序列。
例子:
xrange用法與range完全相同,所不同的是生成的不是一個數組,而是一個生成器。
例子:
由上面的示例可以知道:要生成很大的數字序列的時候,用xrange會比range性能優很多,因為不需要一上來就開辟一塊很大的內存空間,這兩個基本上都是在循環的時候用。
在 Python 3 中,range() 是像 xrange() 那樣實現,xrange()被拋棄。
10、文件操作時:xreadlines和readlines的區別?
readlines 返回一個列表 xreadlines 返回一個生成器
感謝各位的閱讀!關于關于Python基礎的面試題及解決方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。