1、一行代碼實現1--100之和
利用sum()函數求和
a=sum(range(0,101))
print('輸出1-100的和:')
print(a)
------------------執行以上程序,返回的結果為------------------
輸出1到100的和:
5050
2、如何在一個函數內部修改全局變量
利用global 修改全局變量
a=5 def fn(): global a a=4 fn()
print('利用global在一個函數內部修改全局變量:') print(a)
------------------執行以上程序,返回的結果為------------------
4
3、列出5個python標准庫
os:提供了不少與操作系統相關聯的函數
sys: 通常用於命令行參數
re: 正則匹配
math: 數學運算
datetime:處理日期時間
4、字典如何刪除鍵和合並兩個字典
del和update方法
dic={'name':'zs','age':18} print('字典1:')
print(dic) del dic['name'] print('字典刪除鍵')
print(dic)
dic2={'name':'1s'}
print('字典2:')
print(dic2)
dic.update(dic2)
print('合並字典1和字典2:')
print(dic)
------------------執行以上程序,返回的結果為------------------
字典1:
{'name': 'zs', 'age': 18}
字典刪除鍵
{'age': 18}
字典2:
{'name': '1s'}
合並字典1和字典2:
{'age': 18, 'name': '1s'}
5、談下python的GIL
GIL 是python的全局解釋器鎖,同一進程中假如有多個線程運行,一個線程在運行python程序的時候會霸占python解釋器(加了一把鎖即GIL),使該進程內的其他線程無法運行,等該線程運行完后其他線程才能運行。如果線程運行過程中遇到耗時操作,則解釋器鎖解開,使其他線程運行。所以在多線程中,線程的運行仍是有先后順序的,並不是同時進行。
多進程中因為每個進程都能被系統分配資源,相當於每個進程有了一個python解釋器,所以多進程可以實現多個進程的同時運行,缺點是進程系統資源開銷大
6、python實現列表去重的方法
先通過集合去重,在轉列表
list=[11,12,13,12,14,15] a=set(list) print(a)
------------------執行以上程序,返回的結果為------------------
{11, 12, 13, 14, 15}
7、fun(*args,**kwargs)中的*args,**kwargs什么意思?
8、python2和python3的range(100)的區別
python2返回列表,python3返回迭代器,節約內存
9、一句話解釋什么樣的語言能夠用裝飾器?
函數可以作為參數傳遞的語言,可以使用裝飾器
10、python內建數據類型有哪些
整型--int
布爾型--bool
字符串--str
列表--list
元組--tuple
字典--dict
11、簡述面向對象中__new__和__init__區別
__init__是初始化方法,創建對象后,就立刻被默認調用了,可接收參數,如圖
1、__new__至少要有一個參數cls,代表當前類,此參數在實例化時由Python解釋器自動識別
2、__new__必須要有返回值,返回實例化出來的實例,這點在自己實現__new__時要特別注意,可以return父類(通過super(當前類名, cls))__new__出來的實例,或者直接是object的__new__出來的實例
3、__init__有一個參數self,就是這個__new__返回的實例,__init__在__new__的基礎上可以完成一些其它初始化的動作,__init__不需要返回值
4、如果__new__創建的是當前類的實例,會自動調用__init__函數,通過return語句里面調用的__new__函數的第一個參數是cls來保證是當前類實例,如果是其他類的類名,;那么實際創建返回的就是其他類的實例,其實就不會調用當前類的__init__函數,也不會調用其他類的__init__函數。
12、簡述with方法打開處理文件幫我我們做了什么?
打開文件在進行讀寫的時候可能會出現一些異常狀況,如果按照常規的f.open
寫法,我們需要try,except,finally,做異常判斷,並且文件最終不管遇到什么情況,都要執行finally f.close()關閉文件,with方法幫我們實現了finally中f.close
(當然還有其他自定義功能,有興趣可以研究with方法源碼)