亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python基礎(chǔ)面試題整理---從零開始 每天十題(02)

系統(tǒng) 1741 0

  書接上回,我們繼續(xù)來說說python的面試題,我在各個(gè)網(wǎng)站搜集了一些,我給予你們一個(gè)推薦的答案,你們可以組織成自己的語言來說出來,讓我們更好的做到面向工資編程

一、Q:說說你對(duì)zen of python的理解,你有什么辦法看到它。

A:The Zen of Python是Python語言的指導(dǎo)原則,遵循這些基本原則,輸入import this,然后直接運(yùn)行即可

二、Q:什么是元類(meta_class)

A:我們定義類來創(chuàng)建對(duì)象,但是現(xiàn)在我們知道類也是對(duì)象。那么是通過什么來創(chuàng)建類呢?答案就是元類。我們可以將元類稱之為類工廠。如果我們定義了metaclass屬性,Python就會(huì)使用這個(gè)元類來創(chuàng)建類Foo。注意,編譯器首先讀取 class Foo(object) ,這時(shí)并不會(huì)在內(nèi)存中創(chuàng)建Foo類。Python會(huì)繼續(xù)查找類定義中的 __meatclass__ ,如果找到了,就使用它來創(chuàng)建類Foo,如果沒有找到,就使用type來創(chuàng)建類。Python工作流程如下:首先檢查 Foo 中是否具有屬性 __metaclass__ ?如果找到,就使用 __metaclass__ 定義的元類在內(nèi)存中創(chuàng)建一個(gè)類對(duì)象。如果在類定義中沒有找到這個(gè)屬性,就在模塊級(jí)別中進(jìn)行查找。如果還是沒有找到,就會(huì)使用父類Bar中的元類來創(chuàng)建類。注意:類中的 __metaclass__ 屬性不會(huì)被子類繼承,但是父類中的 __class__ 會(huì)被繼承。這里寫的比較片面,大家可以參考?https://www.jianshu.com/p/cec91b9ef2a4

三、Q:對(duì)比一下dict中 items 與 iteritems

A:items是可以將字典中的所有項(xiàng),以列表方式返回。因?yàn)樽值涫菬o序的,所以用items方法返回字典的所有項(xiàng),也是沒有順序的。

   ?? iteritems方法作用:與items方法相比作用大致相同,只是它的返回值不是列表,而是一個(gè)迭代器。

四、Q:有用過with statement嗎?它的好處是什么?
A: with 語句的作用是通過某種方式簡化異常處理,它是所謂的上下文管理器的一種

             with open(
            
              '
            
            
              output.txt
            
            
              '
            
            , 
            
              '
            
            
              w
            
            
              '
            
            
              ) as f:
        f.write(
            
            
              '
            
            
              Hi there!
            
            
              '
            
            )
          

  當(dāng)你要成對(duì)執(zhí)行兩個(gè)相關(guān)的操作的時(shí)候,這樣就很方便,以上便是經(jīng)典例子,with語句會(huì)在嵌套的代碼執(zhí)行之后,自動(dòng)關(guān)閉文件。這種做法的還有另一個(gè)優(yōu)勢(shì)就是,無論嵌套的代碼是以何種方式結(jié)束的,它都關(guān)閉文件。如果在嵌套的代碼中發(fā)生異常,它能夠在外部exception handler catch異常前關(guān)閉文件。如果嵌套代碼有return/continue/break語句,它同樣能夠關(guān)閉文件

五、Q:說說decorator的用法和它的應(yīng)用場景,如果可以的話,寫一個(gè)decorator(裝飾器)

  A:裝飾器就是把函數(shù)包裝一下,為函數(shù)添加一些附加功能,裝飾器就是一個(gè)函數(shù),參數(shù)為被包裝的函數(shù),返回包裝后的函數(shù):

            
              def
            
            
               d(fp):
    
            
            
              def
            
             _d(*arg, **
            
              karg):
        
            
            
              print
            
            
              "
            
            
              do sth before fp..
            
            
              "
            
            
              
        r
            
            = fp(*arg, **
            
              karg)
        
            
            
              print
            
            
              "
            
            
              do sth after fp..
            
            
              "
            
            
              return
            
            
               r
    
            
            
              return
            
            
               _d
 
@d

            
            
              def
            
            
               f():
    
            
            
              print
            
            
              "
            
            
              call f
            
            
              "
            
          

應(yīng)用場景應(yīng)用場景: 引入日志, 函數(shù)執(zhí)行時(shí)間統(tǒng)計(jì), 執(zhí)行函數(shù)前預(yù)備處理, 執(zhí)行函數(shù)后清理功能, 權(quán)限校驗(yàn)等場景, 緩存, 事務(wù)處理。 當(dāng)函數(shù)可以作為參數(shù)傳遞的語言,可以使用裝飾器

六、Q:如何在一個(gè)函數(shù)內(nèi)部修改全局變量

A:利用global 修改全局變量

?

            
              #
            
            
              !/usr/bin/env python
            
            
              
#
            
            
               -*- coding: utf-8 -*-
            
            
              
a 
            
            = 1

            
              def
            
            
               change():
    
            
            
              global
            
            
               a
    a 
            
            = 3

            
              print
            
            
              (a)
change()

            
            
              print
            
            (a)
          

?

