欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python面試題

系統(tǒng) 1721 0

python面試題

?

【持續(xù)更新】

1.如何判斷一個(gè)python對象的類型?

print?type(2017)print?type('junxi')

?

2.python里面如何生存隨機(jī)數(shù)?

import?random

num = random.random()

int_num = random.randint(1, 10)print?'隨機(jī)選取一個(gè)0-1之間的數(shù)', numprint?'隨機(jī)選取一個(gè)1-10之間的整數(shù)', int_num

?

3.寫出IP的python正則表達(dá)式

            
              import
            
            
               reimport os


            
            
              #
            
            
               cmd = os.system('ifconfig eth0 > ip_info.txt')with open('ip_info.txt', 'r') as path:
            
            
              
    text 
            
            =
            
               path.read()

    
            
            
              #
            
            
               print(text)
            
            
              #
            
            
               print(type(text))
            
            
              
    result 
            
            =
            
               re.findall(

        r
            
            
              '
            
            
              \b([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b
            
            
              '
            
            
              , text)


            
            
              #
            
            
               print(result)
            
          

?

?

4.寫盡可能多的str對象的方法

str1 = 'a,b,c,,D,11,222.33.55'print?str1.split('.')[0]

str1 = str1.replace('11', '99')print?str1print?str1.upper()print?str1.lower()

?

5.全局變量與局部變量的區(qū)別,如何在函數(shù)里面給一個(gè)全局變量賦值?

# 全局變量在函數(shù)內(nèi)部和外部都可以使用,局部變量只能在其作用域內(nèi)使用。

第一個(gè)例子:

            con = 
            
              '
            
            
              haha
            
            
              '
            
            
              def
            
            
               fun():

    
            
            
              global
            
            
               con

    con 
            
            = 
            
              '
            
            
              lolo
            
            
              '
            
            
              print
            
            
               (con)

fun()


            
            
              print
            
            (con)
          

第二個(gè)例子:

            
              下面這段代碼輸出什么?
num 
            
            = 9

            
              def
            
            
               f1():
    num 
            
            = 20
 

            
              def
            
            
               f2():
    
            
            
              print
            
            
               num
 
 
f2()
f1()
f2()
答案:

            
            9
9
            
              
num不是個(gè)全局變量,所以每個(gè)函數(shù)都得到了自己的num拷貝,如果你想修改num,則必須用global關(guān)鍵字聲明。比如下面這樣

num 
            
            = 9
 

            
              def
            
            
               f1():
    
            
            
              global
            
            
               num
    num 
            
            = 20
 

            
              def
            
            
               f2():
   
            
            
              print
            
            
               num
 
f2()
f1()
f2()
 

            
            
              #
            
            
               prints:
            
            
              
#
            
            
                    9
            
            
              
#
            
            
                    20
            
          

?

?

6.元組和列表的區(qū)別,有兩個(gè)list,b1=[1, 2, 3], b2[2, 3, 4],寫出合并代碼

# 元組內(nèi)容不可變,列表內(nèi)容可修改

            b1 = [1, 2, 3
            
              ]

b2 
            
            = [2, 3, 4]
            
              print
            
             b1 + b2
          

?

?

7.請寫出一段python代碼實(shí)現(xiàn)刪除一個(gè)List里面的重復(fù)元素。list1 = [1, 1, 2, 3, 4, 5, 4]

            list1 = [1, 1, 2, 3, 4, 5, 4, 6, 7, 7, 5, 2, 1
            
              ]

list1.sort()

last 
            
            = list1[-1]
            
              for
            
             i 
            
              in
            
             range(len(list1)-2, -1, -1
            
              ):

    
            
            
              if
            
             list1[i] ==
            
               last:

        
            
            
              del
            
            
               list1[i]

    
            
            
              else
            
            
              :

        last 
            
            = list1[i]
            
              print
            
             list1
          

?

?

8.寫入如下list的交集與差集代碼,b1=[1, 2, 3], b2=[2, 3, 4]

            b1 = [4, 1, 2, 3, 5
            
              ]

b2 
            
            = [2, 3, 4, 4, 4, 2, 1, 3, 6
            
              ]

same 
            
            = list((set(b1).union(set(b2))) ^ set(b1) ^ set(b2)) 
            
              #
            
            
               求交集print same
            
            
              
diff 
            
            = []   
            
              #
            
            
               求差集for i in b1:
            
            
              if
            
             i 
            
              not
            
            
              in
            
            
               b2:

        diff.append(i)
            
            
              for
            
             i 
            
              in
            
            
               b2:

    
            
            
              if
            
             i 
            
              not
            
            
              in
            
            
               b1:

        diff.append(i)
            
            
              print
            
            
               diff

union 
            
            = list(set(b1).union(set(b2)))  
            
              #
            
            
               求并集print union
            
          

?

9.請寫出一段python代碼實(shí)現(xiàn)list里排序a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]

a = ['a', 1, 2, 4, 2, 4, 5, 7, 10, 5, 5, 7, 8, 9, 0, 3, 'b', 'd', 'c']

b = sorted(a, key=lambda?a:a)print?b

?

10.D=[x * x for x in range(1, 10)], 請寫出D的輸出結(jié)果

D = [x * x for?x in?range(1, 10)]print?D

?

11.如何用python輸出一個(gè)fibonacci數(shù)列(100以內(nèi))

            
              def
            
            
               fib(n):

    num_list 
            
            = [1, 1
            
              ]

    
            
            
              print
            
            
              '
            
            
              fib數(shù)列第1個(gè)數(shù)是:
            
            
              '
            
            
              , num_list[0]

    
            
            
              print
            
            
              '
            
            
              fib數(shù)列第2個(gè)數(shù)是:
            
            
              '
            
            , num_list[1
            
              ]

    
            
            
              for
            
             i 
            
              in
            
             range(2
            
              , n):

        num 
            
            = num_list[i-1] + num_list[i-2
            
              ]

        num_list.append(num)

        
            
            
              print
            
            
              '
            
            
              fib數(shù)列第%s個(gè)數(shù)是:%s
            
            
              '
            
             % (i+1
            
              , num_list[i])

fib(
            
            100)
          

?

?

12.什么是lambda函數(shù)?下面這段代碼輸出是什么?

# 匿名函數(shù)就是不用定義函數(shù)名,寫成一行的實(shí)用小函數(shù),可直接賦值給一個(gè)變量使用,也可直接傳參使用。# 求20以內(nèi)的質(zhì)數(shù)

nums = range(2, 20)for?i in?nums:

nums = filter(lambda?x: x == i or?x % i, nums)print?nums

?

13.說說用過的幾種爬蟲框架及它們的優(yōu)缺點(diǎn),用過哪些解析Html的python庫?

"""

pyspider的優(yōu)點(diǎn)是簡單,立刻就能上手,腳本編寫規(guī)則。懂了的話,一小時(shí)寫甚至可以寫十多個(gè)爬蟲。

scrapy的優(yōu)點(diǎn)是自定義程度高,適合學(xué)習(xí)研究爬蟲技術(shù),要學(xué)習(xí)的相關(guān)知識也較多,故而完成一個(gè)爬蟲的時(shí)間較長。

beautifulsoup4

urllib

requests

"""

?

14.談一下對于多線程的理解,對于cou密集型和IO密集型怎么使用多線程,說說線程池,線程鎖的用法,有沒有用過multiprocessing或concurrent,futures?

答案:略。

?

1 5 . Python 的特點(diǎn)和優(yōu)點(diǎn)是什么?

答案:略。

?

16 . 深拷貝和淺拷貝的區(qū)別是什么?

深拷貝是將對象本身復(fù)制給另一個(gè)對象。這意味著如果對對象的副本進(jìn)行更改時(shí)不會影響原對象。在 Python 中,我們使用 deepcopy()函數(shù)進(jìn)行深拷貝,使用方法如下:

>>> import copy

>>> b=copy.deepcopy(a)

淺拷貝是將對象的引用復(fù)制給另一個(gè)對象。因此,如果我們在副本中進(jìn)行更改,則會影響原對象。使用 copy()函數(shù)進(jìn)行淺拷貝,使用方法如下:

>>> b=copy.copy(a)

?

17 TRY EXCEPT FINALLY 的執(zhí)行順序

try…except…except…[else…][finally…]

執(zhí)行 try下的語句,如果引發(fā)異常,則執(zhí)行過程會跳到except語句。對每個(gè)except分支順序嘗試執(zhí)行,如果引發(fā)的異常與except中的異常組匹配,執(zhí)行相應(yīng)的語句。如果所有的except都不匹配,則異常會傳遞到下一個(gè)調(diào)用本代碼的最高層try代碼中。

try下的語句正常執(zhí)行,則執(zhí)行else塊代碼。如果發(fā)生異常,就不會執(zhí)行;如果存在finally語句,最后總是會執(zhí)行。

?

18 .? ?Python里面如何生成隨機(jī)數(shù)?

答: random模塊

隨機(jī)整數(shù): random.randint(a,b):返回隨機(jī)整數(shù)x,a<=x<=b

random.randrange(start,stop,[,step]):返回一個(gè)范圍在(start,stop,step)之間的隨機(jī)整數(shù),不包括結(jié)束值。

隨機(jī)實(shí)數(shù): random.random( ):返回0到1之間的浮點(diǎn)數(shù)

random.uniform(a,b):返回指定范圍內(nèi)的浮點(diǎn)數(shù)

?

?

19 . 用一個(gè)例子解釋Python中的繼承。

繼承允許一個(gè)類獲得另一個(gè)類的所有成員 (比如屬性和方法)。繼承提供代碼可重用性,使創(chuàng)建和維護(hù)應(yīng)用程序變得更容易。我們繼承的類稱為super-class,繼承的類稱為派生/子類。

以下是 Python支持的不同類型的繼承:

a.? 單一繼承 - 派生類獲取單個(gè)超類的成員。

b.?Multi-level繼承 - 從基類base1繼承的派生類d1,d2繼承自base2。

c. 分層繼承 - 從一個(gè)基類可以繼承任意數(shù)量的子類

d. 多重繼承 - 派生類從多個(gè)基類繼承。

?

20 . 解釋Flask是什么及其好處?

Flask是基于“Werkzeug,Jinja2和良好意圖”BSD許可證的Python網(wǎng)絡(luò)微框架。 Werkzeug和Jinja2是它的兩個(gè)依賴項(xiàng)。這意味著它對外部庫幾乎沒有依賴性。它使框架變得輕盈,只是少量依賴于更新和更少的安全性錯(cuò)誤。

會話基本上允許您記住從一個(gè)請求到另一個(gè)請求的信息。在 flask中,會話使用簽名的cookie,以便用戶可以查看會話內(nèi)容并進(jìn)行修改。當(dāng)且僅當(dāng)有密鑰Flask.secret_key,用戶可以修改會話。

?

21 .?什么是負(fù)指數(shù),為什么使用它們?

Python中的序列是索引的,它由正數(shù)和負(fù)數(shù)組成。正的數(shù)字使用'0'作為第一個(gè)索引,'1'作為第二個(gè)索引,以此類推。

負(fù)數(shù)的索引從 '-1'開始,表示序列中的最后一個(gè)索引,' - 2'作為倒數(shù)第二個(gè)索引,依次類推。

?

22 .?如何用Python來進(jìn)行查詢和替換一個(gè)文本字符串?

可以使用 sub()方法來進(jìn)行查詢和替換,sub方法的格式為:

a. ?sub(replacement, string[,count=0])

b. replacement是被替換成的文本

c. string是需要被替換的文本

d. count是一個(gè)可選參數(shù),指最大被替換的數(shù)量

?

2 3.?解釋一下python的and-or語法

C表達(dá)式 bool ? a : b類似,但是bool and a or b,當(dāng) a 為假時(shí),不會象C表達(dá)式 bool ? a : b 一樣工作

應(yīng)該將 and-or 技巧封裝成一個(gè)函數(shù):

defchoose(bool, a,b):return(booland[a]or[b])[0]

因?yàn)? [a] 是一個(gè)非空列表,它永遠(yuǎn)不會為假。甚至 a 是 0 或 '' 或其它假值,列表[a]為真,因?yàn)樗幸粋€(gè)元素。

