<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      第一部分 Python基礎(chǔ)篇(80題)

      面試題,來自配齊老師的315題,個(gè)人整理用~

      基礎(chǔ)題(80題):

      1.為什么學(xué)習(xí)Python?

      2.通過什么途徑學(xué)習(xí)的Python?

      3.Python和Java、PHP、C、C#、C++等其他語(yǔ)言的對(duì)比?

      4.簡(jiǎn)述解釋型和編譯型編程語(yǔ)言?

      解釋型語(yǔ)言編寫的程序不需要編譯,每個(gè)語(yǔ)句都是執(zhí)行的時(shí)候才翻譯,邊執(zhí)行,邊編譯。
      
      用編譯型語(yǔ)言寫的程序執(zhí)行之前,需要一個(gè)專門的編譯過程,通過編譯系統(tǒng),把源高級(jí)程序編譯成為機(jī)器語(yǔ)言文件(先編譯,再執(zhí)行)
      View Code

       

      5.Python解釋器種類以及特點(diǎn)?

      CPython
      
      當(dāng) 從Python官方網(wǎng)站下載并安裝好Python2.7后,就直接獲得了一個(gè)官方版本的解釋器:Cpython,這個(gè)解釋器是用C語(yǔ)言開發(fā)的,所以叫 CPython,在命名行下運(yùn)行python,就是啟動(dòng)CPython解釋器,CPython是使用最廣的Python解釋器。
      
      IPython
      
      IPython是基于CPython之上的一個(gè)交互式解釋器,也就是說,IPython只是在交互方式上有所增強(qiáng),但是執(zhí)行Python代碼的功能和CPython是完全一樣的,好比很多國(guó)產(chǎn)瀏覽器雖然外觀不同,但內(nèi)核其實(shí)是調(diào)用了IE。
      
      PyPy
      
      PyPy是另一個(gè)Python解釋器,它的目標(biāo)是執(zhí)行速度,PyPy采用JIT技術(shù),對(duì)Python代碼進(jìn)行動(dòng)態(tài)編譯,所以可以顯著提高Python代碼的執(zhí)行速度。
      
      Jython
      
      Jython是運(yùn)行在Java平臺(tái)上的Python解釋器,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行。
      
      IronPython
      
      IronPython和Jython類似,只不過IronPython是運(yùn)行在微軟.Net平臺(tái)上的Python解釋器,可以直接把Python代碼編譯成.Net的字節(jié)碼。
      
      在Python的解釋器中,使用廣泛的是CPython,對(duì)于Python的編譯,除了可以采用以上解釋器進(jìn)行編譯外,技術(shù)高超的開發(fā)者還可以按照自己的需求自行編寫Python解釋器來執(zhí)行Python代碼,十分的方便!
      View Code

       

      6.位和字節(jié)的關(guān)系?

      最小的存儲(chǔ)單位稱為位(bit);只能容納兩個(gè)值(0或1)之一,不能在一個(gè)位中存儲(chǔ)更多的信息。位是計(jì)算機(jī)存儲(chǔ)的基本單位。
      
      字節(jié)(byte)是常用的計(jì)算機(jī)存儲(chǔ)單位。字節(jié)的標(biāo)準(zhǔn)定義:一個(gè)字節(jié)均為8位。由于上述所講每個(gè)位或者是0或者是1,所以一個(gè)8位的字節(jié)包含256種可能的0,1組合
      
       
      View Code

       

      7.b、B、KB、MB、GB 的關(guān)系?

       

      8.請(qǐng)至少列舉5個(gè) PEP8 規(guī)范(越多越好)。

      空白:
      (1) 使用space(空格)來表示縮進(jìn),而不要用tab(制表符)
      
      (2) 和語(yǔ)法相關(guān)的每一層縮進(jìn)都用4個(gè)空格來表示
      
      (3) 每行字符數(shù)不應(yīng)該超過79個(gè)
      
      (4) 對(duì)于占據(jù)多行的長(zhǎng)表達(dá)式來說,除了首行之外的其余各行都應(yīng)該在通常的縮進(jìn)級(jí)別之上再加4個(gè)空格
      
      (5) 文件中的函數(shù)與類之間應(yīng)該用兩個(gè)空行隔開
      
      (6) 同一個(gè)類中,各方法之間應(yīng)該用一個(gè)空行隔開
      
      (7) 使用下標(biāo)來獲取元素、調(diào)用函數(shù)或給關(guān)鍵字參數(shù)賦值的時(shí)候,不要在兩邊加空格
      
      (8) 為變量賦值的時(shí)候,賦值符號(hào)的左側(cè)和右側(cè)應(yīng)該各自加上一個(gè)空格
      
      命名:略
      
      表達(dá)式和語(yǔ)句:略
      View Code

      9.通過代碼實(shí)現(xiàn)如下轉(zhuǎn)換:

      二進(jìn)制轉(zhuǎn)換成十進(jìn)制:v = “0b1111011”?
      十進(jìn)制轉(zhuǎn)換成二進(jìn)制:v = 18? 
      八進(jìn)制轉(zhuǎn)換成十進(jìn)制:v = “011”? 
      十進(jìn)制轉(zhuǎn)換成八進(jìn)制:v = 30? 
      十六進(jìn)制轉(zhuǎn)換成十進(jìn)制:v = “0x12”? 
      十進(jìn)制轉(zhuǎn)換成十六進(jìn)制:v = 87

       

      10.請(qǐng)編寫一個(gè)函數(shù)實(shí)現(xiàn)將IP地址轉(zhuǎn)換成一個(gè)整數(shù)。

        如 10.3.9.12 轉(zhuǎn)換規(guī)則為:
                10            00001010
      ?           3            00000011?
                 9            00001001
      ?          12            00001100?
        再將以上二進(jìn)制拼接起來計(jì)算十進(jìn)制結(jié)果:00001010 00000011 00001001 00001100 = ?

      11.python遞歸的最大層數(shù)?

        答案:998,不超過1000。這是python專門設(shè)置的一種機(jī)制用來防止無限遞歸造成Python溢出崩潰。

      12.求結(jié)果:

          v1 = 1 or 3?
          v2 = 1 and 3?
          v3 = 0 and 2 and 1
      ?    v4 = 0 and 2 or 1
      ?    v5 = 0 and 2 or 1 or 4
      ?    v6 = 0 or Flase and 1

       

      13.ascii、unicode、utf-8、gbk 區(qū)別?

      14.字節(jié)碼和機(jī)器碼的區(qū)別?

      15.三元運(yùn)算規(guī)則以及應(yīng)用場(chǎng)景?

      16.列舉 Python2和Python3的區(qū)別  

      17.用一行代碼實(shí)現(xiàn)數(shù)值交換:
           ? a = 1
       ?     b = 2

      18.Python3和Python2中 int 和 long的區(qū)別?

      19.xrange和range的區(qū)別?

      View Code

       

      20.文件操作時(shí):xreadlines和readlines的區(qū)別?

      readline()方法從字面意思可以看出,該方法每次讀出一行內(nèi)容,所以,讀取時(shí)占用內(nèi)存小,比較適合大文件,該方法返回一個(gè)字符串對(duì)象。
      
      readlines()方法讀取整個(gè)文件所有行,保存在一個(gè)列表(list)變量中,每行作為一個(gè)元素,但讀取大文件會(huì)比較占內(nèi)存。
      View Code

       

      21.列舉布爾值為False的常見值?

      22.字符串、列表、元組、字典每個(gè)常用的5個(gè)方法?

      23.lambda表達(dá)式格式以及應(yīng)用場(chǎng)景?

      24.pass的作用?

      25.*arg和**kwarg作用

      *arg和**kwarg 可以幫助我們處理上面這種情況,允許我們?cè)谡{(diào)用函數(shù)的時(shí)候傳入多個(gè)實(shí)參
      
      *arg會(huì)把多出來的位置參數(shù)轉(zhuǎn)化為tuple
      **kwarg會(huì)把關(guān)鍵字參數(shù)轉(zhuǎn)化為dict
      View Code

      26.is和==的區(qū)別  

      ==是python標(biāo)準(zhǔn)操作符中的比較操作符,用來比較判斷兩個(gè)對(duì)象的value(值)是否相等
      
      is也被叫做同一性運(yùn)算符,這個(gè)運(yùn)算符比較判斷的是對(duì)象間的唯一身份標(biāo)識(shí),也就是id是否相同
      
      例子:
      >>> x = y = [4,5,6]
      >>> z = [4,5,6]
      >>> x == y
      True
      >>> x == z
      True
      >>> x is y
      True
      >>> x is z
      False
      View Code

      27.簡(jiǎn)述Python的深淺拷貝以及應(yīng)用場(chǎng)景?

      導(dǎo)入模塊:import copy
      
      淺拷貝:copy.copy
      
      深拷貝:copy.deepcopy
      
      字面理解:淺拷貝指僅僅拷貝數(shù)據(jù)集合的第一層數(shù)據(jù),深拷貝指拷貝數(shù)據(jù)集合的所有層。所以對(duì)于只有一層的數(shù)據(jù)集合來說深淺拷貝的意義是一樣的,比如字符串,數(shù)字,還有僅僅一層的字典、列表、元祖等.
      
      對(duì)于數(shù)字和字符串的深淺拷貝都只是將變量的索引指向了原來的內(nèi)存地址,例如在sum,sum1,sum2三個(gè)變量中,無論修改任意其中一個(gè)變量,只是將其指向了另一個(gè)內(nèi)存地址,其他兩個(gè)變量不會(huì)變,字符串同理。因此,對(duì)于 數(shù)字 和 字符串 而言,賦值、淺拷貝和深拷貝無意義,因?yàn)槠溆肋h(yuǎn)指向同一個(gè)內(nèi)存地址。
      
      深淺拷貝都是對(duì)源對(duì)象的復(fù)制,占用不同的內(nèi)存空間
      如果源對(duì)象只有一級(jí)目錄的話,源做任何改動(dòng),不影響深淺拷貝對(duì)象(如:字符串和數(shù)字類型)
      如果源對(duì)象不止一級(jí)目錄的話,源做任何改動(dòng),都要影響淺拷貝,但不影響深拷貝
      序列對(duì)象的切片其實(shí)是淺拷貝,即只拷貝頂級(jí)的對(duì)象
      View Code

       

      28.Python垃圾回收機(jī)制?

      Python語(yǔ)言默認(rèn)采用的垃圾收集機(jī)制是『引用計(jì)數(shù)法 Reference Counting』
      
      『引用計(jì)數(shù)法』的原理是:每個(gè)對(duì)象維護(hù)一個(gè)ob_ref字段,用來記錄該對(duì)象當(dāng)前被引用的次數(shù),每當(dāng)新的引用指向該對(duì)象時(shí),它的引用計(jì)數(shù)ob_ref加1,每當(dāng)該對(duì)象的引用失效時(shí)計(jì)數(shù)ob_ref減1,一旦對(duì)象的引用計(jì)數(shù)為0,該對(duì)象立即被回收,對(duì)象占用的內(nèi)存空間將被釋放
      
      它的缺點(diǎn)是需要額外的空間維護(hù)引用計(jì)數(shù),這個(gè)問題是其次的,不過最主要的問題是它不能解決對(duì)象的“循環(huán)引用”,因此,也有很多語(yǔ)言比如Java并沒有采用該算法做來垃圾的收集機(jī)制。
      View Code

       

      29.Python的可變類型和不可變類型?

       

      Python的每個(gè)對(duì)象都分為可變和不可變,主要的核心類型中,數(shù)字、字符串、元組是不可變的,列表、字典是可變的。
      
       
      對(duì)不可變類型的變量重新賦值,實(shí)際上是重新創(chuàng)建一個(gè)不可變類型的對(duì)象,并將原來的變量重新指向新創(chuàng)建的對(duì)象(如果沒有其他變量引用原有對(duì)象的話(即引用計(jì)數(shù)為0),原有對(duì)象就會(huì)被回收)。
      View Code

       

       

      30.求結(jié)果:

      ?   v = dict.fromkeys(['k1','k2'],[])? 
         v[‘k1’].append(666)
      ?   print(v)?
         v[‘k1’] = 777
      ?   print(v)

       

      31.求結(jié)果

      def num():

        return [lambda x : i*x for i in range(4)]

      print ([m(2) for m in num()])

       

      32.列舉常見的內(nèi)置函數(shù)?

      33.filter、map、reduce的作用?  

       

      (1) filter, 遍歷序列中每個(gè)元素,判定每個(gè)元素得到的布爾值,如果是True,則留下來,一般用于過濾作用
      
      (2)map, 處理系列中每個(gè)元素,得到的結(jié)果是個(gè)“列表”,該列表元素個(gè)數(shù)和位置與原來一樣
      
      (3)reduce, 處理一個(gè)序列,然后把序列進(jìn)行合并操作(在python3中需要導(dǎo)入模塊,from funtools import reduce)
      View Code

       

       

       

      34.一行代碼實(shí)現(xiàn)9*9乘法表 

        

      print "\n".join("\t".join(["%s*%s=%s" %(x,y,x*y) for y in range(1, x+1)]) for x in range(1, 10))
      View Code

       

      35.如何安裝第三方模塊?以及用過哪些第三方模塊?

      36.至少列舉8個(gè)常用模塊都有那些?

      37.re的match和search區(qū)別?

      match()函數(shù)只檢測(cè)RE是不是在string的開始位置匹配,
      
      search()會(huì)掃描整個(gè)string查找匹配;
      
      也就是說match()只有在0位置匹配成功的話才有返回,
      
      如果不是開始位置匹配成功的話,match()就返回none。
      
      
      例如:
      print(re.match(‘super’, ‘superstition’).span())   會(huì)返回(0, 5)
      
      而print(re.match(‘super’, ‘insuperable’))   則返回None
      
      search()會(huì)掃描整個(gè)字符串并返回第一個(gè)成功的匹配
      例如:print(re.search(‘super’, ‘superstition’).span())返回(0, 5)
      
      print(re.search(‘super’, ‘insuperable’).span())返回(2, 7)
      View Code

      38.什么是正則的貪婪匹配?

        貪婪匹配:正則表達(dá)式一般趨向于最大長(zhǎng)度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字符串str,結(jié)果就是匹配到:abcaxc(ab.*c)。
      
        非貪婪匹配:就是匹配到結(jié)果就好,就少的匹配字符。如上面使用模式p匹配字符串str,結(jié)果就是匹配到:abc(ab.*c)。
      
        默認(rèn)是貪婪模式;在量詞后面直接加上一個(gè)問號(hào)?就是非貪婪模式。
      View Code

      39.求結(jié)果:? a. [ i % 2 for i in range(10) ]? b. ( i % 2 for i in range(10) )

      40.求結(jié)果:? a. 1 or 2? b. 1 and 2? c. 1 < (2==2)? d. 1 < 2 == 2 

      41. func(a,b=[]) 這種寫法有什么坑?

      def func(a,b=[]):
          b.append(a)
          print(b)
      func(1)
      func(1)
      func(1)
      func(1)
      
      看下結(jié)果
        [1]
        [1, 1]
        [1, 1, 1]
        [1, 1, 1, 1]
      
      函數(shù)的第二個(gè)默認(rèn)參數(shù)是一個(gè)list,當(dāng)?shù)谝淮螆?zhí)行的時(shí)候?qū)嵗艘粋€(gè)list,第二次執(zhí)行還是用第一次執(zhí)行的時(shí)候?qū)嵗牡刂反鎯?chǔ),所以三次執(zhí)行的結(jié)果就是 [1, 1, 1] ,想每次執(zhí)行只輸出[1] ,默認(rèn)參數(shù)應(yīng)該設(shè)置為None。
      View Code

      42.如何實(shí)現(xiàn) “1,2,3” 變成 [‘1’,’2’,’3’] ?

      43.如何實(shí)現(xiàn)[‘1’,’2’,’3’]變成[1,2,3] ?

      44.比較: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的區(qū)別?

      45.如何用一行代碼生成[1,4,9,16,25,36,49,64,81,100]

       46.一行代碼實(shí)現(xiàn)刪除列表中重復(fù)的值 ?

      47.如何在函數(shù)中設(shè)置一個(gè)全局變量 ?

      有一個(gè)全局file_content 的list,在函數(shù)內(nèi)部向其append數(shù)據(jù),是可以的,不需要加global 修飾,
      
      但是當(dāng) 在函數(shù)內(nèi)部進(jìn)行對(duì)其 賦值操作時(shí),需要用global修飾該全局變量,因?yàn)橘x值操作默認(rèn)作為局部變量, 
      對(duì)全局變量進(jìn)行賦值修改,需要進(jìn)行顯示global聲明 
      每一次讀取file_content時(shí)候,讀取完或者開始讀取的時(shí)候要重新對(duì)該list清空, 
      防止每次讀取都會(huì)將上一次內(nèi)容讀重復(fù)讀取到,所以在賦值為空的時(shí)候 就必須用到global修飾該list變量, 
      View Code

      48.logging模塊的作用?以及應(yīng)用場(chǎng)景?

      Python的logging模塊提供了通用的日志系統(tǒng),可以方便第三方模塊或者是應(yīng)用使用。這個(gè)模塊提供不同的日志級(jí)別,并可以采用不同的方式記錄日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己實(shí)現(xiàn)具體的日志記錄方式。
      
      使用場(chǎng)景的,比如說:開發(fā)一個(gè)日志系統(tǒng), 既要把日志輸出到控制臺(tái), 還要寫入日志文件。
      View Code

      49.請(qǐng)用代碼簡(jiǎn)答實(shí)現(xiàn)stack

      50.常用字符串格式化哪幾種?

      第一種:最方便的
      
      缺點(diǎn):需一個(gè)個(gè)的格式化
      
      print('hello %s and %s'%('df','another df'))
       
      
      第二種:最好用的
      
      優(yōu)點(diǎn):不需要一個(gè)個(gè)的格式化,可以利用字典的方式,縮短時(shí)間
      
      print('hello %(first)s and %(second)s'%{'first':'df' , 'second':'another df'})
      
      第三種:最先進(jìn)的
      
          優(yōu)點(diǎn):可讀性強(qiáng)
      
      print('hello {first} and {second}'.format(first='df',second='another df'))
      View Code

       

      51.簡(jiǎn)述 生成器、迭代器、可迭代對(duì)象 以及應(yīng)用場(chǎng)景?

      迭代器的應(yīng)用場(chǎng)景
          1).  如果數(shù)列的數(shù)據(jù)規(guī)模巨大
          2).  數(shù)列有規(guī)律,但是依靠列表推導(dǎo)式描述不出來
      View Code

       

      52.用Python實(shí)現(xiàn)一個(gè)二分查找的函數(shù)。

      data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35]
      
      def binary_search(dataset,find_num):
          if len(dataset) > 1:
              mid = int(len(dataset) / 2)
              if dataset[mid] == find_num:  # find it
                  print("找到數(shù)字", dataset[mid])
              elif dataset[mid] > find_num:  # 找的數(shù)在mid左面
                  print("\033[31;1m找的數(shù)在mid[%s]左面\033[0m" % dataset[mid])
                  return binary_search(dataset[0:mid], find_num)
              else:  # 找的數(shù)在mid右面
                  print("\033[32;1m找的數(shù)在mid[%s]右面\033[0m" % dataset[mid])
                  return binary_search(dataset[mid + 1:], find_num)
          else:
              if dataset[0] == find_num:  # find it
                  print("找到數(shù)字啦", dataset[0])
              else:
                  print("沒的分了,要找的數(shù)字[%s]不在列表里" % find_num)
      
      binary_search(data,20)
      View Code

       

      53.談?wù)勀銓?duì)閉包的理解?

      54.os和sys模塊的作用?

      os模塊提供了一種方便的使用操作系統(tǒng)函數(shù)的方法。
      
      
      sys模塊可供訪問由解釋器使用或維護(hù)的變量和與解釋器進(jìn)行交互的函數(shù)。
      
      
      總結(jié)就是,os模塊負(fù)責(zé)程序與操作系統(tǒng)的交互,提供了訪問操作系統(tǒng)底層的接口;sys模塊負(fù)責(zé)程序與python解釋器的交互,提供了一系列的函數(shù)和變量,用于操控python的運(yùn)行時(shí)環(huán)境。
      View Code

      55.如何生成一個(gè)隨機(jī)數(shù)?

      56.如何使用python刪除一個(gè)文件?

      57.談?wù)勀銓?duì)面向?qū)ο蟮睦斫猓?/h3>

      58.Python面向?qū)ο笾械睦^承有什么特點(diǎn)?

        http://www.rzrgm.cn/emily-qin/p/7059638.html

      59.面向?qū)ο笊疃葍?yōu)先和廣度優(yōu)先是什么?

      60.面向?qū)ο笾衧uper的作用?

      61.是否使用過functools中的函數(shù)?其作用是什么?

        Python自帶的 functools 模塊提供了一些常用的高階函數(shù),也就是用于處理其它函數(shù)的特殊函數(shù)。換言之,就是能使用該模塊對(duì)可調(diào)用對(duì)象進(jìn)行處理。

        具體參考:http://www.rzrgm.cn/Roc-Atlantis/p/9438983.html

      62.列舉面向?qū)ο笾袔聞澗€的特殊方法,如:__new__、__init__

      63.如何判斷是函數(shù)還是方法?

      64.靜態(tài)方法和類方法區(qū)別?

      65.列舉面向?qū)ο笾械奶厥獬蓡T以及應(yīng)用場(chǎng)景?

      1. __doc__ #輸出:類的描述信息
      
      2. __module____class__
        __module__ 表示當(dāng)前操作的對(duì)象在那個(gè)模塊
        __class__ 表示當(dāng)前操作的對(duì)象的類是什么
      
      3. __init__
        構(gòu)造方法,通過類創(chuàng)建對(duì)象時(shí),自動(dòng)觸發(fā)執(zhí)行。
      
      4. __del__
        析構(gòu)方法,當(dāng)對(duì)象在內(nèi)存中被釋放時(shí),自動(dòng)觸發(fā)執(zhí)行。
      
      5. __call__
        對(duì)象后面加括號(hào),觸發(fā)執(zhí)行。即: 對(duì)象() 或 類()()
      
      6. __dict__ 類或?qū)ο笾械乃谐蓡T
      
      7. __str__
        如果一個(gè)類中定義了__str__方法,那么在打印 對(duì)象 時(shí),默認(rèn)輸出該方法的返回值。
      
      8. __getitem__ __setitem__ __delitem__
        類似字典一樣索引的操作,以上分別表示獲取,設(shè)置,刪除。(當(dāng)在類外面做了這些操作后觸發(fā)這些函數(shù),甚至可刪除不存在的數(shù)據(jù))
      
      9. __new__ 用來將類實(shí)例化的
      View Code

      66.1、2、3、4、5 能組成多少個(gè)互不相同且無重復(fù)的三位數(shù)

      67.什么是反射?以及應(yīng)用場(chǎng)景?

      其實(shí),反射就是通過字符串的形式,導(dǎo)入模塊;通過字符串的形式,去模塊尋找指定函數(shù),并執(zhí)行。利用字符串的形式去對(duì)象(模塊)中操作(查找/獲取/刪除/添加)成員,一種基于字符串的事件驅(qū)動(dòng)!
      
      使用場(chǎng)景:基于反射機(jī)制模擬web框架路由,
          
                      可插拔式,
                      動(dòng)態(tài)導(dǎo)入模塊
      View Code

       

      68.metaclass作用?以及應(yīng)用場(chǎng)景?

      69.用盡量多的方法實(shí)現(xiàn)單例模式。

      70.裝飾器的寫法以及應(yīng)用場(chǎng)景。

        參考博客:https://blog.csdn.net/xiangxianghehe/article/details/77170585

      71.異常處理寫法以及如何主動(dòng)跑出異常(應(yīng)用場(chǎng)景)

      72.什么是面向?qū)ο蟮膍ro

      MRO 列表
      
      事實(shí)上,對(duì)于你定義的每一個(gè)類,Python 會(huì)計(jì)算出一個(gè)方法解析順序(Method Resolution Order, MRO)列表,它代表了類繼承的順序,我們可以使用下面的方式獲得某個(gè)類的 MRO 列表:
      
      
      >>> C.mro()   # or C.__mro__ or C().__class__.mro()
      [__main__.C, __main__.A, __main__.B, __main__.Base, object]
      1
      2
      >>> C.mro()   # or C.__mro__ or C().__class__.mro()
      [__main__.C, __main__.A, __main__.B, __main__.Base, object]
      那這個(gè) MRO 列表的順序是怎么定的呢,它是通過一個(gè) C3 線性化算法來實(shí)現(xiàn)的,這里我們就不去深究這個(gè)算法了,感興趣的讀者可以自己去了解一下,總的來說,一個(gè)類的 MRO 列表就是合并所有父類的 MRO 列表,并遵循以下三條原則:
      
      子類永遠(yuǎn)在父類前面
      如果有多個(gè)父類,會(huì)根據(jù)它們?cè)诹斜碇械捻樞虮粰z查
      如果對(duì)下一個(gè)類存在兩個(gè)合法的選擇,選擇第一個(gè)父類
      View Code

       

      73.isinstance作用以及應(yīng)用場(chǎng)景?

      使用場(chǎng)景:用于判斷一個(gè)對(duì)象是否是一個(gè)類或者其子類的實(shí)例。
      在Python中可以使用type()與isinstance()這兩個(gè)函數(shù)判斷對(duì)象類型,而isinstance()函數(shù)的使用上比type更加方便。
      
      用到場(chǎng)景,個(gè)人觀點(diǎn):
      可能用于比較2個(gè)值的數(shù)據(jù)類型是否一致
      View Code

       

      74.寫代碼并實(shí)現(xiàn):

      Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would 
      have exactly one solution, and you may not use the same element twice.
      Example:?
                Given nums = [2, 7, 11, 15], target = 9,
                 ?Because nums[0] + nums[1] = 2 + 7 = 9,?
                 return [0, 1]

      75.json序列化時(shí),可以處理的數(shù)據(jù)類型有哪些?如何定制支持datetime類型?

      76.json序列化時(shí),默認(rèn)遇到中文會(huì)轉(zhuǎn)換成unicode,如果想要保留中文怎么辦?

      dumps時(shí)指定ensure_ascii=False
      View Code

       

      77.什么是斷言?應(yīng)用場(chǎng)景?

      斷言其實(shí)是防止程序意外出錯(cuò)的一種宏,如果其參數(shù)計(jì)算為假,則程序發(fā)出警告,且退出。
      最常見的用法就是在函數(shù)入口處保證輸入?yún)?shù)的正確性。
      
      斷言條件為真時(shí)代碼繼續(xù)執(zhí)行,否則拋出異常,這個(gè)異常通常不會(huì)去捕獲他.我們?cè)O(shè)置一個(gè)斷言目的就是要求必須實(shí)現(xiàn)某個(gè)條件
      View Code

       

      78.有用過with statement嗎?它的好處是什么?

      with語(yǔ)句的作用是通過某種方式簡(jiǎn)化異常處理,它是所謂的上下文管理器的一種
      
      文件操作時(shí)使用過.
      with語(yǔ)句下代碼完成后調(diào)用求值語(yǔ)句返回對(duì)象的__exit__方法,可以實(shí)現(xiàn)一些操作,比如關(guān)閉文件。
      
      with語(yǔ)句會(huì)在嵌套的代碼執(zhí)行之后,自動(dòng)關(guān)閉文件。這種做法的還有另一個(gè)優(yōu)勢(shì)就是,無論嵌套的代碼是以何種方式結(jié)束的,它都關(guān)閉文件。如果在嵌套的代碼中發(fā)生異常,它能夠在外部exception handler catch異常前關(guān)閉文件。如果嵌套代碼有return/continue/break語(yǔ)句,它同樣能夠關(guān)閉文件。
      View Code

      79.使用代碼實(shí)現(xiàn)查看列舉目錄下的所有文件。

      # 遞歸的方式
      def print_directory_contents(sPath):
          import os
        
          for sChild in os.listdir(sPath):
              sChildPath = os.path.join(sPath, sChild)
              if os.path.isdir(sChildPath):
                  print_directory_contents(sChildPath)
              else:
                  print(sChildPath)
      View Code

       

      80.簡(jiǎn)述 yield和yield from關(guān)鍵字。

       

      yield : 生成器函數(shù)關(guān)鍵字
      yield from : 相當(dāng)于for i in obj : yield i
      View Code

       

       

      posted @ 2018-08-09 01:20  無我齋主人  閱讀(281)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 日韩AV高清在线看片| 精品一区二区三区在线观看l| 国产自拍在线一区二区三区| 国产美女自慰在线观看| 中文字幕av国产精品| 18禁黄网站禁片免费观看| 亚洲高清日韩专区精品| 国产欧美日韩va另类在线播放| 免费观看欧美猛交视频黑人| 免费人妻无码不卡中文18禁| 有码中文字幕一区三区| 亚洲国产超清无码专区| 国产精品成人午夜久久| 国产av国片精品一区二区| 国产手机在线αⅴ片无码观看| 亚洲精品一区久久久久一品av| 又爽又黄又无遮挡的激情视频| 亚洲日本高清一区二区三区| 泾阳县| 精品国产av无码一区二区三区| 热久久99精品这里有精品| 精品国产成人午夜福利| 好日子在线观看视频大全免费动漫 | 男人天堂亚洲天堂女人天堂| 中国熟女仑乱hd| 国产精品久久久久9999高清| av天堂久久天堂av| 九九热在线免费精品视频| 亚洲欧美人成人综合在线播放 | 国内综合精品午夜久久资源| 国产美女久久久亚洲综合| 国产精品护士| 亚洲综合国产激情另类一区| 国产极品粉嫩福利姬萌白酱| 一区二区三区激情都市| 国产suv精品一区二区五| 久久国产精品精品国产色| 国产av国片精品一区二区| 美女人妻激情乱人伦| 国产一区二区a毛片色欲| 国产综合色在线精品|