Python經常使用語法看這些就夠了(上篇)

參考教程:菜鳥教程html

https://www.runoob.com/python3/python3-tutorial.htmlpython

使用的開發工具是Jupyter Notebook(Anaconda)編程

下面我主要是介紹一些須要注意的點和練習過程:數據結構

說在前面:動手很重要函數

1、python基本語法

1.標識符規則:工具

在 Python 裏,標識符由字母、數字、下劃線組成。開發工具

在 Python 中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。測試

Python 中的標識符是區分大小寫的。spa

注意:3d

如下劃線開頭的標識符是有特殊意義的。

單下劃線開頭 _foo 的表明不能直接訪問的類屬性,需經過類提供的接口進行訪問,不能用 from xxx import * 而導入。

以雙下劃線開頭的 __foo 表明類的私有成員,以雙下劃線開頭和結尾的 __foo__ 表明 Python 裏特殊方法專用的標識,如 __init__() 表明類的構造函數。

 

2.行和縮進

python中的代碼塊不適應大括號{ } 來控制類、函數以及其餘邏輯判斷。python對縮進是很敏感的,它經過縮進來判斷函數或者模塊。

if True:
    print("true")
else:
    print("false")

若出現: IndentationError: unindent does not match any outer indentation level錯誤代表是縮進錯誤

 

3.多行語句在行尾使用 \ 來接下一行

句中包含 [], {} 或 () 括號就不須要使用多行鏈接符。

 

4.字符串表示 ‘’,「」,「「「,三引號能夠由多行組成。單行註釋用 #  多行註釋用三個單引號或三個雙引號。

 

5.input、print表示輸入、輸出,python中的命令-h能夠查看各參數的幫助信息。

 

6.import 與 from...import

 

2、Python變量類型

1.變量賦值

Python中變量名賦值不須要進行類型聲明,變量名也不須要提早建立,變量賦值之後纔會被建立(這一點和R語言相似)

 

2.多變量賦值

能夠同時給三個變量賦相同的值,也能夠將三個變量同時分別賦值。

 

3.標準數據類型

Python中有五個標準數據類型:Numbers(數字)、String(字符串)、List(列表)、Tuple(元組)、Dictionary(字典)

詳細內容看下面的第

 

3、Python的基本數據類型

用於存儲數據

1.Number數字

Python3 支持 int、float、bool、complex(複數)

(1)內置的 type() 函數能夠用來查詢變量所指的對象類型。

(2)此外還能夠用 isinstance 來判斷

(1)(2)的區別在於:

(3)Python3 中,把 True 和 False 定義成關鍵字了,但它們的值仍是 1 和 0,它們能夠和數字相加

(4)del語句能夠刪除一些對象引用。也能夠刪除單個或多個對象。

(5)Python還支持複數,複數由實數部分和虛數部分構成,能夠用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。

 

2.字符串

Python中的字符串用單引號 ' 或雙引號 " 括起來,同時使用反斜槓 \ 轉義特殊字符。

(1)字符串截取:

變量[頭下標:尾下標],字符串第一個字符索引是0;

從左往右以0開始,從右往左以-1開始。

(2)字符串操做

注意不能使用索引來改變字符串內的字符。

(3)對轉義字符的說明

反斜槓(\)轉義特殊字符,若是你不想讓反斜槓發生轉義,能夠在字符串前面添加一個 r,表示原始字符串:

 

3.列表List(Python內還有一些對列表操做的函數)

(1)列表是寫在方括號 [] 之間、用逗號分隔開的元素列表, 列表中元素的類型能夠不相同。

(2)列表中元素的截取

①當只截取一個時,返回值是這個元素;當截取多個時,返回的是一個新的列表。

②注意選取範圍是左閉右開區間

索引值以 0 爲開始值,-1 爲從末尾的開始位置。

能夠直接經過索引來更改列表內元素,也能夠經過列表內置方法來更改。

③注意:

list能夠用+進行拼接

和字符串同樣,list能夠被索引和切片

python截取列表數據時,能夠接收第三個參數,實現按步數截取

當第三個參數爲負數時逆向讀取,能夠用來翻轉字符串。

 

4.元組Tuple

(1)特色:操做元組與列表相似,不一樣之處在於,元組內的元組不能修改,元組寫在小括號()裏,元組之間用逗號隔開,元組內的元組類型也能夠不一樣。元組之間也能夠經過+直接合並。

(2)雖然tuple的元素不可變,可是他能夠包含可變的對象,好比說list列表。

(3)特別注意:構造包含0或1個元素的元組有着特殊的語法規則

 

5.集合set

是由一個或數個形態萬千的大小總體組成的,構成集合的事物或對象稱做元素或是成員

基本功能是進行成員關係測試和刪除重複元素set裏的內容位置是隨意的,因此不能用索引列出

