快速上手python-第一部分

python與大數(shù)據(jù)

Python擁有很豐富的庫,結(jié)合在編程方面的強大功能,可以只使用Python這一種語言去構(gòu)建以數(shù)據(jù)為中心的應(yīng)用程序。同時,Python是一個混合體,豐富的工具集使它介于傳統(tǒng)的腳本語言和系統(tǒng)語言之間。Python具有所有腳本語言所具有的簡單和易用的特征,并且擁有許多編譯語言的工具。此外,Python還提供了與數(shù)學(xué)計算相關(guān)的類庫,如NumPy、SciPy、SymPy、StatsModels等。

NumPy

NumPy是Numerical Python的簡稱,是Python實現(xiàn)科學(xué)計算的基礎(chǔ)包。NumPy主要提供以下功能。

(1)快速高效的多維數(shù)組對象ndarray。
(2)可對數(shù)組執(zhí)行元素級計算及直接對數(shù)組執(zhí)行數(shù)學(xué)運算的函數(shù)。
(3)用于讀寫硬盤上基于數(shù)組的數(shù)據(jù)集的工具。
(4)行列式計算、矩陣運算、特征分解、奇異值分解的函數(shù)與方法。
(5)將C、C++、Fortran代碼集成到Python的工具。

SciPy

SciPy是一個基于Python的開源庫,是一組專門解決科學(xué)計算中各種基本問題的模塊的集合,經(jīng)常與NumPy、StatsModels、SymPy這些庫一起使用。SciPy的不同子模塊有不同的應(yīng)用,如插值、積分、優(yōu)化、圖像處理等。SciPy主要包含了8個模塊

SciPy

SymPy

SymPy的全稱為Symbolic Python,是由純Python語言編寫的一個用于符號運算的庫,能夠與其他科學(xué)計算庫相結(jié)合。符號化的計算采用的是數(shù)學(xué)對象符號化的計算方式,使用數(shù)學(xué)對象的精確標(biāo)識,而不是近似的,計算結(jié)果可以為一個數(shù)學(xué)表達式。它的目標(biāo)在于成為一個富有特色的計算機代數(shù)系統(tǒng),同時保證自身的代碼盡可能簡單,且易于理解,容易擴展。

StatsModels

StatsModels是一個與統(tǒng)計相關(guān)的Python庫。它在統(tǒng)計計算方面可以視為SciPy的補充,包括數(shù)據(jù)的描述性統(tǒng)計、統(tǒng)計模型的估計和推斷等,對每一個模型都會生成一個對應(yīng)的統(tǒng)計結(jié)果。統(tǒng)計結(jié)果會和現(xiàn)有的統(tǒng)計包進行對比,以保證其正確性。

python優(yōu)點

Python之所以受到大家的歡迎,是因為它有很多優(yōu)秀“品質(zhì)”。
1 簡單、易學(xué)、免費、開源:Python簡單、易學(xué)。我們可以自由發(fā)布其復(fù)制版本,閱讀、修改其源代碼,將其(部分)用于新軟件中。
2 解釋型:Python是邊解釋邊執(zhí)行的,Python解釋器會將源代碼轉(zhuǎn)換為中間字節(jié)碼形式,然后將其解釋為機器語言并執(zhí)行。
3 可移植:Python解釋器已被移植在許多平臺上,Python程序無須經(jīng)過修改就可以在多個平臺上運行。
4 代碼規(guī)范:Python所采用的強制縮進的方式,使得其代碼具有極佳的可讀性。
5 面向?qū)ο螅号cC++和Java等相比,Python以強大而簡單的方式實現(xiàn)了面向?qū)ο缶幊獭?br> 6 膠水語言:標(biāo)準(zhǔn)版本的Python調(diào)用C語言,并可以借助C語言的接口驅(qū)動調(diào)用所有編程語言。
7 豐富的庫:Python的標(biāo)準(zhǔn)庫種類繁多,可以幫助處理各種工作,我們不需要安裝就可以直接使用這些庫。
8 動態(tài)類型:Python不會檢查數(shù)據(jù)類型,在聲明變量時不需要指定數(shù)據(jù)類型。

安裝python 環(huán)境

  1. intellij idea
  2. 終端調(diào)試

python 基礎(chǔ)知識

