免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
干貨|python基礎(chǔ)知識(shí)總結(jié)

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

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

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

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

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

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

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

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

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

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

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

而元組是不能修改元組內(nèi)對(duì)元素的引用。當(dāng)你的元組里嵌套了一個(gè)列表時(shí),你發(fā)現(xiàn)列表內(nèi)的元素可以修改,但是你不能把列表這個(gè)元素?fù)Q成其他元素。因?yàn)樵嬖撐恢帽4嬷摿斜淼囊?,該引用不能修改。修改列表?nèi)的元素并不會(huì)改變?cè)M對(duì)該列表的引用。

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

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

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

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

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

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

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

二、循環(huán)

Python的循環(huán)簡(jiǎn)單易上手,while循環(huán)和C語(yǔ)言一樣,但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í)候,我們往往需要從文件中讀取數(shù)據(jù)。所以文件IO操作必不可少的。

Python的文件操作很簡(jiǎn)單,只需用open打開文件

            file = open(path,pattern)

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

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

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

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

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

四、函數(shù)

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

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

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

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

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

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

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

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

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

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

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

返回值:

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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
你可能不知道的 Python 技巧
如果這篇文章還不能讓你入門Python,那我也是沒辦法了!
5分鐘,關(guān)于Python 解包,你需要知道的一切
Python 語(yǔ)法筆記 - @海闊天空@
UC頭條:清華畢業(yè)大佬整理的Python基礎(chǔ)22大知識(shí)點(diǎn), 自備熱水, 這貨有點(diǎn)干
Python語(yǔ)法基本單詞
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服