(1)set的建立

①可使用大括號{}或者set()函數來建立

②在用set函數的時候,注意,set函數最多隻能接收一個參數

那麼怎樣用它來建立含有多個元素的集合呢?

    向set函數的參數裏,傳入含有多個元素的列表或元組都可;若是隻傳入一個字符串,他會將字符串拆成一個個的字符,那麼建立的集合就全是一個個的字母的集合啦

空的集合必須經過set()函數來建立;{}是用來建立空的字典的。

(2)集合之間能夠進行運算,差、交、並、補等

(3)set的使用:

①去重,set自動完成

②判斷元素是否在集合中

 

6.字典dictionary(具體字典內置函數,能夠百度一下)

列表是有序的對象集合,字典是無序的對象集合。二者之間的區別在於:字典當中的元素是經過來存取的,而不是經過偏移存取。

(1)字典的實質:字典是一種映射類型,字典用 { } 標識,它是一個無序的 鍵(key) : 值(value) 的集合

(2)注意: 鍵(key)必須使用不可變類型, 在同一個字典中,鍵(key)必須是惟一的。

(3)建立字典:三種方式對比

建立空字典用{}。

(4)對字典的讀取操做

 

7.Python數據轉換

下面介紹幾個內置函數能夠執行數據類型之間轉換,這些函數返回一個新的對象值,表示轉換的值。

函數

描述

int(x)

將x轉化爲一個整數

float(x)

將x轉化爲浮點數

comlext(real,imag)

建立複數

str(x)

將對象x轉化爲字符串

repe(x)

將對象x轉化爲表達式字符串

tuple(s)

將序列s轉化爲元組

list(s)

將序列s轉化爲列表

set(s)

將s轉化爲可變集合

frozenset(s)

轉化爲不可變集合

dict(d)

將d轉化爲字典;d必須是一個(key,value)的元組序列

chr(x)

將一個整數轉化爲字符

ord(x)

將一個字符轉化爲整數

hex(x)

將x轉化爲16進制形式字符串

oct(x)

轉化爲八進制形式字符串

 

 

4、Python解釋器

如今Python的集成開發工具多種多樣,我如今使用的是Jupyter notebook,網頁版,高效方便。

也可使用python自帶的IDE,有腳本編程和交互式編程兩種。

還有pycharm、Ipython等工具都很方便。

 

5、Python運算符(這裏只講一些經常使用的)

1.算術運算符

運算符

描述

+,-,*,/ 

加減乘除

%

取模,返回除法的餘數

x**y

返回x的y次方結果

//

向下取接近除數的整數,9//2=4;-5//2=-3;獲得的是更小的整數

2.比較運算符(返回的是真值)

運算符

描述

==、!=

等於、不等

>、<、>=、<=

大於、小於、大於等於、小於等於

3.賦值運算符

運算符

描述

=

簡單賦值符     c = a + b 將 a + b 的運算結果賦值爲 c

+=、-=、*=、/=

加減乘除賦值符    c += a 等效於 c = c + a

%=

取模賦值符    c %= a 等效於 c = c % a

**=

冪賦值符   c **= a 等效於 c = c ** a

//=

取整除賦值符   c //= a 等效於 c = c// a

:=

海象運算符(和R語言中的有點相似)

可在表達式內部爲變量賦值。

4.位運算符

運算符

描述

&

按位與運算符:參與運算的兩個值,若是兩個相應位都爲1,則該位的結果爲1,不然爲0

|

按位或運算符:只要對應的二個二進位有一個爲1時,結果位就爲1。

^

按位異或運算符:當兩對應的二進位相異時,結果爲1

~

按位取反運算符:對數據的每一個二進制位取反,即把1變爲0,把0變爲1。~x 相似於 -x-1

<<

左移動運算符:運算數的各二進位所有左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。

>>

右移動運算符:把">>"左邊的運算數的各二進位所有右移若干位,">>"右邊的數指定移動的位數

5.邏輯運算符(看X的真值)

運算符

描述

and

與運算符:若是x爲False,x and y 返回 False,不然返回y的計算值

or

或運算符:若是x是True,返回x的值,不然返回y的值

not

非運算符,若是x爲True,則返回False,不然返回True

6.成員運算符

in、not in

 

7.身份運算符(判斷)

is 判斷兩個標識符是否引用自同一個對象

is not  判斷兩個標識符是否引自不一樣的對象

 

8.Python運算符的優先級

"**" > "~ +@ -@" > "*/%//" > "+-" > "<< >>"

注意:python3已經不支持<>(不等)運算符,被!=替代了。

 

6、Python條件控制

1.if判斷

(1)小例子:

(2)if嵌套