?

?

23 .?單引號,雙引號,三引號的區(qū)別?

單引號和雙引號是等效的,如果要換行,需要符號 (\),三引號則可以直接換行,并且可以包含注釋

如果要表示 Let’s go?這個(gè)字符串

單引號 s4 = ‘Let\’s go’

雙引號: s5 = “Let’s go”

s6 = ‘I realy like“python”!’

這就是單引號和雙引號都可以表示字符串的原因了。

?

24 .?當(dāng)退出 Python 時(shí)是否釋放所有內(nèi)存分配?

答案是否定的。那些具有對象循環(huán)引用或者全局命名空間引用的變量,在 Python 退出是往往不會被釋放

另外不會釋放 C 庫保留的部分內(nèi)容。

?

25 .?Python里面search()和match()的區(qū)別?

match()函數(shù)只檢測RE是不是在string的開始位置匹配,search()會掃描整個(gè)string查找匹配, 也就是說match()只有在0位置匹配成功的話才有返回,如果不是開始位置匹配成功的話,match()就返回none 。

?

26 .?如何在Python中隨機(jī)化列表中的項(xiàng)目?

考慮下面顯示的示例:

            
              from
            
             random 
            
              import
            
            
               shuffle

x 
            
            = [
            
              '
            
            
              Keep
            
            
              '
            
            , 
            
              '
            
            
              The
            
            
              '
            
            , 
            
              '
            
            
              Blue
            
            
              '
            
            , 
            
              '
            
            
              Flag
            
            
              '
            
            ,
            
              '
            
            
              Flying
            
            
              '
            
            , 
            
              '
            
            
              High
            
            
              '
            
            
              ]