七、Q:列出5個(gè)python標(biāo)準(zhǔn)庫

  A:os:提供了不少與操作系統(tǒng)相關(guān)聯(lián)的函數(shù)

   ? sys: ? 通常用于命令行參數(shù)

   ? re: ? 正則匹配

   ? math: 數(shù)學(xué)運(yùn)算

   ? datetime:處理日期時(shí)間

八、Q:簡述面向?qū)ο笾衉_new__和__init__區(qū)別

  A:1、__new__至少要有一個(gè)參數(shù),代表當(dāng)前類,此參數(shù)在實(shí)例化時(shí)由Python解釋器自動(dòng)識(shí)別

   ? 2、__new__必須要有返回值,返回實(shí)例化出來的實(shí)例,這點(diǎn)在自己實(shí)現(xiàn)__new__時(shí)要特別注意,可以return父類(通過super(當(dāng)前類名))__new__出來的實(shí)例,或者直接是object的__new__出來的實(shí)例

   ? 3、__init__有一個(gè)參數(shù)self,就是這個(gè)__new__返回的實(shí)例,__init__在__new__的基礎(chǔ)上可以完成一些其它初始化的動(dòng)作,__init__不需要返回值

   ? 4、如果__new__創(chuàng)建的是當(dāng)前類的實(shí)例,會(huì)自動(dòng)調(diào)用__init__函數(shù),通過return語句里面調(diào)用的__new__函數(shù)的第一個(gè)參數(shù)是cls來保證是當(dāng)前類實(shí)例,如果是其他類的類名,;那么實(shí)際創(chuàng)建返回的就是其他類的實(shí)例,其實(shí)就不會(huì)調(diào)用當(dāng)前類的__init__函數(shù),也不會(huì)調(diào)用其他類的__init__函數(shù)。

九、Q:python中生成隨機(jī)整數(shù)、隨機(jī)小數(shù)、0--1之間小數(shù)方法

  A:隨機(jī)整數(shù):random.randint(a,b),生成區(qū)間內(nèi)的整數(shù)

   ? 隨機(jī)小數(shù):習(xí)慣用numpy庫,利用np.random.randn(5)生成5個(gè)隨機(jī)小數(shù)

   ? 0-1隨機(jī)小數(shù):random.random(),括號(hào)中不傳參

十、Q:python2和python3區(qū)別?列舉5個(gè)

  A:1、Python3 使用 print 必須要以小括號(hào)包裹打印內(nèi)容,比如?print('hi')

    ? ?Python2 既可以使用帶小括號(hào)的方式,也可以使用一個(gè)空格來分隔打印內(nèi)容,比如?print 'hi'

    2、python2 range(1,10)返回列表,python3中返回迭代器,節(jié)約內(nèi)存

    3、python2中使用ascii編碼,python3中使用utf-8編碼

    4、python2中unicode表示字符串序列,str表示字節(jié)序列

? ? ?    python3中str表示字符串序列,byte表示字節(jié)序列

   5、python2中為正常顯示中文,引入coding聲明,python3中不需要

   6、python2中是raw_input()函數(shù),python3中是input()函數(shù)

   7、 浮點(diǎn)數(shù)除法操作符“/”和“//”的區(qū)別

    "/":     

    Python2:若為兩個(gè)整形數(shù)進(jìn)行運(yùn)算,結(jié)果為整形,但若兩個(gè)數(shù)中有一個(gè)為浮點(diǎn)數(shù),則結(jié)果為浮點(diǎn)數(shù);

    Python3:為真除法,運(yùn)算結(jié)果不再根據(jù)參加運(yùn)算的數(shù)的類型。

    "http://":
    Python2:返回小于除法運(yùn)算結(jié)果的最大整數(shù);從類型上講,與"/"運(yùn)算符返回類型邏輯一致。
    Python3:和 Python2 運(yùn)算結(jié)果一樣。

?

?

題目都是各種散裝百度來的,答案也是如此,但是自己寫了一遍,也讀了一遍,也覺得自己收獲了不少。


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

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

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久精品视频免费观看 | 欧美精品在线观看 | 欧美色黄毛片 | 天天爽天天摸 | 久久99久久精品久久久久久 | 99免费在线观看 | 五月开心六月伊人色婷婷 | 殴美毛片| 成年女人18级毛片毛片免费观看 | 女性一级全黄生活片免费看 | 四虎影视在线看免费观看 | 精品无人区乱码1区2区3区免费 | 一区二区三区日韩 | 人人乳乳香蕉大免费 | 一级毛片看真人在线视频 | 国产成人+亚洲欧洲 | 亚洲国产精品乱码一区二区三区 | 99r8这里精品热视频免费看 | 天天插天天插天天插 | 91在线欧美 | 亚洲伊人tv综合网色 | 久久精品女人毛片国产 | 福利在线影院 | 国产亚洲欧美久久久久 | 国产亚洲精品在天天在线麻豆 | 九草在线免费观看 | 只有精品 | 国产免费人人看大香伊 | 2021国产精品自产拍在线观看 | 国产女主播在线 | 精品国产高清a毛片无毒不卡 | 亚洲人成影院午夜网站 | 日日夜夜天天干 | 一级特级欧美aa毛片免费 | 成年女人永久免费观看片 | 久久精品蜜芽亚洲国产a | 国产美女网址 | 九九热视频精品在线 | 国产极品精频在线观看 | 日本不卡在线视频高清免费 | 中国xxxwww|