if 表達式1:
    語句
    if 表達式2:
        語句
    elif 表達式3:
        語句
    else:
        語句
elif 表達式4:
    語句
else:
    語句

 

7、Python循環語句

1.while循環語句

while(condition):
    statement

例子:

當條件永真時,會無限循環

當條件不成立時跳出循環,也能夠用break來終止循環

 

2.for循環語句

(1)通常格式

for var in sequence:
    statemnet1
else:
    statement2

(2)小例子(range函數也能夠指定步數,默認是整數 1)

 

3.continue關鍵字

從例子中就能夠看出,continue是執行到該語句時,下面的語句再也不執行,繼續執行下一個循環過程

 

8、Python 迭代器和生成器

1.迭代器: 能夠記住遍歷的位置的對象。

迭代是Python最強大的功能之一,是訪問集合元素的一種方式。

迭代器有兩個基本的方法:iter() 和 next()

(1)使用Python內置迭代器

例子:

(2)迭代

(3)對自定義的類使用迭代器

把一個類做爲一個迭代器使用須要在類中實現兩個方法:__iter__(),__next__()     ※注意是雙下劃線!!!!

① __iter__() 方法返回一個特殊的迭代器對象, 這個迭代器對象實現了 __next__() 方法並經過觸發 StopIteration 異常標識迭代的完成(目的就是識別循環結束的狀況,防止出現無限循環的狀況)。

② __next__() 方法會返回下一個迭代器對象。

③小例子:

更加合理的指定迭代範圍的方式:

 

2.生成器generator:生成器就是一個迭代器

(1)定義:使用了yield的函數被稱爲生成器

調用一個生成器函數,返回的是一個迭代器對象。

(2)生成器的工做流程:

    在調用生成器運行的過程當中,每次遇到 yield 時函數會暫停並保存當前全部的運行信息,返回 yield 的值(至關於一個斷點), 並在下一次執行 next() 方法時從當前位置繼續運行

小例子:使用yield實現斐波那契數列:

 

9、Python函數

1.定義一個函數

    函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號 ()。

    任何傳入參數和自變量必須放在圓括號中間,圓括號之間能夠用於定義參數。

    函數內容以冒號起始,而且縮進

    return [表達式] 語句用於退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。

 

2.調用函數

    直接使用函數標識符(加須要傳遞的參數)進行調用

 

3.參數傳遞

(1)明確一下Python裏的可更改不可更改對象

    string、tuple、number都是不可更改對象;而list、dict是可更改對象

下面的概念好好理解:

不可變類型: 變量賦值 a=5 後再賦值 a=10,這裏實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,至關於新生成了a。

可變類型: 變量賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,自己la沒有動,只是其內部的一部分值被修改了。

(2)對於不可變類型、可變類型對象在調用函數中做爲參數傳遞:

不可變類型( string、tuple、number等):相似於C++的值傳遞;如func(a),a傳入的只是a的值,並不影響原來a對象自己。好比在函數內部對a的值改變,改變的只是這個對象的複製對象,對象a自己是不變的。

可變類型(list、dict等):相似於C++的引用傳遞,如func(la),la傳入的是這個對象自己,函數內部對這個對象修改後,外部的對象是會被改變的。

 

4.參數類型

調用參數時可以使用的正式參數類型:

必需參數、關鍵字參數、默認參數、不定長參數

(1)必需參數: 必需參數須以正確的順序傳入函數。調用時的數量必須和聲明時的同樣

(2)關鍵字參數: 使用關鍵字參數容許函數調用時參數的順序與聲明時不一致,由於 Python 解釋器可以用參數名匹配參數值。

例:

(3)默認參數

調用函數時,若是沒有傳遞參數,則會使用默認參數。如下實例中若是沒有傳入 age 參數,則使用默認值:

接上面例子:

(4)不定長參數

你可能須要一個函數能處理比當初聲明時更多的參數。

①第一種形式:使用加*的參數,表示輸入一個元組,這個元組的長度是不定的,由調用函數時,自動讀取。

例:

②第二種形式:使用加**的參數,表示輸入形式爲字典形式,長度不定

例:

 

5.匿名函數

python 使用 lambda 來建立匿名函數。 lambda的主體是一個表達式,而不是一個代碼塊。

所謂匿名,意即再也不使用 def 語句這樣標準的形式定義一個函數。

lambda 函數擁有本身的命名空間,且不能訪問本身參數列表以外或全局命名空間裏的參數。

(1)語法:注意寫lambda表達式時參數部分不要加 [ ] 這個符號只是表明能夠省略  ,否則會報錯

(2)例:

 能夠看出,也能夠不指定參數

 

10、Python數據結構

1.列表

2.列表——>堆棧

3. 元組和序列

4.集合

5.字典

相關文章
相關標籤/搜索