shuffle(x)


            
            
              print
            
            (x)
          

以下代碼的輸出如下。

['Flying', 'Keep', 'Blue', 'High', 'The','Flag']

?

27、 __new__.__init__區(qū)別,如何實(shí)現(xiàn)單例模式,有什么優(yōu)點(diǎn)

__new__是一個(gè)靜態(tài)方法,__init__是一個(gè)實(shí)例方法
__new__返回一個(gè)創(chuàng)建的實(shí)例,__init__什么都不返回
__new__返回一個(gè)cls的實(shí)例時(shí)后面的__init__才能被調(diào)用
當(dāng)創(chuàng)建一個(gè)新實(shí)例時(shí)調(diào)用__new__,初始化一個(gè)實(shí)例時(shí)調(diào)用__init__

?

28、深淺拷貝

淺拷貝只是增加了一個(gè)指針指向一個(gè)存在的地址,而深拷貝是增加一個(gè)指針并且開辟了新的內(nèi)存,這個(gè)增加的指針指向這個(gè)新的內(nèi)存,
采用淺拷貝的情況,釋放內(nèi)存,會釋放同一內(nèi)存,深拷貝就不會出現(xiàn)釋放同一內(nèi)存的錯(cuò)誤

?

29、HTTP/IP相關(guān)協(xié)議,分別位于哪層

