python面試題

1、一行代碼實現(xiàn)1到100的和

print (sum([i for i in range(1, 101)]))
#5050

2、如何在一個函數(shù)內(nèi)部修改全局變量

a=8
def f():
  global a
  a = 10
f()
print (a)

3、列出5個python標準庫

os:操作系統(tǒng)
sys:對解釋器使用或維護的一些變量的訪問,以及與解釋器強烈交互的函數(shù)。
math:數(shù)學函數(shù)
re:正則表達式
datetime:日期和時間

4、字典如何刪除鍵和合并兩個字典

a = {'aa':1,'bb':2}
b = {'cc':12, 'bb':34}
#刪除鍵
del a['aa']
#a={'bb':2}
#合并字典
from collections import ChainMap
c = ChainMap(a, b)
#c={'aa':1, 'bb':2, 'cc':12}

5、談下python的GIL

        GIL 是python的全局解釋器鎖,同一進程中假如有多個線程運行,一個線程在運行python程序的時候會霸占python解釋器(加了一把鎖即GIL),使該進程內(nèi)的其他線程無法運行,等該線程運行完后其他線程才能運行。如果線程運行過程中遇到耗時操作,則解釋器鎖解開,使其他線程運行。所以在多線程中,線程的運行仍是有先后順序的,并不是同時進行。

      多進程中因為每個進程都能被系統(tǒng)分配資源,相當于每個進程有了一個python解釋器,所以多進程可以實現(xiàn)多個進程的同時運行,缺點是進程系統(tǒng)資源開銷大

6、python實現(xiàn)列表去重的方法

#列表去重
list1 = [1,2,3,4,5,4,3,56]
list2 = list(set(list1))
print  (list2)
#list2=[1,2,3,4,5,56]

7、fun(*args,**kwargs)中的*args,**kwargs什么意思?
*args表示不定數(shù)量的參數(shù)列表;

def fun(*args):
    for i in args:
        print (i)
fun('arg1','arg2','arg3')
#arg1
#arg2
#arg3

**kwargs表示不定數(shù)量的含鍵值對

def fun2(**kwargs):
    for key in kwargs:
        print ("%s:%s" %(key,kwargs[key]))
fun2(arg1=1,arg2=2,arg3=3)
#arg1:1
#arg2:2
#arg3:3

8、python2和python3的range(100)的區(qū)別
python2中的range返回的是一個列表
python3中的range返回的是一個迭代值
9、一句話解釋什么樣的語言能夠用裝飾器?
函數(shù)可以作為參數(shù)傳遞的語言,可以使用裝飾器
10、python內(nèi)建數(shù)據(jù)類型有哪些
int/boot/list/tuple/dict/str
11、簡述面向?qū)ο笾?strong>new和init區(qū)別
12、with方法打開文件幫我們處理了什么?
答:finally中的close

14、python中生成隨機整數(shù)、隨機小數(shù)、0--1之間小數(shù)方法

隨機整數(shù):random.randint(a,b),生成區(qū)間內(nèi)的整數(shù)。

隨機小數(shù):習慣用numpy庫,利用np.random.randn(5)生成5個隨機小數(shù)。

0-1隨機小數(shù):random.random(),括號中不傳參

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容