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(),括號中不傳參