http協(xié)議是超文本傳輸協(xié)議,http協(xié)議是基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)
http協(xié)議工作與c/s架構(gòu)上,瀏覽器作為http的客戶端通過URL向http服務(wù)端即web服務(wù)器發(fā)送所用請求。web服務(wù)器收到所有請求后,向客戶端發(fā)送響應(yīng)信息,
http特點(diǎn)是短連接,無狀態(tài)

地址欄鍵輸入U(xiǎn)RL,按下回車之后經(jīng)歷了什么?
1.瀏覽器向DNS服務(wù)器請求解析該URL中的域名所對應(yīng)的IP地址
2.解析出IP地址后,根據(jù)IP地址和默認(rèn)端口80,和服務(wù)器建立TCP連接
3.瀏覽器發(fā)出讀取文件的http請求,該請求報(bào)文作為TCP三次握手的第三個(gè)報(bào)文的數(shù)據(jù)發(fā)送給服務(wù)器
4.服務(wù)器對瀏覽器請求做出響應(yīng),并把對應(yīng)的html文件發(fā)送給瀏覽器
5.釋放TCP連接
6.瀏覽器將該HMTL渲染并顯示內(nèi)容

?

30、TCP/UDP區(qū)別

TCP協(xié)議是面向連接,保證高可靠性(數(shù)據(jù)無丟失,數(shù)據(jù)無失序,數(shù)據(jù)無錯(cuò)誤,數(shù)據(jù)無重復(fù)達(dá)到)傳輸層協(xié)議
UDP:數(shù)據(jù)丟失,無秩序的傳輸層協(xié)議(qq基于udp協(xié)議)

