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

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

    • 分享

      干貨|python基礎(chǔ)知識總結(jié)

       L羅樂 2019-03-25

      重磅干貨,第一時間送達(dá)

      Python是一種面向?qū)ο蟮慕忉屝陀嬎銠C(jī)程序設(shè)計語言。它有著代碼簡潔、可讀性強(qiáng)的特點。代碼簡潔是因為它把許多的復(fù)雜的操作封裝起來,將C語言中麻煩的指針和內(nèi)存管理對開發(fā)者隱藏起來,使得在開發(fā)過程中,無須在意這部分的細(xì)節(jié)。另外Python這們語言強(qiáng)制用戶用縮進(jìn)進(jìn)行排版,若不好好排版,則代碼編譯無法通過,或者運行過程會出現(xiàn)錯誤。

      Python程序的執(zhí)行過程和C語言不一樣,使用Python寫的程序在運行過程中 Python解釋器會把源代碼轉(zhuǎn)換為字節(jié)碼,再由Python虛擬機(jī)來執(zhí)行這些字節(jié)碼。而C程序則是計算機(jī)直接執(zhí)行由C源代碼編譯的機(jī)器指令。

      在使用Python的時候需要留意你所使用的Python版本,因為Python2.X和Python3.X有較大的改動。最主要的是Python3默認(rèn)編碼為utf-8,并且Python2中的print語句變成了print函數(shù)。其他變動在此不一一說明。

      有關(guān)Python的特點只需了解就好,這些在代碼實戰(zhàn)會體會到。

      一、基礎(chǔ)數(shù)據(jù)類型

      Python是一門弱類型語言,變量使用前無需聲明,變量名可以看作一種引用。Python的基本數(shù)據(jù)類型分為數(shù)字、字符串、列表、元組、集合、字典。

      其中數(shù)字包括整型、浮點型、布爾型、以及復(fù)數(shù)。Python的整型數(shù)可以有無限精度,浮點數(shù)默認(rèn)為double類型保留16位小數(shù),如果你需要更高的精度,則可以使用decimal模塊。在python中,布爾型為數(shù)字的一種,True 和 1等價,False和0等價,(你會發(fā)現(xiàn)True == 1這語句為真,且True True的值等于2),復(fù)數(shù)的實部和虛部均為浮點數(shù)。

      列表、元組、字典、集合、字符串是Python中經(jīng)常會使用到的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)的方法都要能熟練使用。

      列表、元組、字符串是非常相似的,他們都是順序存儲結(jié)構(gòu),元素之間有固定的順序,并且它們都可以用 和相同類型的數(shù)據(jù)類型拼接起來。他們的差別是:列表內(nèi)的元素可以修改,元組和字符串是不可變數(shù)據(jù)類型,即元祖和字符串的元素不能修改(如果把每一個字符當(dāng)成字符串的元素的話)。

       其中元組和字符串的不可改變也不一樣,如果對想修改字符串,等價新建新的字符串(字符串的是完全不能修改)。

      而元組是不能修改元組內(nèi)對元素的引用。當(dāng)你的元組里嵌套了一個列表時,你發(fā)現(xiàn)列表內(nèi)的元素可以修改,但是你不能把列表這個元素?fù)Q成其他元素。因為元祖該位置保存著該列表的引用,該引用不能修改。修改列表內(nèi)的元素并不會改變元組對該列表的引用。

      除此以為,列表、元組、字符串都能用索引訪問元素,可以使用切片操作,可以用for  in 循環(huán)按順序迭代元素。其中元祖的性能比列表的性能稍微高一點點,這在數(shù)據(jù)量大的時候才比較明顯,但在機(jī)器學(xué)習(xí)中通常都是使用numpy的數(shù)組。

      字符串的使用自不用說,列表往往使用來處理數(shù)據(jù)時使用(處理完直接append到列表里),元祖就比較少用到。有關(guān)字符串、列表的操作一定要熟練掌握。

      字典記錄了鍵值的映射關(guān)系,可以迭代,可以修改,但是字典沒辦法保證安裝你添加順序進(jìn)行迭代。此外使用字典會比列表更占用內(nèi)存,但字典的訪問更快。

      在使用字典的時候還有許多技巧,當(dāng)你想判斷某個鍵是否在字典里的時候,在數(shù)據(jù)量巨大的時候,用in操作會很慢,而如果你直接訪問用鍵來訪問,并將此語句放在try/except內(nèi),速度會明顯提高(in操作相當(dāng)于遍歷查找,如果字典無此鍵,這需要遍歷整個字典;但如果直接訪問,就能利用哈希表的優(yōu)點,迅速查找,如果找不到也會因為拋出異常而進(jìn)入except語句塊)。

      集合也是一種無序無重復(fù)元素的數(shù)據(jù)結(jié)構(gòu),所以我們可以把列表轉(zhuǎn)化為集合達(dá)到數(shù)據(jù)去重的效果,這是制作詞袋經(jīng)常使用的技巧。同時也要注意集合內(nèi)存放的都是不可變對象。

      有些時候我們還需要對數(shù)據(jù)進(jìn)行拷貝操作,這時我們要注意是否需要深拷貝的情況。當(dāng)列表、字典存在嵌套的時候,如果用淺拷貝或者切片。則會導(dǎo)致嵌套里面的列表或字典仍為同一個對象,一處修改導(dǎo)致同時修改的情況。這是應(yīng)該使用copy模塊的deepcopy方法來進(jìn)行拷貝。

      機(jī)器學(xué)習(xí)的操作對象是數(shù)據(jù),所以以上的數(shù)據(jù)類型必須要能夠熟練的運用。

      二、循環(huán)

      Python的循環(huán)簡單易上手,while循環(huán)和C語言一樣,但for in 循環(huán)就很像java的foreach循環(huán)(java foreach循環(huán)不能修改迭代元素,而Python的for in可以)。for in 循環(huán)在迭代列表、元組等可迭代類型非常方便。例:

      >>>abc = ['a', 'b', 'c']>>> for item in abc: print(item)

      也可以用range用索引迭代:

         >>> for index in range(len(abc)):     print abc([index])

      三、文件IO

      在處理數(shù)據(jù)的時候,我們往往需要從文件中讀取數(shù)據(jù)。所以文件IO操作必不可少的。

      Python的文件操作很簡單,只需用open打開文件

                  file = open(path,pattern)

      由上可知,上面文件IO的模式和C的差不多,除此之外,有些時候還要設(shè)置編碼等等。

              read是一次性讀完文件,但是當(dāng)讀取內(nèi)容大于內(nèi)存大小不能使用read。

              readline和readlines都是逐行讀取,但是readlines是一次性讀取之后,每一行轉(zhuǎn)為列表的一個元素。readlines比readline要快。

              當(dāng)使用write寫入時,若寫入的內(nèi)容大于緩沖區(qū),則會直接寫入文件(一般會先寫入緩存區(qū))。writeline則是可以把列表當(dāng)做參數(shù)寫入。一般寫入操作之后都應(yīng)調(diào)用flush方法,把緩存區(qū)的內(nèi)容寫到文件去。

              在完成文件IO之后要關(guān)閉文件,否則就會占用系統(tǒng)資源,可以用try/finally確保文件關(guān)閉,用with語句可以更方便些(with語句結(jié)束自動關(guān)閉文件)。

      四、函數(shù)

      Python中用def關(guān)鍵字來定義函數(shù),格式為

                  def 函數(shù)名(參數(shù)):

      函數(shù)參數(shù):

      接下來將詳細(xì)將函數(shù)的參數(shù)類型,函數(shù)的參數(shù)有4種分別是:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)和關(guān)鍵字參數(shù)

      必選參數(shù):必選參數(shù)需要按照函數(shù)聲明的順序傳入,和C語言的函數(shù)參數(shù)一樣

      默認(rèn)參數(shù):如果該參數(shù)沒有傳入,則傳入默認(rèn)取值

      可變關(guān)鍵字:可變關(guān)鍵字就是傳入的參數(shù)個數(shù)是可變的。

      也可以傳入一個列表或元組,在參數(shù)前加上*

      關(guān)鍵字參數(shù):關(guān)鍵字參數(shù)允許你傳入0個或任意個含參數(shù)名的參數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個字典

      也可以傳入一個dict,在參數(shù)前加上**

      在Python中定義函數(shù),可以用必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)和關(guān)鍵字參數(shù),這4種參數(shù)都可以一起使用,或者只用其中某些,但是請注意,參數(shù)定義的順序必須是:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)和關(guān)鍵字參數(shù)。

      返回值:

      函數(shù)可以有0個或多個返回值,直接return沒有返回值實際上是返回了None,返回多個值時,上還是返回一個元組,元組可以對多個變量對應(yīng)賦值。(其實就是序列解包)

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多