Python 學(xué)習(xí)筆記
更新時(shí)間:2008年12月27日 17:12:26 作者:
Python 基本概念等學(xué)習(xí)資料
可以任意轉(zhuǎn)載,但轉(zhuǎn)載時(shí)必須標(biāo)明原作者charlee、原始鏈接http://tech.idv2.com/2008/11/03/python-memo/以及本聲明。
面向?qū)ο?/H2>
基本概念
- Python居然支持復(fù)數(shù)。如(-5+4j)。但要注意虛數(shù)單位單獨(dú)使用時(shí)要寫成 1j,不能寫成 j。
- 與Perl和PHP的區(qū)別:?jiǎn)我?hào)和雙引號(hào)沒(méi)有任何區(qū)別。沒(méi)有插值功能。
- 三引號(hào):''' 和 """ 相當(dāng)于Perl的heredoc。
- 行尾不需要用分號(hào),分號(hào)僅用于一行寫多條語(yǔ)句的情況。跟BASIC的冒號(hào)有些相似。
- 縮進(jìn)是有語(yǔ)義的!建議使用TAB縮進(jìn)
運(yùn)算符與表達(dá)式
- 運(yùn)算符 ** 乘冪,Perl也有。
- 字符串的 * 表示重復(fù),相當(dāng)于Perl的 x 運(yùn)算符。
- 居然還有專用于整除的 // 。別跟Perl 6的 // 混淆了。
控制流
- if-elif-else,Perl為if-elsif-else,bash為if-elif-fi
- if、elif等控制流語(yǔ)句后面要加冒號(hào),很像PHP的語(yǔ)法
- while和for循環(huán)可以帶else,循環(huán)正常結(jié)束時(shí)就會(huì)執(zhí)行else。不用像C語(yǔ)言那樣,循環(huán)結(jié)束時(shí)要檢查循環(huán)變量是否等于終值,以判斷是否正常結(jié)束。贊
- range函數(shù)生成的結(jié)果不包括終點(diǎn)。比較:Perl的 .. 運(yùn)算符包括終點(diǎn)。所以,Python的range(a,b)理解成C語(yǔ)言的 for(i=a;i<b,i++) 好些。
- 什么都不做的pass語(yǔ)句,算是個(gè)python特色
函數(shù)
- 函數(shù)中使用全局變量需要用global關(guān)鍵字,類似于PHP
- DocString,又一個(gè)python特色,函數(shù)的第一個(gè)邏輯航的字符串作為文檔字符串。類似于POD和javadoc,不過(guò)是寫在函數(shù)體內(nèi)的。還能通過(guò)"函數(shù)名.__doc__"訪問(wèn)
- lambda:類似于perl的閉包
數(shù)據(jù)結(jié)構(gòu)
- 列表:定義方式為 a=[1,2]。等價(jià)于perl的數(shù)組/列表
- 元組(tuple):定義方式為 a=(1,2)。
- 要注意列表中的列表不會(huì)被打散,如 a=[1,2], b=[a,3,4],結(jié)果就是 b=[[1,2],3,4]。這一點(diǎn)與Perl不同。
- 字典:定義方式為 c={'a':1, 'b':2}。等價(jià)于perl的散列。注意兩點(diǎn):
- 定義和訪問(wèn)時(shí),key必須用引號(hào)引起來(lái)。
- 使用{}定義,使用[]訪問(wèn),即c['a']。與Perl不同。
- 列表賦值是引用賦值。要想拷貝,必須用切片:b = a[:]。Perl程序員要注意。
- 列表的sort會(huì)改變?cè)斜怼?/LI>
例外
- try-except-finally,相當(dāng)于java的try-catch-finally
- 還有else,當(dāng)沒(méi)有發(fā)生異常、正常結(jié)束try塊時(shí)執(zhí)行。跟for/while的else塊一樣
- 故意拋出異常叫raise,java里面叫throw
面向?qū)ο?/H2>
- 類的__init__函數(shù)類似于C++的構(gòu)造函數(shù);__del__函數(shù)類似于C++的析構(gòu)函數(shù)。
- 類方法定義的第一個(gè)參數(shù)必須為self,調(diào)用時(shí)這個(gè)參數(shù)會(huì)被傳遞為對(duì)象本身。類似于perl,perl中第一個(gè)參數(shù)也會(huì)被傳遞為對(duì)象本身,不過(guò)需要程序員自己寫 my $self = shift; 來(lái)接收。
- 用C++的話來(lái)說(shuō),所有成員函數(shù)都是虛函數(shù)。
- 調(diào)用基類方法時(shí)要手工傳遞self,如 Parnet.__init__(self, name)。
模塊
- import foo; 相當(dāng)于perl的 use foo;
- from foo import bar 相當(dāng)于perl的 use foo qw/bar/;
相關(guān)文章
python?字符串常用方法超詳細(xì)梳理總結(jié)
字符串是Python中基本的數(shù)據(jù)類型,幾乎在每個(gè)Python程序中都會(huì)使用到它。本文為大家總結(jié)了Python中必備的31個(gè)字符串方法,需要的可以參考一下2022-03-03Python統(tǒng)計(jì)文本詞匯出現(xiàn)次數(shù)的實(shí)例代碼
這篇文章主要介紹了Python統(tǒng)計(jì)文本詞匯出現(xiàn)次數(shù),這種問(wèn)題在統(tǒng)計(jì)文本詞匯的次數(shù)時(shí)經(jīng)常會(huì)遇到,今天給大家分享解決方案,通過(guò)實(shí)例代碼給大家講解,需要的朋友可以參考下2020-02-02在CentOS 7中使用Python 3執(zhí)行系統(tǒng)命令的詳細(xì)教程
使用os.system()這個(gè)方法簡(jiǎn)單直接,但它不返回命令的輸出,只返回命令的退出狀態(tài),如果你只需要知道命令是否成功執(zhí)行,這個(gè)方法就足夠了,這篇文章主要介紹了在CentOS 7中使用Python 3執(zhí)行系統(tǒng)命令的詳細(xì)教程,需要的朋友可以參考下2024-02-02python字典通過(guò)值反查鍵的實(shí)現(xiàn)(簡(jiǎn)潔寫法)
這篇文章主要介紹了python字典通過(guò)值反查鍵的實(shí)現(xiàn)(簡(jiǎn)潔寫法),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python使用Tesseract實(shí)現(xiàn)從圖像中讀取文本
Tesseract?是一個(gè)基于計(jì)算機(jī)的系統(tǒng),用于光學(xué)字符識(shí)別?(OCR)?和其他圖像到文本處理,本文將介紹如何使用?Python?中的?Tesseract?創(chuàng)建一個(gè)可以從圖像中讀取文本的程序,需要的可以參考下2023-11-11python中的隨機(jī)數(shù)種子seed()用法說(shuō)明
這篇文章主要介紹了python中的隨機(jī)數(shù)種子seed()用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07詳解Python中Pytest和Unittest的區(qū)別
Pytest?和?Unittest是Python中屬于最常用的兩個(gè)測(cè)試框架。那么他們有些什么區(qū)別呢??Playwright?為什么只給了Pytest的深度支持,而不是Unittest呢?本文就來(lái)和大家詳細(xì)聊聊2023-03-03