?

31、webscoket

websocket是基于http協(xié)議的,可持續(xù)化連接
輪詢:瀏覽器每隔幾秒就發(fā)送一次請求,詢問服務(wù)器是否有新消息
長輪詢:客戶端發(fā)起連接后,如果沒有消息,就一直不返回response給客戶端,直到有消息返回,返回完之后,客戶端再次發(fā)起連接

?

32、RabbitMQ:

服務(wù)器端有Erlang語言來編寫,支持多種客戶端,只會ajax,用于分布式系統(tǒng)中存儲轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性的方面不俗。
connection是RabbitMQ的socket連接,它封裝了socket部分相關(guān)協(xié)議邏輯
connectionFactroy為connection的制造工廠
channel是我們與RabbitMQ打交道的最重要的一個(gè)接口,大部分的業(yè)務(wù)操作是在chaanel這個(gè)接口中完成,包括定義Queue、定義Exchange、
綁定Queue與Exchange,發(fā)布消息等

?

33、裝飾器

調(diào)用裝飾器其實(shí)是一個(gè)閉包函數(shù),為其他函數(shù)添加附加功能,不修改被修改的源代碼和不修改被修飾的方式,裝飾器的返回值也是一個(gè)函數(shù)對象。
比如:插入日志、性能測試、事物處理、緩存、權(quán)限驗(yàn)證等,有了裝飾器,就可以抽離出大量與函數(shù)功能本身無關(guān)的雷同代碼并繼續(xù)重用。

34、閉包

1.必須有一個(gè)內(nèi)嵌函數(shù)
2.內(nèi)嵌函數(shù)必須引用外部函數(shù)的變量(該函數(shù)包含對外作用域而不是全局作用域名字的引用)
3.外部函數(shù)的返回值必須是內(nèi)嵌函數(shù)

?

35、迭代器與生成器

迭代可迭代對象對應(yīng)_iter_(方法)和迭代器對應(yīng)_next_(方法)的一個(gè)過程
生成器:包括含有yield這個(gè)關(guān)鍵字,生成器也是迭代器,調(diào)動next把函數(shù)變成迭代器。

?

36、classmethod,staticmethod,property

