python的內(nèi)置函數(shù)(68個(gè))
創(chuàng)新互聯(lián)公司主營(yíng)青山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā)公司,青山h5微信小程序定制開(kāi)發(fā)搭建,青山網(wǎng)站營(yíng)銷(xiāo)推廣歡迎青山等地區(qū)企業(yè)咨詢(xún)
Python考核31個(gè)內(nèi)置函數(shù),
python內(nèi)置了很多內(nèi)置函數(shù)、類(lèi)方法屬性及各種模塊。當(dāng)我們想要當(dāng)我們想要了解某種類(lèi)型有哪些屬性方法以及每種方法該怎么使用時(shí),我們可以使用dir()函數(shù)和help()函數(shù)在python idle交互式模式下獲得我們想要的信息。
? dir()函數(shù)獲得對(duì)象中可用屬性的列表
Python中的關(guān)鍵詞有哪些?
dir(__builtins__):查看python內(nèi)置函數(shù)
help(‘keywords‘):查看python關(guān)鍵詞
如微分積分方程的求解程序、訪問(wèn)互聯(lián)網(wǎng)、獲取日期和時(shí)間、機(jī)器學(xué)習(xí)算法等。這些程序往往被收入程序庫(kù)中,構(gòu)成程序庫(kù)。
只有經(jīng)過(guò)嚴(yán)格檢驗(yàn)的程序才能放在程序庫(kù)里。檢驗(yàn),就是對(duì)程序作充分的測(cè)試。通常進(jìn)行的有正確性測(cè)試、精度測(cè)試、速度測(cè)試、邊界條件和出錯(cuò)狀態(tài)的測(cè)試。經(jīng)過(guò)檢驗(yàn)的程序不但能保證計(jì)算結(jié)果的正確性,而且對(duì)錯(cuò)誤調(diào)用也能作出反應(yīng)。程序庫(kù)中的程序都是規(guī)范化的。所謂規(guī)范化有三重含義:①同一庫(kù)里所有程序的格式是統(tǒng)一的;② 對(duì)這些程序的調(diào)用方法是相同的;③ 每個(gè)程序所需參數(shù)的數(shù)目、順序和類(lèi)型都是嚴(yán)格規(guī)定好的。
Python的庫(kù)包含標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)
標(biāo)準(zhǔn)庫(kù):程序語(yǔ)言自身?yè)碛械膸?kù),可以直接使用。help('modules')
第三方庫(kù):第三方者使用該語(yǔ)言提供的程序庫(kù)。
標(biāo)準(zhǔn)庫(kù): turtle 庫(kù)(必選)、 random 庫(kù)(必選)、 time 庫(kù)(可選)。
? turtle 庫(kù):圖形繪制庫(kù)
原理如同控制一只海龜,以不同的方向和速度進(jìn)行位移而得到其運(yùn)動(dòng)軌跡。
使用模塊的幫助時(shí),需要先將模塊導(dǎo)入。
例如:在IDLE中輸入import turtle
dir(turtle)
help(turtle.**)
1.畫(huà)布
畫(huà)布就是turtle為我們展開(kāi)用于繪圖區(qū)域, 我們可以設(shè)置它的大小和初始位置。
setup()方法用于初始化畫(huà)布窗口大小和位置,參數(shù)包括畫(huà)布窗口寬、畫(huà)布窗口高、窗口在屏幕的水平起始位置和窗口在屏幕的垂直起始位置。
參數(shù):width, height: 輸入寬和高為整數(shù)時(shí),表示 像素 ;為小數(shù)時(shí),表示占據(jù)電腦屏幕的比例。(startx,starty):這一坐標(biāo)表示
矩形窗口左上角頂點(diǎn)的位置,如果為空,則窗口位于屏幕中心:
例如:setup(640,480,300,300)表示在桌面屏幕(300,300)位置開(kāi)始創(chuàng)建640×480大小的畫(huà)布窗體。
2、畫(huà)筆
? color() 用于設(shè)置或返回畫(huà)筆顏色和填充顏色。
例如:color(‘red’)將顏色設(shè)為紅色,也可用fillcolor()方法設(shè)置或返回填充顏色,或用pencolor()方法設(shè)置或返回筆觸顏色。
1.Numpy庫(kù)
是Python開(kāi)源的數(shù)值計(jì)算擴(kuò)展工具,提供了Python對(duì)多維數(shù)組的支持,能夠支持高級(jí)的維度數(shù)組與矩陣運(yùn)算。此外,針對(duì)數(shù)組運(yùn)算也提供了大量的數(shù)學(xué)函數(shù)庫(kù),Numpy是大部分Python科學(xué)計(jì)算的基礎(chǔ),具有很多功能。
2.Pandas庫(kù)
是一個(gè)基于Numpy的數(shù)據(jù)分析包,為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas中納入了大量庫(kù)和標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需要的函數(shù)和方法,使用戶(hù)能快速便捷地處理數(shù)據(jù)。
3.Matplotlib庫(kù)
是一個(gè)用在Python中繪制數(shù)組的2D圖形庫(kù),雖然它起源于模仿MATLAB圖形命令,但它獨(dú)立于MATLAB,可以通過(guò)Pythonic和面向?qū)ο蟮姆绞绞褂茫荘ython中Z出色的繪圖庫(kù)。主要用純Python語(yǔ)言編寫(xiě)的,它大量使用Numpy和其他擴(kuò)展代碼,即使對(duì)大型數(shù)組也能提供良好的性能。
4.Seaborn庫(kù)
是Python中基于Matplotlib的數(shù)據(jù)可視化工具,提供了很多高層封裝的函數(shù),幫助數(shù)據(jù)分析人員快速繪制美觀的數(shù)據(jù)圖形,從而避免了許多額外的參數(shù)配置問(wèn)題。
5.NLTK庫(kù)
被稱(chēng)為使用Python進(jìn)行教學(xué)和計(jì)算語(yǔ)言學(xué)工作的Z佳工具,以及用自然語(yǔ)言進(jìn)行游戲的神奇圖書(shū)館。NLTK是一個(gè)領(lǐng)先的平臺(tái),用于構(gòu)建使用人類(lèi)語(yǔ)言數(shù)據(jù)的Python程序,它為超過(guò)50個(gè)語(yǔ)料庫(kù)和詞匯資源提供了易于使用的接口,還提供了一套文本處理庫(kù),用于分類(lèi)、標(biāo)記化、詞干化、解析和語(yǔ)義推理、NLP庫(kù)的包裝器和一個(gè)活躍的討論社區(qū)。
一直對(duì)不同語(yǔ)言間的交互感興趣,python和C語(yǔ)言又深有淵源,所以對(duì)python和c語(yǔ)言交互產(chǎn)生了興趣。
最近了解了python提供的一個(gè)外部函數(shù)庫(kù) ctypes , 它提供了C語(yǔ)言兼容的幾種數(shù)據(jù)類(lèi)型,并且可以允許調(diào)用C編譯好的庫(kù)。
這里是閱讀相關(guān)資料的一個(gè)記錄,內(nèi)容大部分來(lái)自 官方文檔 。
ctypes 提供了一些原始的C語(yǔ)言兼容的數(shù)據(jù)類(lèi)型,參見(jiàn)下表,其中第一列是在ctypes庫(kù)中定義的變量類(lèi)型,第二列是C語(yǔ)言定義的變量類(lèi)型,第三列是Python語(yǔ)言在不使用ctypes時(shí)定義的變量類(lèi)型。
創(chuàng)建簡(jiǎn)單的ctypes類(lèi)型如下:
使用 .value 訪問(wèn)和改變值:
改變指針類(lèi)型的變量值:
如果需要直接操作內(nèi)存地址的數(shù)據(jù)類(lèi)型:
下面的例子演示了使用C的數(shù)組和結(jié)構(gòu)體:
創(chuàng)建指針實(shí)例
使用cast()類(lèi)型轉(zhuǎn)換
類(lèi)似于C語(yǔ)言定義函數(shù)時(shí),會(huì)先定義返回類(lèi)型,然后具體實(shí)現(xiàn)再定義,當(dāng)遇到下面這種情況時(shí),也需要這么干:
可以簡(jiǎn)單地將"so"和"dll"理解成Linux和windows上動(dòng)態(tài)鏈接庫(kù)的指代,這里我們以Linux為例。注意,ctypes提供的接口會(huì)在不同系統(tǒng)上有出入,比如為了加載動(dòng)態(tài)鏈接庫(kù), 在Linux上提供的是 cdll , 而在Windows上提供的是 windll 和 oledll 。
ctypes會(huì)尋找 _as_paramter_ 屬性來(lái)用作調(diào)用函數(shù)的參數(shù)傳入,這樣就可以傳入自己定義的類(lèi)作為參數(shù),示例如下:
用 argtypes 和 restype 來(lái)指定調(diào)用的函數(shù)返回類(lèi)型。
這里我只是列出了 ctypes 最基礎(chǔ)的部分,還有很多細(xì)節(jié)請(qǐng)參考官方文檔。
這兩天文章沒(méi)有寫(xiě),先是早出晚歸出去玩了一整天,然后加班到凌晨3點(diǎn)左右,一天一篇計(jì)劃劃水得嚴(yán)重啊…
推薦5個(gè)常用的Python標(biāo)準(zhǔn)庫(kù):
1、os:提供了不少與操作系統(tǒng)相關(guān)聯(lián)的函數(shù)庫(kù)
os包是Python與操作系統(tǒng)的接口。我們可以用os包來(lái)實(shí)現(xiàn)操作系統(tǒng)的許多功能,比如管理系統(tǒng)進(jìn)程,改變當(dāng)前路徑,改變文件權(quán)限等。但要注意,os包是建立在操作系統(tǒng)的平臺(tái)上的,許多功能在Windows系統(tǒng)上是無(wú)法實(shí)現(xiàn)的。另外,在使用os包中,要注意其中的有些功能已經(jīng)被其他的包取代。
我們通過(guò)文件系統(tǒng)來(lái)管理磁盤(pán)上儲(chǔ)存的文件。查找、刪除、復(fù)制文件以及列出文件列表等都是常見(jiàn)的文件操作。這些功能通??梢栽诓僮飨到y(tǒng)中看到,但現(xiàn)在可以通過(guò)Python標(biāo)準(zhǔn)庫(kù)中的glob包、shutil包、os.path包以及os包的一些函數(shù)等,在Python內(nèi)部實(shí)現(xiàn)。
2、sys:通常用于命令行參數(shù)的庫(kù)
sys包被用于管理Python自身的運(yùn)行環(huán)境。Python是一個(gè)解釋器,也是一個(gè)運(yùn)行在操作系統(tǒng)上的程序。我們可以用sys包來(lái)控制這一程序運(yùn)行的許多參數(shù),比如說(shuō)Python運(yùn)行所能占據(jù)的內(nèi)存和CPU,Python所要掃描的路徑等。另一個(gè)重要功能是和Python自己的命令行互動(dòng),從命令行讀取命令和參數(shù)。
3、random:用于生成隨機(jī)數(shù)的庫(kù)
Python標(biāo)準(zhǔn)庫(kù)中的random函數(shù),可以生成隨機(jī)浮點(diǎn)數(shù)、整數(shù)、字符串,甚至幫助你隨機(jī)選擇列表序列中的一個(gè)元素,打亂一組數(shù)據(jù)等。
4、math:提供了數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù)
標(biāo)準(zhǔn)庫(kù)中,Python定義了一些新的數(shù)字類(lèi)型,以彌補(bǔ)之前的數(shù)字類(lèi)型可能的不足。標(biāo)準(zhǔn)庫(kù)還包含了random包,用于處理隨機(jī)數(shù)相關(guān)的功能。math包補(bǔ)充了一些重要的數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù),比如pi、三角函數(shù)等等。
5、datetime:日期和時(shí)間的操作庫(kù)
日期和時(shí)間的管理并不復(fù)雜,但容易犯錯(cuò)。Python的標(biāo)準(zhǔn)庫(kù)中對(duì)日期和時(shí)間的管理頗為完善,你不僅可以進(jìn)行日期時(shí)間的查詢(xún)和變換,還可以對(duì)日期時(shí)間進(jìn)行運(yùn)算。通過(guò)這些標(biāo)準(zhǔn)庫(kù),還可以根據(jù)需要控制日期時(shí)間輸出的文本格式
libnum庫(kù)是一個(gè)關(guān)于各種數(shù)學(xué)運(yùn)算的函數(shù)庫(kù),它包含common maths、modular、modular squre roots、primes、factorization、ECC、converting、stuff等方面的函數(shù),個(gè)人覺(jué)得結(jié)合gmpy2庫(kù),PyCrypto庫(kù)一起來(lái)使用會(huì)使計(jì)算變得非常簡(jiǎn)便。
0x1 安裝
目前l(fā)ibnum暫時(shí)只支持python2,若是用python3安裝會(huì)因?yàn)闆](méi)有reduce、xrange而報(bào)錯(cuò)。
0x2 常用的Converting
數(shù)字型(不論是十六進(jìn)制還是十進(jìn)制)與字符串之間的轉(zhuǎn)換:
二進(jìn)制與字符串之間的轉(zhuǎn)換:
0x3 質(zhì)數(shù)因數(shù)分解
生成質(zhì)數(shù):
因數(shù)分解: