Python語言由荷蘭人Guido Van Rossum於1989年發明,1991年發布第一個公開發行版;Python是機器學習領域主流語言;Python2.x已經是遺產,Python3.x是這個語言的現在和未來。是一種高級通用腳本編程語言 編譯型語言,如C、C++、C#等,源程序代碼必須由編譯器轉換成機器目標代碼,直接運行這個可執行文件,不再需要源代碼和編譯器。解釋型語言,如Python、MATLAB、Java Script等,解釋器對源程序逐行解釋並執行,即運行時需要源代碼和解釋器。
Python解釋器在首次執行py源程序時,會把源程序轉換成字節碼,字節碼的執行速度比源代碼執行速度快很多,並且與平台無關。當再次執行該源程序時,解釋器會自動加載字節碼並對字節碼進行解釋執行。解釋器會自動檢查源程序與字節碼的時間戳,若發現不一致,會再次將源程序轉換為字節碼。
Python並沒有獨立的編譯系統,只是帶有一些編譯特征,仍舊是對字節碼進行逐條解釋和執行。
實現相同功能,Python語言的代碼行數僅相當於其它語言的1/10~1/5。
可以在任何安裝解釋器的計算機環境中無修改運行
常被稱為“膠水語言”
具有優異的擴展性,可以集成C、C++、Java等語言編寫的代碼,通過接口和函數庫等方式將它們“粘起來”。常見的一種應用情形是,先使用Python快速生成程序的原型(甚至是程序的最終界面),然後對其中有特別要求的部分采用更合適的語言改寫。例如對於運行速度要求很高的部分,可利用c/c++重寫並封裝成Python可以調用的擴展類庫。
對於高級程序員,Python語言開源的解釋器和函數庫具有強大的吸引力,更重要地,Python語言倡導的開源軟件理念為該語言的發展奠定了堅實的群眾基礎。
可用於編寫各領域的應用程序。
Python語言通過強制縮進(類似文章段落的首行空格)來體現語句間的邏輯關系,顯著提高了程序的可讀性和可維護性
盡管Python3.x解釋器內部采用面向對象方式實現,但Python語法層面卻同時支持面向過程和面向對象兩種編程方式。
已形成欣欣向榮的Python機器學習生態圈。
單行注釋:#
多行注釋:三重引號(單或雙引號)
傾向於通過換行來識別語句的結束
也支持分號作為語句結束標識。如果一行書寫多條語句,則需要添加分號區別這些語句。
1.標識符的第1個字符必須是字母或下劃線
2.其他字符可由字母、下劃線、或數字組成,不建議使用中文字符
3.標識符長度任意test_data,test_data_1,y,,正確; 1test,1_test錯誤
4.標識符是大小寫敏感的
5.標識符不能與Python關鍵字重名。(help(“keywords”))
6.一般少用下劃線開頭,因為系統約定,_xxx表示類中的保護變量名,__xxx表示類中的私有變量名,__xxx__系統定義的標識符。
(1) 整數(int):不用擔心位數不夠而導致溢出
(2)浮點數(float):3.14,-0.28,1.392E9, 1.392e9
(3)布爾值(bool):True,False
(4)復數(complex):1+2i,1+2j
使用成對的單引號、雙引號括起來構成單行字符串,
使用成對的三重引號(單引號或雙引 號)括起來,構成多行字符串。
數字、字符串、布爾值、空值等,例如2,-10086,3.5, “Python” ,True、False,None
Python中沒有命名常量,不能給常量起一個名字
Python的變量不需要聲明, 其數據類型由所賦的值來決定
不同類型的數字型數據運算時,會自動的進行類型轉換:
bool<int<float<complex
自動的類型轉換,僅存在於數字型數據之間
例如:
int、float、complex是類名,a2實際上是整數類的實例化對象,
d實際上是訪問復數對象c的imag屬性或數據成員
連續賦值:a=b=c=1
多元賦值:(x,y,z)=(1,2,“Python”),x,y,z=1,2,“Python”
位運算符:對整數的二進制位進行操作
(1)元組、列表、字符串為序列類型。
元素有順序,可重復,通過方括號和下標(索引)訪問元素。序列類型的元素索引采用正向遞增或反向遞減序號。通用操作符和函數有12個,常用的有:①sn或ns,將序列s復制n次;②s[i],單個索引返回序列第i個元素;③s[i:j],切片,返回第i到j-1個元素;④s[i:j:k],步進切片,返回第i到j-1個元素以k為步進;⑤len(s)、min(s)、max(s)
(2)字典為映射類型,每個元素是一個鍵值對,元素沒有順序,不能重復,通過方括號和鍵來訪問對應值。鍵key常采用數字或字符串,值value可以是任意類型。
元組(tuple [ˈtʌpl] )是只讀的序列類型,元素類型可不同,初始化後元組元素不能重新賦值。采用逗號和圓括號(圓括號在不混淆語義的情況下可省略)表示。在表達固定數據項、函數多返回值、多變量賦值、循環遍歷等情況十分有用。
列表(list)是序列類型,元素類型可不同,長度和內容可變。
關鍵字if、else、elif;每個條件判斷(可以省略括號)以冒號結尾;通過空格縮進來區分代碼塊。
從可迭代對象中逐一提取元素放在循環變量中並執行循環體
for <循環變量> in <可迭代對象>:
<循環體>
range函數產生整數范圍:range(3)返回02;range(1,4)返回13;range(0,6,2)返回0,2,4;range(6,0,-2)返回6,4,2。
range對象是惰性對象,無法直接顯示。內置函數zip可展開惰性對象,還可以把多個列表對象的元素依次配對成元組。
while <條件>:
<循環體>
循環結構有兩個保留字break和continue,break用來跳出其所在for或while循環,continue用來結束當前當次循環。
參數可以是零個、1個或多個,沒有參數時也要保留圓括號,多個參數之間用逗號分隔;形參排列順序是:一般參數(只有形參名)、可選參數(形參名=缺省值)、可變參數(*形參名)。
返回值可以是零個、1個或多個,多個返回值用逗號分隔並以元組形式返回,無返回值時可以沒有return語句。
函數調用時,一般參數必須給定實參值;默認采用按形參順序傳遞實參,且可變參數只能按位置傳遞;為增強可讀性,還可以按形參名稱傳遞實參,參數順序可任意。若混用,則按名稱傳遞者需在按位置傳遞者
1.方法一
2.方法二
1.自定義Python類的父類一般為object,可以進行多重繼承;類的成員包括函數成員(或稱方法)和數據成員(或稱屬性)。
2.定義成員函數時,第一個參數必須是self,可使用前綴self.調用屬性或其它成員函數;
3.在對類進行實例化生成一個對象時,會自動調用構造函數進行初始化,構造函數的名字是__init__,init前後有兩個下劃線,沒有返回值;可省略
4.在清除對象時,系統自動調用析構函數,回收和釋放對象所占用的資源它的名字是__del__。可以省略。
5.所有成員函數和屬性默認是公開的(即可以通過對象調用),如果要設置為私有,則在名字前添加兩個下劃線。 使用del 對象名,可以刪除對象。
例:
萬物皆可python 後期我准備分享8.10篇python專題分享,會擴展一些機器學習方向知識,歡迎各位小伙伴來支持。