類方法:將類的函數(shù)轉(zhuǎn)換成類方法,函數(shù)上裝飾@classmethod會將函數(shù)的自動傳值參數(shù)改成cls
靜態(tài)方法:此方法相當(dāng)于給類擴(kuò)展一個(gè)功能,將類內(nèi)的函數(shù)實(shí)例化,給類或?qū)ο笫褂茫藭r(shí)類內(nèi)的函數(shù)就是普通函數(shù),不管是類還是實(shí)例化的對象都可以使用
實(shí)例化:類的實(shí)例化就會產(chǎn)生一個(gè)實(shí)例(對象),可以理解為類()把虛擬的東西實(shí)例化,得到具體存在的值

37、HTTP常用的狀態(tài)碼

200--服務(wù)器成功返回網(wǎng)頁
204--請求收到,但返回信息為空
304--客戶端已經(jīng)執(zhí)行了GET,但文件未變化
400--錯(cuò)誤請求,如語法錯(cuò)誤
403--無權(quán)限訪問
404--請求的頁面不存在
500--服務(wù)器產(chǎn)生內(nèi)部錯(cuò)誤
?
38、多進(jìn)程,多線程,協(xié)程,GIL

GIL:全局解釋器鎖,是鎖在cpython解釋器上,導(dǎo)致同一時(shí)刻,同一進(jìn)程只能有一個(gè)線程被執(zhí)行
多進(jìn)程:多進(jìn)程模塊multiprocessing來實(shí)現(xiàn),cpu密集型,IO計(jì)算型可以用多進(jìn)程
多線程:多線程模塊threading來實(shí)現(xiàn),IO密集型,多線程可以提高效率
協(xié)程:依賴于geenlet,對于多線程應(yīng)用。cpu通過切片的方式來切換線程間的執(zhí)行,遇到IO操作自動切換,線程切換時(shí)需要耗時(shí),
而協(xié)成好處沒有切換的消耗,沒有鎖定概念。
進(jìn)程:是資源管理單位,進(jìn)行是相互獨(dú)立的,實(shí)現(xiàn)并發(fā)和并發(fā)
線程:是最小的執(zhí)行單位,線程的出現(xiàn)為了降低上下文切換的消耗,提供系統(tǒng)的并發(fā)性

?

39、IO多路復(fù)用/異步非阻塞

IO多路復(fù)用:通過一種機(jī)制,可以監(jiān)聽多個(gè)描述符 select/poll/epoll
select:連接數(shù)受限,查找配對速度慢,數(shù)據(jù)由內(nèi)核拷貝到用戶態(tài)
poll:改善了連接數(shù),但是還是查找配對速度慢,數(shù)據(jù)由內(nèi)核拷貝到用戶態(tài)
epoll:epoll是linux下多路復(fù)用IO接口,是select/poll的增強(qiáng)版,它能顯著提高程序在大量并發(fā)連接中只有少量活躍的情況下的系統(tǒng)CPU利用率
異步非阻塞:異步體現(xiàn)在回調(diào)上,回調(diào)就是有消息返回時(shí)告知一聲兒進(jìn)程進(jìn)行處理。非阻塞就是不等待,不需要進(jìn)程等待下去,
繼續(xù)執(zhí)行其他操作,不管其他進(jìn)程的狀態(tài)。

?

40、PEP8規(guī)范,規(guī)范的好處是什么?

1.縮進(jìn):4個(gè)空實(shí)現(xiàn)縮進(jìn),盡量不使用Tab
2.行:沒行最大長度不超過79,換行可以使用反斜杠
3.命名規(guī)范:
4.注釋規(guī)范:

?

41、range-and-xrange

都在循環(huán)時(shí)使用,xrange內(nèi)存性能更好,xrange用法與range完全相同,range一個(gè)生成list對象,xrange是生成器

?

42、with上下文機(jī)制原理

_enter_和_exit_,上下文管理協(xié)議,即with語句,為了讓一個(gè)對象兼容with語句,必須在這個(gè)對象類中聲明_enter_和_exit_方法,
使用with語句的目的就是把代碼塊放入with中執(zhí)行,with結(jié)束后,自動完成清理工作,無須收到干預(yù)