Python中標(biāo)識符的命名規(guī)則如下。
1 區(qū)分大小寫:Myname與myname是兩個不同的標(biāo)識符。
2 首字符可以是下畫線(_)或字母,但不能是數(shù)字。
3 除首字符外的其他字符必須是下畫線、字母和數(shù)字。
4 關(guān)鍵字不能作為標(biāo)識符。
5 不要使用Python的內(nèi)置函數(shù)作為自己的標(biāo)識符。

Python 特性

關(guān)鍵字:33 個關(guān)鍵字
變量
語句:在Python中,一行代碼表示一條語句,在一般情況下語句結(jié)束時不加分號。
注釋:在使用#(井號)時,#位于注釋行的開頭,#后面有一個空格,接著是注釋的內(nèi)容。

數(shù)據(jù)類型

在Python中有6種主要的內(nèi)置數(shù)據(jù)類型:數(shù)字、字符串、列表、元組、集合和字典。列表、元組、集合和字典可以容納多項數(shù)據(jù),在本書中把它們統(tǒng)稱為容器類型的數(shù)據(jù)。
Python中的數(shù)字類型有4種:整數(shù)類型、浮點類型、復(fù)數(shù)類型和布爾類型。需要注意的是,布爾類型也是數(shù)字類型,它事實上是整數(shù)類型的一種。
整數(shù)類型
浮點類型
復(fù)數(shù)類型
布爾類型
數(shù)字類型的相互轉(zhuǎn)換:隱式類型的轉(zhuǎn)換和顯式類型的轉(zhuǎn)換

運算符

算術(shù)運算符
比較運算符
邏輯運算符
位運算符
賦值運算符
運算符的優(yōu)先級

程序流程控制

分支語句 if
循環(huán)語句: while for
跳轉(zhuǎn)語句:break、continue

容器類型的數(shù)據(jù)

Python內(nèi)置的數(shù)據(jù)類型如序列(列表、元組等)、集合和字典等可以容納多項數(shù)據(jù),我們稱它們?yōu)槿萜黝愋偷臄?shù)據(jù)。

序列

序列(sequence)是一種可迭代的、元素有序的容器類型的數(shù)據(jù)。
序列包括列表(list)、字符串(str)、元組(tuple)和字節(jié)序列(bytes)等。
序列的索引操作
加和乘操作:加(+)和乘()運算符也可以用于序列中的元素操作。加(+)運算符可以將兩個序列連接起來,乘()運算符可以將兩個序列重復(fù)多次。
切片運算符的語法形式為[start:end:step]。其中,start是開始索引,end是結(jié)束索引,step是步長(切片時獲取的元素的間隔,可以為正整數(shù),也可以為負(fù)整數(shù))。

列表

列表(list)是一種可變序列類型,我們可以追加、插入、刪除和替換列表中的元素。

創(chuàng)建列表

創(chuàng)建列表有兩種方法。
1 list(iterable)函數(shù):參數(shù)iterable是可迭代對象(字符串、列表、元組、集合和字典等)。
2 [元素1,元素2,元素3,?]:指定具體的列表元素,元素之間以逗號分隔,列表元素需要使用中括號括起來。

追加元素

列表是可變的序列對象,列表可以追加元素。
1 在列表中追加單個元素時,可以使用列表的append(x)方法。
2 在列表中追加多個元素時,可以使用加(+)運算符或列表的extend(t)方法。

插入元素

想向列表中插入元素時,可以使用列表的list.insert(i,x)方法,其中,i指定索引位置,x是要插入的元素。

替換元素

想替換列表中的元素時,將列表下標(biāo)索引元素放在賦值符號(=)的左邊,進行賦值即可。

刪除元素

想在列表中刪除元素時,可使用列表的list.remove(x)方法,如果找到匹配的元素x,則刪除該元素,如果找到多個匹配的元素,則只刪除第一個匹配的元素。

元組

元組(tuple)是一種不可變序列類型。

創(chuàng)建元組

創(chuàng)建元組時有兩種方法。
1 tuple(iterable)函數(shù):參數(shù)iterable是可迭代對象(字符串、列表、元組、集合和字典等)。
2 (元素1,元素2,元素3,?):指定具體的元組元素,元素之間以逗號分隔。對于元組元素,可以使用小括號括起來,也可以省略小括號。

元組拆包

創(chuàng)建元組,并將多個數(shù)據(jù)放到元組中,這個過程被稱為元組打包。
與元組打包相反的操作是拆包,就是將元組中的元素取出,分別賦值給不同的變量。

集合

集合(set)是一種可迭代的、無序的、不能包含重復(fù)元素的容器類型的數(shù)據(jù)。

