日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python 面試題和答案

系統(tǒng) 2160 0

基礎(chǔ)

  1. 解釋型語(yǔ)言和編譯型語(yǔ)言的區(qū)別
    a) 編譯型語(yǔ)言是在運(yùn)行之前對(duì)源碼進(jìn)行編譯,使其成為機(jī)器可以識(shí)別的機(jī)器語(yǔ)言
    b) 解釋型語(yǔ)言不需要編譯,而是在語(yǔ)句執(zhí)行時(shí)候才將語(yǔ)句翻譯為機(jī)器語(yǔ)言
    c)解釋型語(yǔ)言相對(duì)于編譯型語(yǔ)言來說由于執(zhí)行時(shí)候需要翻譯,因此效率比較低
  2. Python 解釋器種類和特點(diǎn)
    a)CPython(使用最廣)
    b)IPython(交互式解釋器)
    c)PyPy(顯著提高執(zhí)行效率)
    d)Jpython
    e)IronPython
  3. 位和字節(jié)的關(guān)系
    a)1 byte = 8 bits
  4. Python進(jìn)制轉(zhuǎn)換
    a)使用int() 十進(jìn)制:二進(jìn)制
    b)hex() 十六進(jìn)制
    c)bin() 二進(jìn)制
    d)oct() 八進(jìn)制
  5. Python遞歸的最大層數(shù)?
    a) 998
    b)可以通過一下代碼來設(shè)置
                    
                      sys
                      
                        .
                      
                      setrecursionlimit
                      
                        (
                      
                      
                        )
                      
                    
                  
  6. ascii、unicode、utf-8、gbk的區(qū)別
    a)ascii是英語(yǔ)字符和二進(jìn)制數(shù)之間的關(guān)系。一共規(guī)定了128個(gè)字符的編碼
    b)Unicode是一個(gè)更大的字符和二進(jìn)制之前的對(duì)應(yīng)關(guān)系,一共容納100多萬(wàn)個(gè)字符
    c)UTF-8是Unicode最廣的實(shí)現(xiàn)方式
    d)gbk?
  7. 字節(jié)碼和機(jī)器碼的區(qū)別?
    a)機(jī)器碼是機(jī)器可以識(shí)別,可以直接在機(jī)器上運(yùn)行的二進(jìn)制
    b)字節(jié)碼來自源碼,由編譯器編譯源碼而形成的二進(jìn)制文件,可以在不同的運(yùn)行環(huán)境中,通過虛擬運(yùn)行環(huán)境來在機(jī)器上執(zhí)行
  8. 三元運(yùn)算規(guī)則
    a)condistion_true if condition else condistion_false
    b)
  9. 用一行代碼實(shí)現(xiàn)數(shù)值交換
    a)a, b = b, a
  10. xrange 和 range的區(qū)別
    a)xrange 生成的是一個(gè)生成器,range生成的是一個(gè)list對(duì)象
    b)要生成很大的數(shù)字序列的時(shí)候,使用xrange會(huì)比使用range性能更優(yōu)
  11. lambda 表達(dá)式格式以及應(yīng)用場(chǎng)景
    a)lambda x: func_body
    b)常用來作為函數(shù)參數(shù)輸入函數(shù),像是作為sort的key parameter
  12. pass的作用
    a)作為占位符,來保證程序結(jié)構(gòu)的完整性
  13. *args 和 **kwarg 的作用
    a)*args 是用來傳入任意數(shù)量的位置參數(shù)
    b)*kwarg是傳入任意數(shù)量的關(guān)鍵字參數(shù)
  14. is 和 ==的區(qū)別
    a)is 和==都是用來 比較python對(duì)象的
    b)python對(duì)象包含三個(gè)基本元素, id, type(數(shù)據(jù)類型), value(值)
    c)is 比較對(duì)象id, 判斷對(duì)象是否為同一實(shí)例對(duì)象,是否指向同一內(nèi)存地址
    e)== 判斷是,兩個(gè)對(duì)象的內(nèi)容是否相等
  15. python的深淺拷貝和應(yīng)用場(chǎng)景
    a)淺拷貝:創(chuàng)造新的對(duì)象
    b)深拷貝:使用舊的對(duì)象
    c)copy.copy() 創(chuàng)造淺拷貝, 注意有的時(shí)候會(huì)是深拷貝
    d)copy.deepcopy() 創(chuàng)造深拷貝
  16. Python 的垃圾回收機(jī)制
    a) 引用計(jì)數(shù)機(jī)制為主,標(biāo)記-清除和分代收集為輔
  17. 常見的內(nèi)置函數(shù)
    a)abs(), all(), set(), any(), dict(), dir(),
    b)enumerate(), eval()
    c)filter(), map(), float(), input(), len(),
    e) open(),round(), sorted()
  18. python可變類型和不可變類型
    a)string, tuple, number 是不可變的
    b)list,dict是可變的
    對(duì)不可變對(duì)象賦值,是重新創(chuàng)建一個(gè)對(duì)象,并將指針指向新的對(duì)象,并銷毀舊有對(duì)象
    對(duì)可變對(duì)象,是在同一內(nèi)存地址,在原處修改
    因此可變對(duì)象作為函數(shù)參數(shù)時(shí)候,要小心在函數(shù)內(nèi)對(duì)可變對(duì)象的修改
  19. re模塊中match 和 search的區(qū)別
    a)match是從字符串開始位置檢測(cè),如果開始位置不符合則返回
    b)search會(huì)從任意位置開始檢測(cè)(搜索整個(gè)字符串),直到發(fā)現(xiàn)符合的再返回
    c)match比search的速度快
  20. 什么是正則表達(dá)式的貪婪匹配?
    a)在整個(gè)表達(dá)式匹配成功的前提下,盡可能多的去匹配,有多少要多少,盡可能多的
  21. ()會(huì)產(chǎn)生生成器,[]會(huì)產(chǎn)生列表
  22. 可變類型作為函數(shù)默認(rèn)參數(shù)
    a)默認(rèn)參數(shù)只是在函數(shù)定義的時(shí)候被初始化一次,而且因?yàn)槭强勺冾愋停虼巳种槐4嬉粋€(gè)實(shí)例,所以任何在默認(rèn)參數(shù)上的操作都會(huì)反映到指向他的對(duì)象上
    b)如果要使用object作為默認(rèn)參數(shù),盡量使用None,而不是相關(guān)類型
  23. 一行實(shí)現(xiàn)刪除列表中重復(fù)元素
    a) 元素位置會(huì)被打亂
                    
                      list_item 
                      
                        =
                      
                      
                        [
                      
                      
                        1
                      
                      
                        ,
                      
                      
                        1
                      
                      
                        ,
                      
                      
                        2
                      
                      
                        ,
                      
                      
                        3
                      
                      
                        ,
                      
                      
                        3
                      
                      
                        ]
                      
                      
                        print
                      
                      
                        (
                      
                      
                        list
                      
                      
                        (
                      
                      
                        set
                      
                      
                        (
                      
                      list_item
                      
                        )
                      
                      
                        )
                      
                    
                  
    b)保持元素位置
                    
                      	list_item 
                      
                        =
                      
                      
                        [
                      
                      
                        1
                      
                      
                        ,
                      
                      
                        1
                      
                      
                        ,
                      
                      
                        2
                      
                      
                        ,
                      
                      
                        2
                      
                      
                        ,
                      
                      
                        3
                      
                      
                        ]
                      
                      
                        print
                      
                      
                        (
                      
                      
                        sorted
                      
                      
                        (
                      
                      
                        set
                      
                      
                        (
                      
                      list_item
                      
                        )
                      
                      
                        ,
                      
                       keys
                      
                        =
                      
                      list_item
                      
                        .
                      
                      index
                      
                        )
                      
                      
                        )
                      
                      
    	```
    
                    
                  
  24. 如何在函數(shù)中設(shè)置全局變量?
    a)使用global關(guān)鍵字
  25. 如何用代碼實(shí)現(xiàn)stack
            
              
                class
              
              
                Stack
              
              
                (
              
              
                object
              
              
                )
              
              
                :
              
              
                def
              
              
                __init__
              
              
                (
              
              self
              
                )
              
              
                :
              
              
		self
              
                .
              
              items 
              
                =
              
              
                [
              
              
                ]
              
              
                def
              
              
                is_empty
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                return
              
               self
              
                .
              
              items 
              
                ==
              
              
                [
              
              
                ]
              
              
                def
              
              
                size
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                return
              
              
                len
              
              
                (
              
              self
              
                .
              
              items
              
                )
              
              
                def
              
              
                pop
              
              
                (
              
              self
              
                )
              
              
                :
              
              
                return
              
               self
              
                .
              
              items
              
                .
              
              pop
              
                (
              
              
                )
              
              
                def
              
              
                push
              
              
                (
              
              self
              
                ,
              
               val
              
                )
              
              
                :
              
              
                return
              
               self
              
                .
              
              items
              
                .
              
              append
              
                (
              
              val
              
                )
              
            
          
  1. 如何生成一個(gè)隨機(jī)數(shù)
    a)random package
    random.randint(start, end)
    random.choice(seq)
    random.choices(seq, k)
    random.sample(seq, k)
    random.random() float number from 0 to 1
    b) numpy.random package
  2. 常用的字符串格式化
    a)用數(shù)字指定位置
    b)為位置命名,可以傳入字典變量
    c)可以傳入對(duì)象,并調(diào)用對(duì)象屬性
    d){:.2f}
    e) {:+.2f}
    f) {:0 > 2d}數(shù)字左邊補(bǔ)零,寬度為2
    g) {:0<4d} 數(shù)字右邊補(bǔ)零,寬度為4
    h) {:,} 用逗號(hào)分隔數(shù)字
    i) {:.2 %}百分比格式
    k) {:.2e} 指數(shù)計(jì)數(shù)法格式
    l){:10d}, {:<10d}, {:^10d}, 右對(duì)齊,左對(duì)齊,中間對(duì)齊
  3. functools中的函數(shù)作用?
    a)作用于一些定義好的函數(shù),幫助我們更好的實(shí)現(xiàn)對(duì)函數(shù)的包裝和實(shí)用
  4. 實(shí)例方法,靜態(tài)方法和類方法的區(qū)別和應(yīng)用
    a)參數(shù)不同,實(shí)例方法參數(shù)必須有self, 類方法必須有cls, 靜態(tài)方法可以啥也沒有
    b)繼承時(shí),子類調(diào)用父類靜態(tài)方法,調(diào)用的是父類的雷屬性,而調(diào)用類方法時(shí),調(diào)用的是子類的類屬性
  5. 如何判斷變量是否為nan
    a)==不能夠使用,可以使用is,但有時(shí)候會(huì)出錯(cuò)
    b)最好使用math中的isnan, math.isnan()
  6. 列舉面向?qū)ο笾械奶厥獬蓡T以及應(yīng)用場(chǎng)景
    a)成員
    a. __dict__成員:以字典的方式來獲取類或?qū)ο笾械乃谐蓡T
    b)方法
    b. __call__方法:執(zhí)行對(duì)象的構(gòu)造方法
    c. getitem (self, item): 類似于一種運(yùn)算符重載(重載[]運(yùn)算符)
    d. setitem (self, key, item): 設(shè)置對(duì)象的相關(guān)屬性
    e. delitem (self, key): 刪除對(duì)象相關(guān)屬性
    f. iter (self): 保證對(duì)象可以被for循環(huán)迭代,這樣每次產(chǎn)生一個(gè)元素
  7. python反射(自省?)
    a)我們需要執(zhí)行對(duì)象的某個(gè)方法或?qū)?duì)象的某個(gè)屬性賦值,但是方法名和屬性名在調(diào)用的時(shí)候不知道。因此我們需要通過某個(gè)機(jī)制來訪問未知的屬性,反射就是這樣的一個(gè)機(jī)制
    b)dir(obj) 返回對(duì)象的屬性名列表
    c)hasattr(obj, attr) 判斷對(duì)象是否有一個(gè)attr的屬性
    d)getattr(obj, attr) 返回對(duì)象的屬性值
    e)setattr(obj, attr, val) 為對(duì)象賦相應(yīng)的屬性值
    f)inspect模塊提供了一系列函數(shù)來幫助我們實(shí)現(xiàn)自省機(jī)制
  8. 判斷是函數(shù)還是方法?
  9. metaclass 作用?
    a)原類將用在創(chuàng)建使用了它的新類調(diào)用中
    b)包裝類的所有方法,用以日志記錄或者性能剖析
    c)自動(dòng)mix-in新方法(不在需要編寫mix類)
  10. 單例模式
    a)使用模塊,模塊在第一次導(dǎo)入時(shí),會(huì)生成.pyc文件,當(dāng)?shù)诙螌?dǎo)入時(shí),就會(huì)加載.pyc文件,因此我們將需要維持一個(gè)單例的對(duì)象在模塊中創(chuàng)建,則對(duì)象將維持同一單例
    b)__new__使用該方法來創(chuàng)建實(shí)例對(duì)象
                    
                      Class 
                      
                        Singleton
                      
                      
                        (
                      
                      
                        object
                      
                      
                        )
                      
                      
                        :
                      
                      
    	_instance 
                      
                        =
                      
                      
                        None
                      
                      
                        def
                      
                      
                        __new__
                      
                      
                        (
                      
                      cls
                      
                        ,
                      
                      
                        *
                      
                      args
                      
                        ,
                      
                      
                        **
                      
                      kwargs
                      
                        )
                      
                      
                        :
                      
                      
                        if
                      
                       cls
                      
                        .
                      
                      _instance 
                      
                        is
                      
                      
                        not
                      
                      
                        None
                      
                      
                        :
                      
                      
    			cls
                      
                        .
                      
                      _instance 
                      
                        =
                      
                      
                        object
                      
                      
                        .
                      
                      __new__
                      
                        (
                      
                      cls
                      
                        ,
                      
                      
                        *
                      
                      args
                      
                        ,
                      
                      
                        **
                      
                      kwargs
                      
                        )
                      
                      
                        return
                      
                       cls
                      
                        .
                      
                      _instance
    
                    
                  
    可以參見享原模式(flyweight pattern)單例模式是一種特殊的享元模式
    c)使用裝飾器
    通過定義singleton裝飾器來對(duì)相應(yīng)的類進(jìn)行裝飾,從而使某個(gè)類只能夠產(chǎn)生一個(gè)類
    d)使用元類來實(shí)現(xiàn)單例模式,通過改變類的元類屬性來改變類的創(chuàng)建方法
                    
                      
                        class
                      
                      
                        MyClass
                      
                      
                        (
                      
                      metaclass
                      
                        =
                      
                      Singleton
                      
                        )
                      
                      
                        :
                      
                      
                        pass
                      
                    
                  
  11. 裝飾器的寫法(函數(shù)裝飾器,類裝飾器)
  12. 異常處理的寫法,以及如何主動(dòng)拋出異常
  13. 什么是面向?qū)ο蟮腗RO
  14. 利用json序列化時(shí)候,可以處理的數(shù)據(jù)類型有哪些?如果拓展自定義數(shù)據(jù)類型使其支持json序列化
  15. 什么是斷言
  16. with 語(yǔ)句的好處,以及為什么使用with語(yǔ)句
    (未完待續(xù))

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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 凌云县| 东阳市| 九寨沟县| 松潘县| 淮阳县| 化州市| 华容县| 通化县| 门头沟区| 高尔夫| 巧家县| 陇川县| 永顺县| 进贤县| 任丘市| 灵台县| 建瓯市| 留坝县| 京山县| 沾益县| 清丰县| 边坝县| 同德县| 乌拉特中旗| 永靖县| 太仆寺旗| 高青县| 威远县| 龙门县| 湖北省| 垦利县| 海盐县| 侯马市| 伊宁市| 天柱县| 松阳县| 车致| 沁阳市| 永济市| 绥棱县| 灌阳县|