?

43、經(jīng)典類、新式類

經(jīng)典類遵循:深度優(yōu)先,python2中
新式類遵循:廣度優(yōu)先,Python3中

?

44、有沒有一個(gè)工具可以幫助查找Python的bug和進(jìn)行靜態(tài)的代碼分析?

PyChecker是一個(gè)Python代碼的靜態(tài)分析工具,它可以幫助查找Python代碼的bug,會對代碼的復(fù)雜度和格式提出警告,
Pylint是另外一個(gè)工具可以進(jìn)行codingstandard檢查

45、 Python是如何進(jìn)行內(nèi)存管理的

1.對象引用計(jì)數(shù):
引用計(jì)數(shù)增加的情況:
來保持追蹤內(nèi)存中的對象,所有對象都用引用計(jì)數(shù),一個(gè)對象分配一個(gè)新名稱
將其放入一個(gè)容器中(列表,字典,元祖)
引用計(jì)數(shù)減少的情況:
使用del語句對對象別名顯示的銷毀
引用超出作用域或被重新賦值
sys.getrefcount()函數(shù)可以獲得對象的當(dāng)前引用計(jì)數(shù)
2.標(biāo)記-清除機(jī)制

3.分代技術(shù)

?

46、什么是python?使用python有什么好處?

python是一種編程語言,它有對象、模塊、線程、異常處理和自動內(nèi)存管理。它簡潔,簡單、方便、容易擴(kuò)展、有許多自帶的數(shù)據(jù)結(jié)果,而且它開源



47、什么是pickling和unpickling?

Pickle模塊讀入任何python對象,將它們轉(zhuǎn)換成字符串,然后使用dump函數(shù)將其轉(zhuǎn)儲到一個(gè)文件中——這個(gè)過程叫做pickling
反之從存儲的字符串文件中提取原始python對象的過程,叫做unpickling

?

48、python是如何被解釋的?

Python是一種解釋性語言,它的源代碼可以直接運(yùn)行,Python解釋器會將源代碼轉(zhuǎn)換成中間語言,之后再翻譯成機(jī)器碼再執(zhí)行

49、數(shù)組和元祖之間的區(qū)別是什么?

數(shù)組和元祖之間的區(qū)別:數(shù)組內(nèi)容可以被修改,而元祖內(nèi)容是只讀的,不可被修改的,另外元祖可以被哈希,比如作為字典的key

?

50、參數(shù)按值傳遞和引用傳遞是怎么實(shí)現(xiàn)的?

python中的一切都是類,所有的變量都是一個(gè)對象的引用。引用的值是由函數(shù)確定的,因此無法被改變,但是如果一個(gè)對象是可以被修改的,你可以改動對象

?

51、Python都有哪些自帶的數(shù)據(jù)結(jié)構(gòu)?

Python自帶的數(shù)據(jù)結(jié)構(gòu)分為可變和不可變的:可變的有:數(shù)組、集合、字典,不可變的是:字符串、元祖、整數(shù)

?

52、什么是python的命名空間?

在python中,所有的名字都存在于一個(gè)空間中,它們在改空間中存在和被操作——這就是命名空間,它就好像一個(gè)盒子,在每個(gè)變量名字都對應(yīng)裝著一個(gè)對象,
當(dāng)查詢變量的時(shí)候,會從該盒子里面尋找相應(yīng)的對象

?

53、python中的unittest是什么?

在python中,unittest是python中的單元測試框架,它擁有支持共享搭建、自動測試、在測試中暫停代碼、將不同測試迭代成一組

?

54、*args與**kwargs

*args代表位置參數(shù),它會接收任意多個(gè)參數(shù)并把這些參數(shù)作為元祖?zhèn)鬟f給函數(shù)。**kwargs代表的關(guān)鍵字參數(shù),返回的是字典,位置參數(shù)一定要放在關(guān)鍵字前面

