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