【Python八股文系列】:100個Python的面試/筆試高頻考點
1. 解釋型和編譯型語言的區(qū)別
編譯型語言:把做好的源程序全部編譯成二進制的可運行程序。然后,可直接運行這個程序。如:C,C++ ;
解釋型語言:把做好的源程序翻譯一句,然后執(zhí)行一句,直至結(jié)束!如:Python。
注意:Java 有些特殊,java程序也需要編譯,但是沒有直接編譯成為機器語言,而是編譯稱為字節(jié)碼,然后用解釋方式執(zhí)行字節(jié)碼。
2. 簡述下 Python 中的字符串、列表、元組和字典
字符串(str):字符串是用引號括起來的任意文本,是編程語言中最常用的數(shù)據(jù)類型。
列表(list):列表是有序的集合,可以向其中添加或刪除元素。
元組(tuple):元組也是有序集合,元組中的數(shù)無法修改。即元組是不可變的。
字典(dict):字典是無序的集合,是由鍵值對(key-value)組成的。
集合(set):是一組 key 的集合,每個元素都是唯一,不重復(fù)且無序的。
\quad
\quad
3. 簡述上述數(shù)據(jù)類型的常用方法
字符串:
切片:'luobodazahui'[1:3]
format:"welcome to luobodazahui, dear {name}"format(name="baby")
join:可以用來連接字符串,將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串。'-'.join(['luo', 'bo', 'da', 'za', 'hui'])
String.replace(old,new,count):將字符串中的 old字符替換為 New字符,count為替換的個數(shù) 'luobodazahui-haha'.replace('haha', 'good')
split:切割字符串,得到一個列表
>>> mystr5 = 'luobo,dazahui good'
>>> print(mystr5.split())? # 默認以空格分割
['luobo,dazahui', 'good']
>>> print(mystr5.split('h'))? # 以h分割
['luobo,daza', 'ui good']
>>> print(mystr5.split(','))? # 以逗號分割
['luobo', 'dazahui good']
列表:
切片,同字符串
append
和?extend
向列表中添加元素

刪除元素?
del
:根據(jù)下標進行刪除
pop
:刪除最后一個元素remove
:根據(jù)元素的值進行刪除

元素排序?
sort
:是將list
按特定順序重新排列,默認為由小到大,參數(shù)?reverse=True
可改為倒序,由大到小。

字典:
清空字典?
dict.clear()

指定刪除:使用?
pop
方法來指定刪除字典中的某一項(隨機的)。

遍歷字典

fromkeys
用于創(chuàng)建一個新字典,以序列中元素做字典的鍵,value
為字典所有鍵對應(yīng)的初始值。

4. 簡述 Python 中的字符串編碼
計算機在最初的設(shè)計中,采用了8個比特(bit)作為一個字節(jié)(byte)的方式。一個字節(jié)能表示的最大的整數(shù)就是255,如果要表示更大的整數(shù),就必須用更多的字節(jié)。最早,計算機只有 ASCII 編碼,即只包含大小寫英文字母、數(shù)字和一些符號,這些對于其他語言,如中文,日文顯然是不夠用的。后來又發(fā)明了Unicode,Unicode把所有語言都統(tǒng)一到一套編碼里,這樣就不會再有亂碼問題了。當需要保存到硬盤或者需要傳輸?shù)臅r候,就轉(zhuǎn)換為UTF-8編碼。UTF-8 是隸屬于 Unicode 的可變長的編碼方式。
在 Python 中,以 Unicode 方式編碼的字符串,可以使用 encode() 方法來編碼成指定的 bytes,也可以通過 decode()方法來把 bytes編碼成字符串。

5. 一行代碼實現(xiàn)數(shù)值交換

6. is 和 == 的區(qū)別
==
是比較操作符,只是判斷對象的值(value)是否一致,而?is
?則判斷的是對象之間的身份(內(nèi)存地址)是否一致。對象的身份,可以通過?id()
?方法來查看。

只有?id
一致時,is
比較才會返回?True
,而當?value
一致時,==
?比較就會返回?True
。
7. Python 函數(shù)中的參數(shù)類型
位置參數(shù),默認參數(shù),可變參數(shù),關(guān)鍵字參數(shù)。
\quad
\quad
8. *arg 和 **kwarg 作用
允許我們在調(diào)用函數(shù)的時候傳入多個實參

可以看出,*arg
?會把位置參數(shù)轉(zhuǎn)化為?tuple
,**kwarg
?會把關(guān)鍵字參數(shù)轉(zhuǎn)化為?dict
。
9. 獲取當前時間

????
11. Python 的深淺拷貝(????)
淺拷貝

淺拷貝只成功”獨立“拷貝了列表的外層,而列表的內(nèi)層列表,還是共享的。(劃重點!?。。?/p>
深拷貝