55、在Python中什么是slicing?

slicing是一種在有序的對象類型中(數(shù)組、元祖、字符串)節(jié)選某一段的語法

56、python中的docstring是什么?

Python中文檔字符串被稱為docstring,它在Python中的作用是為函數(shù)、模塊和類注釋生成文檔

?

57、os與sys區(qū)別

os是模塊負(fù)責(zé)程序與操作系統(tǒng)的交互,提供了訪問操作系統(tǒng)底層的接口
sys模塊是負(fù)責(zé)程序與python解釋器的交互,提供了一系列的函數(shù)和變量,用于操控Python時(shí)運(yùn)行的環(huán)境


58、實(shí)現(xiàn)一個(gè)單例模式

_new_()在 _init_()之前被調(diào)用,用于生成實(shí)例對象。利用這個(gè)方法和類的屬性的特點(diǎn)可以實(shí)現(xiàn)設(shè)計(jì)模式的單例模式。
單例模式是指創(chuàng)建唯一對象,單例模式設(shè)計(jì)的類只能實(shí)例,實(shí)例化1個(gè)對象

            
              class
            
            
               Singleton(object):

            
            
              __instance
            
            =
            
              None

            
            
              def
            
            
              __init__
            
            
              (self):

            
            
              pass
            
            
              def
            
            
              __new__
            
            (cls, *args, **
            
              kwargs):

            
            
              if
            
             Singleton.
            
              __instance
            
            
              is
            
            
               None:
Singleton.
            
            
              __instance
            
            =object.
            
              __new__
            
            (cls,*args,**
            
              kwargs)

            
            
              return
            
             Singleton.
            
              __instance
            
          

?

?

59、閉包

寫一個(gè)函數(shù),接收整數(shù)參數(shù)n,返回一個(gè)函數(shù),函數(shù)的功能是把函數(shù)的參數(shù)和n相乘并把結(jié)果返回。

            
              def
            
            
               mulby(num):
    
            
            
              def
            
            
               gn(val):
        
            
            
              return
            
             num *
            
               val
    
            
            
              return
            
            
               gn
 
zw 
            
            = mulby(7
            
              )

            
            
              print
            
            (zw(9));
          

?

60、一行代碼交換兩個(gè)變量值

            a=8
            
              
b
            
            =9
            
              
答案:
(a,b) 
            
            = (b,a)
          

?

?

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲激情小视频 | 国产激情91久久精品导航 | 欧美日韩国产在线人成dvd | 边摸边吃奶边做激情叫床 | 一本一本大道香蕉久在线精品 | 午夜小网站 | 亚洲国产精品久久人人爱 | 日本一区二区三区免费观看 | 亚洲 欧美 另类 综合 偷拍 | 欧美变态口味重另类日韩毛片 | 国产视频成人 | 欧美另类专区 | 久久久精品日本 | 日本免费一区二区三区视频 | 在线视频一区二区 | 午夜剧院官方 | 免费一级大毛片a一观看不卡 | 久久久中文字幕 | 亚洲精品在线播放视频 | 国内精品一区二区三区最新 | 国产激情91久久精品导航 | 羞羞的视频在线免费观看 | 很黄很暴力深夜爽爽无遮挡 | 天天干视频网站 | 天堂色网站 | 亚洲精品久久久久一区二区 | 亚洲免费人成 | 起视碰碰97摸摸碰碰视频 | 91欧美精品综合在线观看 | 成人高清网站 | 欧美a一级大片 | 色综合久久88色综合天天 | 精品一区二区三区在线观看 | 欧美成人精品久久精品 | 久久久精彩视频 | 日韩免费在线视频 | 伊人a.v在线 | 羞羞视频在线免费 | 日韩女同一区二区三区 | 一区二区日韩 | 国产成人精品午夜 |