乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      《計(jì)算機(jī)二級(jí)Python語言程序設(shè)計(jì)考試》第12章:結(jié)語

       昵稱A4812 2019-02-21

      注明:本系列課程專為全國計(jì)算機(jī)等級(jí)考試二級(jí) Python 語言程序設(shè)計(jì)考試服務(wù)

      目錄

      1.python 簡介

      2.python 解釋器

      3.python基礎(chǔ)

      1.數(shù)據(jù)類型,變量,字符串,編碼

      2.list,tuple,set,dict

      3.條件判斷,循環(huán)

      4.函數(shù)及參數(shù),遞歸函數(shù),包函數(shù),匿名函數(shù),偏函數(shù)

      5.切片,迭代,列表生成式,生成器

      6.函數(shù)式編程,高階函數(shù),map,reduce,filter,zip,sorted

      7.裝飾器,模塊 

      8.錯(cuò)誤處理,調(diào)試,測試

      9.IO文件讀寫

      10.序列化,進(jìn)程,多線程

      11.正則表達(dá)式, re模塊

      12.常用內(nèi)建模塊

      13.常用python web框架


      到目前為止,整個(gè)全國計(jì)算機(jī)等級(jí)考試二級(jí) Python 語言程序設(shè)計(jì)考試教材的系統(tǒng)學(xué)習(xí)到了一個(gè)段落,如果大家還想繼續(xù)跟著我一起學(xué)習(xí)Python,可以繼續(xù)關(guān)注我的另外一套更系統(tǒng)深入的Python學(xué)習(xí)筆記->Python學(xué)習(xí)筆記。

      在這里,我結(jié)合前面學(xué)習(xí)的知識(shí),做一個(gè)系統(tǒng)的總結(jié)。

      1.python 簡介

      1.python被稱為膠水語言,意思是無所不能,哪里都可以使用python來開發(fā),由此可見python現(xiàn)在是非?;鸬?,特別是現(xiàn)在人工智能,機(jī)器學(xué)習(xí)比較火的時(shí)候,好都人都在學(xué)習(xí)python.

      2.Python是著名的“龜叔”Guido van Rossum在1989年圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié)而編寫的一個(gè)編程語言。目前有python2.* 和python3.*在工業(yè)界使用,

      如果你現(xiàn)在開始學(xué)習(xí)python,建議從pyton3.*開始學(xué),因python2.*從2020年,開始不在提供支持和更新.

      2.python 解釋器

              以.py為擴(kuò)展名的文本文件,要運(yùn)行代碼,就需要Python解釋器去執(zhí)行.py文件。

             目前開發(fā)的IDE有:pychart,sublime text2/sublime text3

      3.python基礎(chǔ)

      1.數(shù)據(jù)類型,變量,字符串,編碼

          int,double,str,bool,None,常量

         a=2

         b=2.12

         c='test'

         d= True

         e=None

         pai=3.1415927

          需要注意的事python的 數(shù)據(jù)類型不用定義,解釋器會(huì)根據(jù)數(shù)據(jù)的類型自動(dòng)匹配數(shù)據(jù)類型;

           python支持多種數(shù)據(jù)類型,在計(jì)算機(jī)內(nèi)部,可以把任何數(shù)據(jù)都看成一個(gè)“對(duì)象”.

      ord('A')#print65

      char(66) #print B

      2.list,tuple,set,dict, 

          直接上例子吧,最直觀:

        -------------list--------------------

         list0=[]

          list1=[1,2,3,4]

         list2=['a','b','c']

        list3=[1,2.12,'a',list1]

        type(list3)

        print(list3[0] #index get value

      list4 = list1 + list2

      list5 = list1 * 3

      len(list5)

      for i in list5:

            print(i)

      list6 = 2 in list5

      del list6[1]

      del list6

      max(list6)

      min(list6)

      list5[1:4]

      list5[1:4:2]

      list5[2:]

      list5[:4]

      list5=['a','b']#updated value

      list5.append(),list5.count('a'),list5.extend(val),list5.index(obj),list.instert(index,obj),

      list5.pop('a')

      list.remove(valu)

      del list['valu']

      ----------tuple-------------------------

      tuple1=()

      tuple2=(1,2,3)

       tuple function:索引,切片,連接,復(fù)制,對(duì)內(nèi)部元素循環(huán),查找某元素是否存在,刪除元組,還回最大最小值 參考list,不一一列出 

      元組和列表相互轉(zhuǎn)化

      tuple1=(1,2,3)

      list1=['a','b','c']

      tuple2=tuple(list1)

      list2=list(tuple1)

      list3 = [n+m for n in 'abc' for m in 'ABC']

      元組打包解包:

                tuple4=1,2,3,4

                a,b,c,d=tuple4

      ----------------------dict funciton----------------------------------------

      dict1={}

      dict2={'a':1,'b':2,'c':3}

      dict3=dict(['a',10],['b',20])

      dict4 = dict((('a',10),('b',20)))

      dict5=dict(a=10,b=20)

      dict6=[1:10,2:20]

      dict1['a']

      dict7 = 'a' in dict1 #true or false

      dict1.keys()

      dict1.values()

      dict1.items()

      dict1.clear()

      dict1.get(key,default=None)

      dict1.pop(key)

      dict1.setdefault(key,default=none)

      dict1.update(newdict)

      dict8=copy.deepcopy(dict2)

      -------------------------set ----------------------------------------------------------------------

      不重復(fù)的無序集{},不能使用列表,字典當(dāng)做元素

      set0=set{}

      set1 ={1,2,3,4,5}

      set2={1,2.33,'test',(1,2)}

      set1.add(x)

      set9 =set1.updte(set2)

      set1.pop()#執(zhí)行一次按順序刪除一個(gè)元素

      set1.remove(x)

      set1.discard(x)

      set1.clear()

      set1.intersection(set2)

      set1.untion(set2)

      set1.diffrence(set2)

      set1.issubset(set2)


      3.條件判斷,循環(huán)

          if  a<10:

          elif a<20:

         else:

         for x in list1:


      4.函數(shù)及參數(shù),遞歸函數(shù),包函數(shù),匿名函數(shù),偏函數(shù)

        def def1():

        def def2(a)

        def def3(a,b=2,c='shenzhen')

      def def4(a,*b,**kw):

      def def5(a,b,*,city,name)#命名關(guān)鍵字參數(shù),必須用*分隔,后面的事命名關(guān)鍵字參數(shù)

      遞歸函數(shù):函數(shù)內(nèi)部調(diào)用其他函數(shù),調(diào)用自己也是;

      匿名函數(shù):f1= lambda x:x+x

      5.切片,迭代,列表生成式,生成器

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

      list2=list1[1:4]

      迭代:可以遍歷的集合稱之為迭代;

      for k in dict:

          print(k)

      python內(nèi)置的額函數(shù)enumerate可以將list變成索引-元素對(duì),這樣可以使用for 循環(huán)迭代;

      for x,y in enumerate(['a','b','c']):

          print(x,y)

      list1=[x for x in range(10)]

      生成器:i = (x for x in range(10))  #generator yioid

                   next(i)

        凡是可作用于for循環(huán)的對(duì)象都是Iterable類型;
        凡是可作用于next()函數(shù)的對(duì)象都是Iterator類型,它們表示一個(gè)惰性計(jì)算的序列;
        集合數(shù)據(jù)類型如list、dict、str等是Iterable但不是Iterator,不過可以通過iter()函數(shù)獲得一個(gè)Iterator對(duì)象。

       

      6.函數(shù)式編程,高階函數(shù),map,reduce,filter,zip,sorted

        函數(shù)式編程:就是面向過程的編程,將任務(wù)分成若干個(gè)小任務(wù),每個(gè)小任務(wù)由一個(gè)函數(shù)來完成功能;

        高階函數(shù):允許接受函數(shù)為為參數(shù)的函數(shù)稱為高階函數(shù);

        map:接受一個(gè)函數(shù),一個(gè)序列,將傳入的函數(shù)參數(shù)作用于序列每一個(gè)元素上并還回一個(gè)list

        map(fn[1,2,3,4]

        reduce:將函數(shù)依次作用于連續(xù)的每2個(gè)元素上并還回一個(gè)結(jié)果和;

        reduce(fn,[1,2,3,4]

        filter():接受一個(gè)函數(shù),一個(gè)序列,將傳入的函數(shù)參數(shù)作用于序列每一個(gè)元素上并根據(jù)還回的ture or false,決定是否丟棄對(duì)象到還回結(jié)果集

        sorted():高級(jí)函數(shù),接受函數(shù)和序列,函數(shù)作用于每一個(gè)序列元素上;

      7.裝飾器,模塊 

          def now():
          f = now
          f.__name__ #now

        裝飾器 在代碼運(yùn)行期間動(dòng)態(tài)增加功能的方式,稱之為“裝飾器”(Decorator)。  

          decorator就是一個(gè)返回函數(shù)的高階函數(shù)


      8.錯(cuò)誤處理,調(diào)試,測試

          錯(cuò)誤處理

              try:

             print('try...')

         except ZeroDivisionError as e:  #更多錯(cuò)誤處理類可以網(wǎng)上查詢:ioerror,valueerror,

           print('except::',e)

        finally:

             print('finllay...')

       調(diào)試

          1.是用print()把可能有問題的變量打印出來看看;

          2.凡是用print()來輔助查看的地方,都可以用斷言(assert)來替代;如果斷言失敗,assert語句本身就會(huì)拋出AssertionError:

          3.把print()替換為logging是第3種方式,和assert比,logging不會(huì)拋出錯(cuò)誤,而且可以輸出到文件    logging.info('n = %d' % n)

          import logging
          logging.basicConfig(level=logging.INFO)

            logging的好處,它允許你指定記錄信息的級(jí)別,有debug,info,warning,error等幾個(gè)級(jí)別,當(dāng)我們指定  level=INFO時(shí),logging.debug就不起作用了

             第4種方式是啟動(dòng)Python的調(diào)試器pdb,讓程序以單步方式運(yùn)行,可以隨時(shí)查看運(yùn)行狀態(tài)

         目前比較好的Python IDE有PyCharm,不過好像要收費(fèi),但網(wǎng)上可以找到注冊(cè)碼~~

               講了這么多調(diào)試方法,不過雖然用IDE調(diào)試起來比較方便,但是最后你會(huì)發(fā)現(xiàn),logging才是終極武器。

       

      測試:

        單元測試是用來對(duì)一個(gè)模塊、一個(gè)函數(shù)或者一個(gè)類來進(jìn)行正確性檢驗(yàn)的測試工作


      9.IO文件讀寫

        f = open('/Users/michael/test.txt', 'r') #'r'表示

        f.read()

             f.close()

      readlines()一次讀取所有內(nèi)容并按行返回list
      readline()可以每次讀取一行內(nèi)容
      read(size)方法,每次最多讀取size個(gè)字節(jié)的內(nèi)容
      read()會(huì)一次性讀取文件的全部內(nèi)容

      for line in f.readlines():
      print(line.strip()) # 把末尾的'\n'刪掉

      要讀取二進(jìn)制文件,比如圖片、視頻等等,用'rb'模式打開文件即可,'w'寫文件
      f = open('/Users/michael/test.jpg', 'rb')
      f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')


      10.序列化,進(jìn)程,多線程

      Python語言特定的序列化模塊是pickle,但如果要把序列化搞得更通用、更符合Web標(biāo)準(zhǔn),就可以使用json模塊。
      json模塊的dumps()和loads()函數(shù)是定義得非常好的接口的典范.

      pickling:

      pickle.dumps(d)# str to bites
      pickle.loads()方法反序列化出對(duì)象 @ bites to str
      要把JSON反序列化為Python對(duì)象,用loads()或者對(duì)應(yīng)的load()方法
      print(json.dumps(s, default=lambda obj: obj.__dict__)) #把任意class的實(shí)例變?yōu)閐ict

      把變量從內(nèi)存中變成可存儲(chǔ)或傳輸?shù)倪^程稱之為序列化,在Python中叫pickling
      序列化之后,就可以把序列化后的內(nèi)容寫入磁盤,或者通過網(wǎng)絡(luò)傳輸?shù)絼e的機(jī)器上。

      unpickling:
      反過來,把變量內(nèi)容從序列化的對(duì)象重新讀到內(nèi)存里稱之為反序列化,即unpickling。

      import pickle
      >>> d = dict(name='Bob', age=20, score=88)
      >>> pickle.dumps(d)

      pickle.dumps()方法把任意對(duì)象序列化成一個(gè)bytes,然后,就可以把這個(gè)bytes寫入文件。或者用另一個(gè)方法pickle.dump()直接把對(duì)象序列化后寫入一個(gè)file-like Object
      >>> f = open('dump.txt', 'wb')
      >>> pickle.dump(d, f)
      >>> f.close()

       

      多進(jìn)程:

      Python既支持多進(jìn)程,又支持多線程

      線程是最小的執(zhí)行單元,而進(jìn)程由至少一個(gè)線程組成。如何調(diào)度進(jìn)程和線程,完全由操作系統(tǒng)決定,程序自己不能決定什么時(shí)候執(zhí)行,執(zhí)行多長時(shí)間


      11.正則表達(dá)式, re模塊

      [0-9a-zA-Z\_]可以匹配一個(gè)數(shù)字、字母或者下劃線;
      ? [0-9a-zA-Z\_]+可以匹配至少由一個(gè)數(shù)字、字母或者下劃線組成的字符串,比如'a100','0_Z','Py3000'等等;

      [a-zA-Z\_][0-9a-zA-Z\_]*可以匹配由字母或下劃線開頭,后接任意個(gè)由一個(gè)數(shù)字、字母或者下劃線組成的字符串,也就是Python合法的變量;
      ? [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精確地限制了變量的長度是1-20個(gè)字符(前面1個(gè)字符+后面最多19個(gè)字符)

      re.split(r'\s+', 'a b c')

      正則表達(dá)式非常強(qiáng)大,在這里只是提了一點(diǎn)點(diǎn),具體的可以網(wǎng)上查詢。


      12.常用內(nèi)建模塊

      1.datetime是Python處理日期和時(shí)間的標(biāo)準(zhǔn)庫 

      1.獲取當(dāng)前日期和時(shí)間 
      2.獲取指定日期和時(shí)間
      3.datetime轉(zhuǎn)換為timestamp
      4.timestamp轉(zhuǎn)換為datetime
      5.str轉(zhuǎn)換為datetime
      6.datetime轉(zhuǎn)換為str
      7.datetime加減
      8.本地時(shí)間轉(zhuǎn)換為UTC時(shí)間
      9.時(shí)區(qū)轉(zhuǎn)換
      from datetime import datetime
      now = datetime.now() # 獲取當(dāng)前datetime
      datetime(2015, 4, 19, 12, 20)
      cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
      print(now.strftime('%a, %b %d %H:%M'))
      now + timedelta(hours=10)
      utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)

      2.urllib
      3.HTMLparser
      4.XML
      5.base64


      13.常用python web框架

             flask(小型),用過,適用于小型項(xiàng)目;

             django(大型):

          web這塊涉及內(nèi)容較多,具體的大家可以關(guān)注我的Python學(xué)習(xí)筆記,這里不一一說明.

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多