創(chuàng)建集合

1 set(iterable)函數(shù):參數(shù)iterable是可迭代對象(字符串、列表、元組、集合和字典等)。
2 {元素1,元素2,元素3,?}:指定具體的集合元素,元素之間以逗號分隔。對于集合元素,需要使用大括號括起來。

修改集合

修改集合類似于修改列表,可以向其中插入和刪除元素。修改可變集合有如右所示的常用方法。
add(elem):添加元素,如果元素已經(jīng)存在,則不能添加,不會拋出錯誤。
remove(elem):刪除元素,如果元素不存在,則拋出錯誤。
clear():清除集合。

字典

字典(dict)是可迭代的、通過鍵(key)來訪問元素的可變的容器類型的數(shù)據(jù)。
字典由兩部分視圖構(gòu)成:鍵視圖和值視圖。鍵視圖不能包含重復(fù)的元素,值視圖能。在鍵視圖中,鍵和值是成對出現(xiàn)的。

創(chuàng)建字典

我們可以通過以下兩種方法創(chuàng)建字典。
1 dict()函數(shù)。
2 {key1:value1,key2:value2,...,key_n:value_n}:指定具體的字典鍵值對,鍵值對之間以逗號分隔,最后用大括號括起來。

修改字典

字典可以被修改,但都是針對鍵和值同時操作的,對字典的修改包括添加、替換和刪除。

訪問字典視圖

items():返回字典的所有鍵值對視圖。keys():返回字典鍵視圖。
values():返回字典值視圖。

字符串

字符串的表示方式
字符串有三種表示方式:普通字符串、原始字符串和長字符串。

普通字符串

普通字符串指用單引號(')或雙引號(")括起來的字符串。
轉(zhuǎn)義字符

原始字符串

長字符串

如果要使用字符串表示一篇文章,其中包含了換行、縮進等排版字符,則可以使用長字符串表示。對于長字符串,要使用三個單引號(''')或三個雙引號(""")括起來。

字符串與數(shù)字的相互轉(zhuǎn)換
  1. 將字符串轉(zhuǎn)換為數(shù)字,可以使用int()和float()實現(xiàn),如果成功則返回數(shù)字,否則引發(fā)異常。
  2. 將數(shù)字轉(zhuǎn)換為字符串,可以使用str()函數(shù),str()函數(shù)可以將很多類型的數(shù)據(jù)都轉(zhuǎn)換為字符串。
  3. 格式化字符串:使用占位符,要想將表達式的計算結(jié)果插入字符串中,則需要用到占位符。對于占位符,使用一對大括號({})表示。

函數(shù)

定義函數(shù):

def funciton(param):
pass

調(diào)用函數(shù)

使用位置參數(shù)調(diào)用函數(shù)

在調(diào)用函數(shù)時傳遞的實參與定義函數(shù)時的形參順序一致,這是調(diào)用函數(shù)的基本形式。

使用關(guān)鍵字參數(shù)調(diào)用函數(shù)

在調(diào)用函數(shù)時可以采用“關(guān)鍵字=實參”的形式,其中,關(guān)鍵字的名稱就是定義函數(shù)時形參的名稱。

參數(shù)的默認(rèn)值

可變參數(shù)

基于元組的可變參數(shù)(*可變參數(shù)):
*可變參數(shù)在函數(shù)中被組裝成一個元組。

基于字典的可變參數(shù)(**可變參數(shù))

**可變參數(shù)在函數(shù)中被組裝成一個字典。

函數(shù)中變量的作用域

變量可以在模塊中創(chuàng)建,作用域(變量的有效范圍)是整個模塊,被稱為全局變量。變量也可以在函數(shù)中創(chuàng)建,在默認(rèn)情況下作用域是整個函數(shù),被稱為局部變量。

理解函數(shù)類型

函數(shù)類型的數(shù)據(jù)與其他類型的數(shù)據(jù)是一樣的,任意類型的數(shù)據(jù)都可以作為函數(shù)返回值使用,還可以作為函數(shù)參數(shù)使用。因此,一個函數(shù)可以作為另一個函數(shù)返回值使用,也可以作為另一個函數(shù)參數(shù)使用。

過濾函數(shù)filter()
filter()函數(shù)用于對容器中的元素進行過濾處理。
映射函數(shù)map()
map()函數(shù)用于對容器中的元素進行映射(或變換)。例如:我想將列表中的所有元素都乘以2,返回新的列表。

類與對象

面向?qū)ο螅悍庋b、繼承、多態(tài)
如何定義類
創(chuàng)建對象
類的成員
構(gòu)造方法:init
類變量:類變量是屬于類的變量,不屬于單個對象。銀行利率
類方法:類方法與類變量類似,屬于類,不屬于個體實例。在定義類方法時,它的第1個參數(shù)不是self,而是類本身。類方法定義:@classmethod
私有變量:成為私有變量,則在變量前加上雙下畫線()即可。
私有方法:私有方法與私有變量的封裝是類似的,在方法前加上雙下畫線(
)就是私有方法了。示例代碼如下
繼承:在Python中聲明子類繼承父類,語法很簡單,定義類時在類的后面使用一對小括號指定它的父類就可以了。在Python中,當(dāng)子類繼承多個父類時,如果在多個父類中有相同的成員方法或成員變量,則子類優(yōu)先繼承左邊父類中的成員方法或成員變量,從左到右繼承級別從高到低。
多態(tài)性也是面向?qū)ο笾匾幕咎匦灾??!岸鄳B(tài)”指對象可以表現(xiàn)出多種形態(tài)。

異常處理

try-except語句
異常捕獲是通過try-except語句實現(xiàn)的,基本的try-except語句的語法如下。
多個except代碼塊
多條語句可能會引發(fā)多種不同的異常,對每一種異常都會采用不同的處理方式。針對這種情況,我們可以在一個try后面跟多個except代碼塊。
使用finally代碼塊釋放資源

自定義異常處理

繼承Exception,拋出異常是使用raise。

內(nèi)置模塊

math
datetime
date
time
re : 正則表達式

文件讀寫

使用文件之前要先將文件打開,這通過open()函數(shù)實現(xiàn)
open()函數(shù)中的參數(shù)還有很多,這里介紹4個常用參數(shù),這些參數(shù)的含義如下。
1.file參數(shù)
file參數(shù)用于表示要打開的文件,可以是字符串或整數(shù)。如果file是字符串,則表示文件名,文件名既可以是當(dāng)前目錄的相對路徑,也可以是絕對路徑;如果file是整數(shù),則表示一個已經(jīng)打開的文件。
2.mode參數(shù)
mode參數(shù)用于設(shè)置文件打開模式,用字符串表示,例如rb表示以只讀模式打開二進制文件。用于設(shè)置文件打開模式的字符串中的每一個字符都表示不同的含義,對這些字符的具體說明如下。
t:以文本文件模式打開文件。
b:以二進制文件模式打開文件。
r:以只讀模式打開文件。
w:以只寫模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則覆蓋文件的內(nèi)容。
x:以獨占創(chuàng)建模式打開文件,如果文件不存在,則創(chuàng)建并以寫入模式打開;如果文件已存在,則引發(fā)FileExistsError異常。
a:以追加模式打開文件,不能讀內(nèi)容。如果文件不存在,則創(chuàng)建文件;如果文件存在,則在文件末尾追加。
+:以更新(讀寫)模式打開文件,必須與r、w或a組合使用,才能設(shè)置文件為讀寫模式。

關(guān)閉文件
在打開文件后,如果不再使用該文件,則應(yīng)該將其關(guān)閉,會用到close()方法。
在with as代碼塊中關(guān)閉文件
with as提供了一個代碼塊,在as后面聲明一個資源變量,在with as代碼塊結(jié)束之后自動釋放資源。

讀寫文本文件
read(size=-1):從文件中讀取字符串,size限制讀取的字符數(shù),size=-1指對讀取的字符數(shù)沒有限制。
readline(size=-1):在讀取到換行符或文件尾時返回單行字符串。如果已經(jīng)到文件尾,則返回一個空字符串。size是限制讀取的字符數(shù),size=-1表示沒有限制。
readlines():讀取文件數(shù)據(jù)到一個字符串列表中,每一行數(shù)據(jù)都是列表的一個元素。
write(s):將字符串s寫入文件中,并返回寫入的字符數(shù)。
writelines(lines):向文件中寫入一個字符串列表。不添加行分隔符,因此通常為每一行末尾都提供行分隔符。
flush():刷新寫緩沖區(qū),在文件沒有關(guān)閉的情況下將數(shù)據(jù)寫入文件中。

圖形用戶界面

建議使用pyqt5
事件循環(huán)機制

數(shù)據(jù)庫

pymysql

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容