日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python语法详解大全_笔记:Python 语法要点汇总

發布時間:2025/4/17 python 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python语法详解大全_笔记:Python 语法要点汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python 是一門解釋型語言,無需編譯和鏈接

Python 解釋器

交互模式

腳本模式

源碼編碼

默認情況下,Python 源文件是 UTF-8 編碼

指定源文件的字符編碼

# -*- coding:utf-8 -*-注釋,#注釋 及"""注釋"""

數據結構

標準數據類型

ython3 中有六個標準的數據類型:Number(數字)

String(字符串)

List(列表)

Tuple(元組)

Set(集合)

Dictionary(字典)

Python3 的六個標準數據類型中:不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);

可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。

數字(Number)

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

整數類型是 int,帶有小數部分的數字類型是 float

使用 / 運算符返回浮點數,使用 //運算符返回整數

變量在使用前必須 “定義”(賦值),否則會出錯

浮點數有完整的支持;整數和浮點數的混合計算中,整數會被轉換為浮點數

交互模式中,最近一個表達式的值賦給變量_

數字型變量對于用戶是只讀的,再次賦值只會創建獨立的同名變量

字符串(String)

用單引號 ('...') 或雙引號 ("...") 標識字符串,效果相同

\可以用來轉義引號

在交互式解釋器中,輸出的字符串會用引號引起來,特殊字符會用反斜杠轉義

在第一個引號前面加上一個r ,可獲取原始字符串

字符串文本能夠分成多行,使用三引號:"""..."""或者'''...''',

行尾換行符會被自動包含到字符串中,可以在行尾加上\來避免這個行為

字符串可以由+操作符連接(粘到一起),可以由*表示重復

相鄰的兩個字符串文本自動連接在一起,只用于兩個字符串文本,不能用于字符串表達式

Python沒有單獨的字符類型;一個字符就是一個簡單的長度為1的字符串

字符串可以被截取(檢索),索引值以 0 為開始值,-1 為從末尾的開始位置

注意 -0 實際上就是 0,所以它不會導致從右邊開始計算

字符串支持切片

索引用于獲得單個字符,切片讓你獲得一個子字符串

注意,包含起始的字符,不包含末尾的字符。這使得s[:i]?+?s[i:]永遠等于s

切片的索引有非常有用的默認值;省略的第一個索引默認為零,省略的第二個索引默認為切片的字符串的大小

切片的工作方式:切片時的索引是在兩個字符之間

左邊第一個字符的索引為 0,而長度為n的字符串其最后一個字符的右界索引為n

+---+---+---+---+---+---+

| P | y | t | h | o | n |

+---+---+---+---+---+---+

0 1 2 3 4 5 6-6 -5 -4 -3 -2 -1對于非負索引,如果上下都在邊界內,切片長度就是兩個索引之差

試圖使用太大的索引會導致錯誤

一個過大的索引值(即下標值大于字符串實際長度)將被字符串實際長度所代替,

當上邊界比下邊界大時(即切片左值大于右值)就返回空字符串

Python字符串不可以被更改,它們是不可變的;賦值給字符串索引的位置會導致錯誤

內置函數len()返回字符串長度

特殊字符例如\n在單引號('...')和雙引號("...")中具有相同的含義。

兩者唯一的區別是在單引號中,你不需要轉義"(但你必須轉義\')

列表(List)

列表時括號之間的一列逗號分隔的值

列表的元素不必是同一類型

列表可以被索引和切片,所有的切片操作都會返回一個包含請求的元素的新列表

列表支持連接操作

列表是可變的,允許修改元素

可以對切片賦值,此操作可以改變列表的尺寸,或清空它

內置函數len()同樣適用于列表

允許嵌套列表(創建一個包含其它列表的列表)

在列表的末尾添加新的元素,append(x)

在指定位置插入一個元素。第一個參數是準備插入到其前面的那個元素的索引,list.insert(i,x)

刪除列表中值為x的第一個元素,list.remove(x);如果沒有這樣的元素,就會返回一個錯誤

從列表的指定位置刪除元素,并將其返回,list.pop([i]);如果沒有指定索引,a.pop()返回最后一個元素

從列表中刪除所有元素,list.clear()

返回列表中第一個值為x的元素的索引,list.index(x);如果沒有匹配的元素就會返回一個錯誤

返回x在列表中出現的次數,list.count(x);

對列表中的元素就地進行排序,list.sort()

就地倒排列表中的元素,list.reverse()

返回列表的一個淺拷貝,list.copy();等同于a[:]

將一個給定列表中的所有元素都添加到另一個列表中,list.extend(L)

把列表當作堆棧使用

堆棧作為特定的數據結構,最先進入的元素最后一個被釋放(后進先出)

用append()方法可以把一個元素添加到堆棧頂。用不指定索引的pop()方法可以把一個元素從堆棧頂釋放出來

把列表當作隊列使用

隊列作為特定的數據結構,最先進入的元素最先釋放(先進先出)

不過,列表這樣用效率不高。相對來說從列表末尾添加和彈出很快;在頭部插入和彈出很慢(因為,為了一個元素,要移動整個列表中的所有元素)

要實現隊列,使用collections.deque,它為在首尾兩端快速插入和刪除而設計

列表推導式

列表推導式由包含一個表達式的括號組成,表達式后面跟隨一個for子句,之后可以有零或多個for或if子句。結果是一個列表,由表達式依據其后面的for和if子句上下文計算而來的結果構成

列表推導式為從序列中創建列表提供了一個簡單的方法

squares?x?()squares.append(x)注意這個 for 循環中的被創建(或被重寫)的名為x的變量在循環完畢后依然存在

squares?xx?()列表推導式可使用復雜的表達式和嵌套函數

嵌套的列表推導式

列表解析中的第一個表達式可以是任何表達式,包括列表解析

del語句

從列表中按給定的索引而不是值來刪除一個子項:del語句

不同于有返回值的pop()方法,語句del可以從列表中刪除切片或清空整個列表

del也可以刪除整個變量

元組

一個元組由數個逗號分隔的值組成

元組在輸出時總是有括號的,以便于正確表達嵌套結構。

在輸入時可以有或沒有括號,不過經常括號都是必須的(如果元組是一個更大的表達式的一部分)

不能給元組的一個獨立的元素賦值(盡管你可以通過聯接和切割來模擬)。

可以創建包含可變對象的元組,例如列表

元組有很多用途。例如 (x, y) 坐標對,數據庫中的員工記錄等等。

元組就像字符串,不可變的。

通常包含不同種類的元素并通過分拆(參閱本節后面的內容) 或索引訪問(如果是namedtuples,甚至可以通過屬性)

一對空的括號可以創建空元組;empty=()

要創建一個單元素元組可以在值后面跟一個逗號:singleton='hello',

(在括號中放入一個單值不夠明確)

集合

集合是一個無序不重復元素的集

基本功能包括關系測試和消除重復元素

大括號或set()函數可以用來創建集合

創建空集合,你必須使用set()而不是{},后者用于創建空字典

集合推導式語法,a={xforxin'abracadabra'ifxnotin'abc'}

字典

字典在某些語言中可能稱為 聯合內存 ( associative memories )或 聯合數組 ( associative arrays )

字典以關鍵字為索引,關鍵字可以是任意不可變類型,通常用字符串或數值

理解字典的最佳方式是把它看做無序的鍵:值對(key:value 對)集合,鍵必須是互不相同的(在同一個字典之內)

一對大括號創建一個空的字典:{}

初始化列表時,在大括號內放置一組逗號分隔的鍵:值對,這也是字典輸出的方式

字典的主要操作是依據鍵來存儲和析取值

可以用del來刪除鍵:值對(key:value)

用一個已經存在的關鍵字存儲值,以前為該關鍵字分配的值就會被遺忘

試圖從一個不存在的鍵中取值會導致錯誤。

對一個字典執行list(d.keys())將返回一個字典中所有關鍵字組成的無序列表

如果你想要排序,只需使用sorted(d.keys())

使用in關鍵字(指Python語法)可以檢查字典中是否存在某個關鍵字(指字典)

dict()構造函數可以直接從 key-value 對中創建字典dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])

字典推導式可以從任意的鍵值表達式中創建字

如果關鍵字都是簡單的字符串,有時通過關鍵字參數指定 key-value 對更為方便

dict(sape=4139, guido=4127, jack=4098)

循環技巧

在字典中循環時,關鍵字和對應的值可以使用items()方法同時解讀出來:

knights = {'gallahad': 'the pure', 'robin': 'the brave'}for k, v in knights.items():? ??print(k,v)

在序列中循環時,索引位置和對應值可以使用enumerate()函數同時得到

for i, v in enumerate(['tic', 'tac', 'toe']):? ??print(i,v)

同時循環兩個或更多的序列,可以使用zip()整體打包:

questions = ['name', 'quest', 'favorite color']answers = ['lancelot', 'the holy grail', 'blue']for q, a in zip(questions, answers):? ??print('What is your{0}? ?It is{1}.'.format(q,a))

需要逆向循環序列的話,先正向定位序列,然后調用reversed()函數:

for i in reversed(range(1, 10, 2)):? ??print(i)

要按排序后的順序循環序列的話,使用sorted()函數,它不改動原序列,而是生成一個新的已排序的序列:

basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']for f in sorted(set(basket)):? ??print(f)

若要在循環內部修改正在遍歷的序列(例如復制某些元素),建議您首先制作副本。在序列上循環不會隱式地創建副本。切片表示法使這尤其方便:

words = ['cat', 'window', 'defenestrate']for w in words[:]: # Loop over a slice copy of the entire list.if len(w) > 6:words.insert(0, w)

深入條件控制

while和if語句中使用的條件不僅可以使用比較,而且可以包含任意的操作

比較操作符in和not?in審核值是否在一個區間之內

操作符is和is?not比較兩個對象是否相同

所有的比較操作符具有相同的優先級,低于所有的數值操作

比較操作可以傳遞。例如a?

比較操作可以通過邏輯操作符and和or組合,比較的結果可以用not來取反義

邏輯操作符and和or也稱作短路操作符,它們的參數從左向右解析,一旦結果可以確定就停止

如果A和C為真而B為假,A?and?B?and?C不會解析C

作用于一個普通的非邏輯值時,短路操作符的返回值通常是最后一個變量

可以把比較或其它邏輯表達式的返回值賦給一個變量

需要注意的是 Python 與 C 不同,在表達式內部不能賦值

比較序列和其它類型

序列對象可以與相同類型的其它對象比較

比較操作按字典序進行:首先比較前兩個元素,如果不同,就決定了比較的結果;如果相同,就比較后兩個元素,依此類推,直到所有序列都完成比較

如果兩個元素本身就是同樣類 型的序列,就遞歸字典序比較。如果兩個序列的所有子項都相等,就認為序列相等

如果一個序列是另一個序列的初始子序列,較短的一個序列就小于另一個

字符串的字典序按照單字符的 ASCII 順序

需要注意的是如果通過比較的對象只要具有合適的比較方法就是合法的

控制流程

if?語句

if…elif…elif… 序列用于替代其它語言中的switch或case語句

Python 的for語句依據任意序列(鏈表或字符串)中的子項,按它們在序列中的順序來進行迭代

(通常的循環可能會依據一個等差數值步進過程(如 Pascal),或由用戶來定義迭代步驟和中止條件)

在迭代過程中修改迭代序列不安全(只有在使用鏈表這樣的可變序列時才會有這樣的情況)

如果你需要一個數值序列,內置函數range()會很方便,它生成一個等差級數鏈表:

for i in range(5):? ??print(i)

range(10)生成了一個包含 10 個值的鏈表,它用鏈表的索引值填充了這個長度為 10 的列表,所生成的鏈表中不包括范圍中的結束值。也可以讓range()操作從另一個數值開始,或者可以指定一個不同的步進值(甚至是負數,有時這也被稱為 “步長”):

range(5, 10)

5 through 9range(0, 10, 3)

0, 3, 6, 9range(-10, -100, -30)

-10, -40, -70

需要迭代鏈表索引的話,如下所示結合使 用range()和len()

a = ['Mary', 'had', 'a', 'little', 'lamb']for i in range(len(a)):print(i,a[i])

輸出

0 Mary1 had2 a3 little4 lamb不過,這種場合可以方便的使用enumerate()

在不同方面?range()?函數返回的對象表現為它是一個列表,但事實上它并不是。當你迭代它時,它是一個能夠像期望的序列返回連續項的對象;但為了節省空間,它并不真正構造列表。

我們稱此類對象是?可迭代的,即適合作為那些期望從某些東西中獲得連續項直到結束的函數或結構的一個目標(參數)。我們已經見過的?for?語句就是這樣一個迭代器。list()?函數是另外一個(?迭代器?),它從可迭代(對象)中創建列表

break語句和 C 中的類似,用于跳出最近的一級for或while循環

循環可以有一個else子句;它在循環迭代完整個列表(對于for)或執行條件為 false (對于while)時執行,但循環被break中止的情況下不會執行

與循環一起使用時,else子句與try語句的else子句比與if語句的具有更多的共同點:try語句的else子句在未出現異常時運行,循環的else子句在未出現break時運行。更多關于try語句和異常的內容,請參見異常處理。

continue語句是從 C 中借鑒來的,它表示循環繼續執行下一次迭代,(結束本次循環執行語句,開始下一次循環)

pass語句什么也不做。它用于那些語法上必須要有什么語句,但程序什么也不做的場合

這通常用于創建最小結構的類:

class MyEmptyClass:pass

另一方面,pass可以在創建新代碼時用來做函數或控制體的占位符??梢宰屇阍诟橄蟮募墑e上思考。pass可以默默的被忽視:

def initlog(*args):? ??pass# Remember to implement this!

定義函數

關鍵字def引入了一個函數定義。在其后必須跟有函數名和包括形式參數的圓括號。函數體語句從下一行開始,必須是縮進的

函數體的第一行語句可以是可選的字符串文本,這個字符串是函數的文檔字符串,或者稱為docstring。

在你的代碼中包含 docstrings 是一個好的實踐

函數調用會為函數局部變量生成一個新的符號表,所有函數中的變量賦值都是將值存儲在局部符號表

變量引用首先在局部符號表中查找,然后是包含函數的局部符號表,然后是全局符號表,最后是內置名字表

全局變量不能在函數中直接賦值(除非用global語句命名),盡管他們可以被引用

函數引用的實際參數在函數調用時引入局部符號表,因此,實參總是傳值調用(這里的值總是一個對象 引用 ,而不是該對象的值)。[1]一個函數被另一個函數調用時,一個新的局部符號表在調用過程中被創建

一個函數定義會在當前符號表內引入函數名。函數名指代的值(即函數體)有一個被 Python 解釋器認定為用戶自定義函數的類型。 這個值可以賦予其他的名字(即變量名),然后它也可以被當做函數使用。這可以作為通用的重命名機制

return語句從函數中返回一個值,不帶表達式的return返回None

過程結束后也會返回None

語句result.append(b)稱為鏈表對象result的一個方法。方法是一個“屬于”某個對象的函數,它被命名為obj.methodename,這里的obj是某個對象(可能是一個表達式),methodename是某個在該對象類型定義中的方法的命名

不同的類型定義不同的方法。不同類型可能有同樣名字的方法,但不會混淆。(當你定義自己的對象類型和方法時,可能會出現這種情況,class的定義方法詳見類)

深入 Python 函數定義

在 Python 中,可以定義包含若干參數的函數

默認參數值

最常用的一種形式是為一個或多個參數指定默認值

這個函數可以通過幾種不同的方式調用:只給出必要的參數:

ask_ok('Do?you?really?want?to?quit?')

給出一個可選的參數:

ask_ok('OK?to?overwrite?the?file?',?2)

或者給出所有的參數:

ask_ok('OK?to?overwrite?the?file?',?2,?'Come?on,?only?yes?or?no!')

這個例子還介紹了?in?關鍵字。它測定序列中是否包含某個確定的值。

默認值在函數定義作用域被解析重要警告:默認值只被賦值一次。這使得當默認值是可變對象時會有所不同,比如列表、字典或者大多數類的實例關鍵字參數函數可以通過關鍵字參數的形式來調用,形如keyword?=?value在函數調用中,關鍵字的參數必須跟隨在位置參數的后面。傳遞的所有關鍵字參數必須與函數接受的某個參數相匹配 (例如actor不是parrot函數的有效參數),它們的順序并不重要

任何參數都不可以多次賦值

引入一個形如**name的參數時,它接收一個字典(參見Mapping Types — dict),該字典包含了所有未出現在形式參數列表中的關鍵字參數

可變參數列表

一個最不常用的選擇是可以讓函數調用可變個數的參數。這些參數被包裝進一個元組

通常,這些可變參數是參數列表中的最后一個,因為它們將把所有的剩余輸入參數傳遞給函數。任何出現在*args后的參數是關鍵字參數,這意味著,他們只能被用作關鍵字,而不是位置參數:

參數列表的分拆

當要傳遞的參數已經是一個列表,但要調用的函數卻接受分開一個個的參數值,要把已有的列表拆開來,可以在調用函數時加一個*操作符來自動把參數列表拆開

同樣的方式,可以使用**操作符分拆關鍵字參數為字典

Lambda 形式

通過lambda關鍵字,可以創建短小的匿名函數

這里有一個函數返回它的兩個參數的和:lambda?a,?b:?a+b。 Lambda 形式可以用于任何需要的函數對象。出于語法限制,它們只能有一個單獨的表達式。語義上講,它們只是普通函數定義中的一個語法技巧。類似于嵌套函數定義,lambda 形式可以從外部作用域引用變量

文檔字符串

第一行應該是關于對象用途的簡介

如果文檔字符串有多行,第二行應該空出來,與接下來的詳細描述明確分隔

接下來的文檔應該有一或多段描述對象的調用約定、邊界效應等

Python 的解釋器不會從多行的文檔字符串中去除縮進,所以必要的時候應當自己清除縮進

第一行之后的第一個非空行決定了整個文檔的縮進格式

每一行都不應該有縮進,如果有縮進的話,所有的留白都應該清除掉

函數注解

函數注解是關于用戶自定義的函數的完全可選的、隨意的元數據信息

注解是以字典形式存儲在函數的__annotations__屬性中,對函數的其它部分沒有任何影響。參數注解(Parameter annotations)是定義在參數名稱的冒號后面,緊隨著一個用來表示注解的值得表達式。返回注釋(Return annotations)是定義在一個->后面,緊隨著一個表達式,在冒號與->之間

編碼風格

使用 4 空格縮進,而非 TAB

在小縮進(可以嵌套更深)和大縮進(更易讀)之間,4空格是一個很好的折中。TAB 引發了一些混亂,最好棄用

折行以確保其不會超過 79 個字符

這有助于小顯示器用戶閱讀,也可以讓大顯示器能并排顯示幾個代碼文件

使用空行分隔函數和類,以及函數中的大塊代碼

可能的話,注釋獨占一行

使用文檔字符串

把空格放到操作符兩邊,以及逗號后面,但是括號里側不加空格:a=f(1,2)+g(3,4)

統一函數和類命名

推薦類名用駝峰命名, 函數和方法名用小寫_和_下劃線。總是用self作為方法的第一個參數(關于類和方法的知識詳見初識類)

不要使用花哨的編碼,如果你的代碼的目的是要在國際化環境。Python 的默認情況下,UTF-8,甚至普通的 ASCII 總是工作的最好

同樣,也不要使用非 ASCII 字符的標識符,除非是不同語種的會閱讀或者維護代碼

模塊

Python 提供了一個方法可以從文件中獲取定義,在腳本或者解釋器的一個交互式實例中使用。這樣的文件被稱為模塊;

模塊中的定義可以導入到另一個模塊或主模塊中(在腳本執行時可以調用的變量集位于最高級,并且處于計算器模式)

模塊是包括 Python 定義和聲明的文件,文件名就是模塊名加上.py后綴

模塊的模塊名(做為一個字符串)可以由全局變量__name__得到

如果打算頻繁使用一個函數,你可以將它賦予一個本地變量

fib =fibo.fib

print(fib(500))

深入模塊

除了包含函數定義外,模塊也可以包含可執行語句,

這些語句一般用來初始化模塊。他們僅在第一次被導入的地方執行一次

每個模塊都有自己私有的符號表,被模塊內所有的函數定義作為全局符號表使用

模塊的作者可以在模塊內部使用全局變量,而無需擔心它與某個用戶的全局變量意外沖突

可以使用引用模塊函數的表示法訪問模塊的全局變量,modname.itemname

模塊可以導入其他的模塊

一個(好的)習慣是將所有的import語句放在模塊的開始

被導入的模塊名會放入當前模塊的全局符號表中

import語句的一個變體直接從被導入的模塊中導入命名到本模塊的語義表中

fromfibo importfib,fib2

fib(500)這樣不會從局域語義表中導入模塊名

有種方式可以導入模塊中的所有定義,可以導入所有除了以下劃線(_)開頭的命名

fromfibo import*需要注意的是在實踐中往往不鼓勵從一個模塊或包中使用*導入所有,因為這樣會讓代碼變得很難讀

出于性能考慮,每個模塊在每個解釋器會話中只導入一遍。因此,如果你修改了你的模塊,需要重啟解釋器;或者,如果你就是想交互式的測試這么一個模塊,可以用imp.reload()重新加載,例如importimp;imp.reload(modulename)。

作為腳本來執行模塊

使用以下方式運行 Python 模塊時,模塊中的代碼便會被執行

python fibo.py 模塊中的代碼會被執行,就像導入它一樣,不過此時__name__被設置為"__main__"。這相當于,如果你在模塊后加入如下代碼

if__name__ =="__main__":importsys

fib(int(sys.argv[1]))

可以讓此文件像作為模塊導入時一樣作為腳本執行。此代碼只有在模塊作為 “main” 文件執行時才被調用

通常用來為模塊提供一個便于測試的用戶接口(將模塊作為腳本執行測試需求)

模塊的搜索路徑

導入一個叫spam的模塊時,解釋器先在當前目錄中搜索名為spam.py的文件。如果沒有找到的話,接著會到sys.path變量中給出的目錄列表中查找。sys.path變量的初始值來自如下:

輸入腳本的目錄(當前目錄)。

環境變量PYTHONPATH表示的目錄列表中搜索

(這和 shell 變量PATH具有一樣的語法,即一系列目錄名的列表)。

Python 默認安裝路徑中搜索

在支持符號連接的文件系統中,輸入的腳本所在的目錄是符號連接指向的目錄。 換句話說也就是包含符號鏈接的目錄不會被加到目錄搜索路徑

解釋器由sys.path變量指定的路徑目錄搜索模塊,該變量初始化時默認包含了輸入腳本(或者當前目錄),PYTHONPATH和安裝目錄

“編譯的” Python 文件

為了加快加載模塊的速度,Python 會在__pycache__目錄下以module.version.pyc名字緩存每個模塊編譯后的版本,這里的版本編制了編譯后文件的格式。它通常會包含 Python 的版本號

為了減少一個編譯模塊的大小,你可以在 Python 命令行中使用-O或者-OO。-O參數刪除了斷言語句,-OO參數刪除了斷言語句和 __doc__ 字符串。

因為某些程序依賴于這些變量的可用性,你應該只在確定無誤的場合使用這一選項?!皟灮摹?模塊有一個 .pyo 后綴而不是 .pyc 后綴。未來的版本可能會改變優化的效果。

來自.pyc文件或.pyo文件中的程序不會比來自.py文件的運行更快;.pyc或.pyo文件只是在它們加載的時候更快一些。

compileall模塊可以為指定目錄中的所有模塊創建.pyc文件(或者使用-O參數創建.pyo文件)。

在 PEP 3147 中有很多關這一部分內容的細節,并且包含了一個決策流程。

標準模塊

sys,這個模塊內置于所有的 Python 解釋器

變量sys.path是解釋器模塊搜索路徑的字符串列表

內置函數dir()用于按模塊名搜索模塊定義,它返回一個字符串類型的存儲列表

無參數調用時,dir()函數返回當前定義的命名

dir()不會列出內置函數和變量名。如果你想列出這些內容,它們在標準模塊builtins中定義

包通常是使用用“圓點模塊名”的結構化模塊命名空間

當導入這個包時,Python 通過sys.path搜索路徑查找包含這個包的子目錄

用戶可以每次只導入包里的特定模塊

importsound.effects.echo這樣就導入了sound.effects.echo子模塊,必需通過完整的名稱來引用

sound.effects.echo.echofilter(input,output,delay=0.7,atten=4)

導入包時有一個可以選擇的方式

fromsound.effects importecho這樣就加載了echo子模塊,并且使得它在沒有包前綴的情況下也可以使用,所以它可以如下方式調用:

echo.echofilter(input,output,delay=0.7,atten=4)

還有另一種變體用于直接導入函數或變量

fromsound.effects.echo importechofilter這樣就又一次加載了echo子模塊,但這樣就可以直接調用它的echofilter()函數:

echofilter(input,output,delay=0.7,atten=4)

需要注意的是使用frompackageimportitem方式導入包時,這個子項(item)既可以是包中的一個子模塊(或一個子包),也可以是包中定義的其它命名,像函數、類或變量

import語句首先核對是否包中有這個子項,如果沒有,它假定這是一個模塊,并嘗試加載它。如果沒有找到它,會引發一個ImportError異常

相反,使用類似importitem.subitem.subsubitem這樣的語法時,這些子項必須是包,最后的子項可以是包或模塊,但不能是前面子項中定義的類、函數或變量

從 * 導入包

給提供一個明確的包索引,

import語句按如下條件進行轉換:執行frompackageimport*時,如果包中的__init__.py代碼定義了一個名為__all__的列表,就會按照列表中給出的模塊名進行導入

__all__ = ["echo", "surround", "reverse"]這意味著fromsound.effectsimport*語句會從sound包中導入以上三個已命名的子模塊

如果沒有定義__all__,fromsound.effectsimport*語句不會從sound.effects包中導入所有的子模塊。無論包中定義多少命名,只能確定的是導入了sound.effects包(可能會運行__init__.py中的初始化代碼)以及包中定義的所有命名會隨之導入。

盡管某些模塊設計為使用import*時它只導出符合某種規范/模式的命名,仍然不建議在生產代碼中使用這種寫法

記住,fromPackageimportspecific_submodule沒有錯誤!事實上,除非導入的模塊需要使用其它包中的同名子模塊,否則這是推薦的寫法

包內引用

果包中使用了子包結構(就像示例中的sound包),可以按絕對位置從相鄰的包中引入子模塊。例如,如果sound.filters.vocoder包需要使用sound.effects包中的echo模塊,它可以fromsound.Effectsimportecho

可以用這樣的形式frommoduleimportname來寫顯式的相對位置導入。那些顯式相對導入用點號標明關聯導入當前和上級包

需要注意的是顯式或隱式相對位置導入都基于當前模塊的命名。因為主模塊的名字總是"__main__",Python 應用程序的主模塊應該總是用絕對導入

多重目錄中的包

包支持一個更為特殊的特性,__path__

在包的__init__.py文件代碼執行之前,該變量初始化一個目錄名列表。該變量可以修改,它作用于包中的子包和模塊的搜索功能

事實上函數定義既是“聲明”又是“可執行體”;執行體由函數在模塊全局語義表中的命名導入

輸入和輸出

格式化輸出

函數str()用于將值轉化為適于人閱讀的形式,而repr()轉化為供解釋器讀取的形式

str.rjust()方法,把字符串輸出到一列,并通過向左側填充空格來使其右對齊

str.zfill()它用于向數值的字符串表達左側填充 0,該函數可以正確理解正負號

print('We are the{}who say "{}!"'.format('knights', 'Ni'))

大括號和其中的字符會被替換成傳入str.format()的參數

大括號中的數值指明使用傳入str.format()方法的對象中的哪一個

如果在str.format()調用時使用關鍵字參數,可以通過參數名來引用值

print('This{food}is{adjective}.'.format(food='spam', adjective='absolutely horrible'))

'!a'(應用ascii()),'!s'(應用str())和'!r'(應用repr())可以在格式化之前轉換值

importmath

print('The value of PI is approximately {}.'.format(math.pi))print('The value of PI is approximately {!r}.'.format(math.pi))輸出

The value of PI is approximately 3.141592653589793.

The value of PI is approximately 3.141592653589793.

在字段后的':'后面加一個整數會限定該字段的最小寬度,這在美化表格時很有用

table ={'Sjoerd':4127,'Jack':4098,'Dcab':7678}forname,phone intable.items():print('{0:10} ==> {1:10d}'.format(name,phone))輸出

Sjoerd ==> 4127

Jack ==> 4098

Dcab ==> 7678

舊式的字符串格式化

操作符%也可以用于字符串格式化

print('The value of PI is approximately%5.3f.' % math.pi)

文件讀寫

函數open()返回文件對象,通常的用法需要兩個參數:open(filename,mode)

f = open('workfile', 'w')

錯誤和異常

語法錯誤

語法錯誤,也被稱作解析錯誤

異常

運行期檢測到的錯誤稱為異常,并且程序不會無條件的崩潰

異常也有不同的類型

打印錯誤信息時,異常的類型作為異常的內置名顯示

內置的異常列出了內置異常和它們的含義

異常處理

通過編程處理選擇的異常是可行的

while True:try:x =int(input("Please enter a number: "))breakexceptValueError:print("Oops! That was no valid number. Try again...")

try語句按如下方式工作。首先,執行try子句 (在try和except關鍵字之間的部分)。

如果沒有異常發生,except子句 在try語句執行完畢后就被忽略了。

如果在 try 子句執行過程中發生了異常,那么該子句其余的部分就會被忽略。

如果異常匹配于except關鍵字后面指定的異常類型,就執行對應的except子句。然后繼續執行try語句之后的代碼。

如果發生了一個異常,在except子句中沒有與之匹配的分支,它就會傳遞到上一級try語句中。

如果最終仍找不到對應的處理語句,它就成為一個未處理異常,終止程序運行,顯示提示信息。一個try語句可能包含多個 except 子句,分別指定處理不同的異常

try…except語句可以帶有一個else子句,該子句只能出現在所有 except 子句之后。當 try 語句沒有拋出異常時,需要執行一些代碼,可以使用這個子句

在異常名(列表)之后,也可以為 except 子句指定一個變量。這個變量綁定于一個異常實例,它存儲在instance.args的參數中

拋出異常

raise語句允許程序員強制拋出一個指定的異常

用戶自定義異常

在程序中可以通過創建新的異常類型來命名自己的異常

異常類通常應該直接或間接的從Exception類派生

定義清理行為

不管有沒有發生異常,finally子句在程序離開try后都一定會被執行。當try語句中發生了未被except捕獲的異常(或者它發生在except或else子句中),在finally子句執行完后它會被重新拋出。try語句經由break,continue或return語句退 出也一樣會執行finally子句

預定義清理行為

Python 的類機制通過最小的新語法和語義在語言中實現了類。

它是 C++ 或者 Modula-3 語言中類機制的混合

類的大多數重要特性都被完整的保留下來:類繼承機制允許多重繼承,派生類可以覆蓋(override)基類中的任何方法或類,可以使用相同的方法名稱調用基類的方法。對象可以包含任意數量的私有數據

Python 作用域和命名空間

命名空間是從命名到對象的映射

當前命名空間主要是通過 Python 字典實現的,不過通常不關心具體的實現方式

不同命名空間中的命名沒有任何聯系,用戶必須以模塊名為前綴來引用它們

Python 中任何一個“.”之后的命名為屬性,例如,表達式z.real中的real是對象z的一個屬性

表達式modname.funcname中,modname是一個模塊對象,funcname是它的一個屬性

模塊的屬性和模塊中的全局命名有直接的映射關系:它們共享同一命名空間

屬性可以是只讀過或寫的,可寫的屬性也可以用del語句刪除

例如:delmodname.the_answer會從modname對象中刪除the_answer屬性

不同的命名空間在不同的時刻創建,有不同的生存期

模塊的全局命名空間在模塊定義被讀入時創建,通常,模塊命名空間也會一直保存到解釋器退出

包含內置命名的命名空間在 Python 解釋器啟動時創建,會一直保留,不被刪除

由解釋器在最高層調用執行的語句,不管它是從腳本文件中讀入還是來自交互式輸入,都是__main__模塊的一部分,所以它們也擁有自己的命名空間(內置命名也同樣被包含在一個模塊中,它被稱作builtins)。

當調用函數時,就會為它創建一個局部命名空間,并且在函數返回或拋出一個并沒有在函數內部處理的異常時被刪除

作用域就是一個 Python 程序可以直接訪問命名空間的正文區域。

通常,局部作用域引用當前函數的命名

在函數之外,局部作用域與全局使用域引用同一命名空間:模塊命名空間。

類定義也是局部作用域中的另一個命名空間。

一個定義于某模塊中的函數的全局作用域是該模塊的命名空間,而不是該函數的別名被定義或調用的位置

如果沒有使用global語法,其賦值操作總是在最里層的作用域。賦值不會復制數據,只是將命名綁定到對象

特別是import語句和函數定義將模塊名或函數綁定于局部作用域(可以使用global語句將變量引入到全局作用域)。

global語句用以指明某個特定的變量為全局作用域,并重新綁定它。

nonlocal語句用以指明某個特定的變量為封閉作用域,并重新綁定它

類定義語法

類的定義就像函數定義(def語句),要先執行才能生效

classClassName:.

.

.

進入類定義部分后,會創建出一個新的命名空間,作為局部作用域,所有的賦值成為這個新命名空間的局部變量。特別是函數定義在此綁定了新的命名

類定義完成時(正常退出),就創建了一個類對象

原始的局部作用域(類定義引入之前生效的那個)得到恢復,類對象在這里綁定到類定義頭部的類名(

類對象

類對象支持兩種操作:屬性引用和實例化

屬性引用使用和 Python 中所有的屬性引用一樣的標準語法:obj.name。類對象創建后,類命名空間中所有的命名都是有效屬性名

__doc__也是一個有效的屬性,返回類的文檔字符串

類的實例化使用函數符號,只要將類對象看作是一個返回新的類實例的無參數函數即可

x =MyClass()以上創建了一個新的類實例并將該對象賦給局部變量x

很多類都傾向于將對象創建為有初始狀態的。因此類可能會定義一個名為__init__()的特殊方法

def__init__(self):self.data = []

類定義了__init__()方法的話,類的實例化操作會自動為新創建的類實例調用__init__()方法

__init__()方法可以有參數,參數通過__init__()傳遞到類的實例化操作上

classComplex:def__init__(self,realpart,imagpart):self.r =realpart

self.i =imagpart

x =Complex(3.0,-4.5)x.r,x.i

實例對象

實例對象唯一可用的操作就是屬性引用

和局部變量一樣,數據屬性不需要聲明,第一次使用時它們就會生成。

另一種為實例對象所接受的引用屬性是方法。方法是“屬于”一個對象的函數

實例對象的有效名稱依賴于它的類

按照定義,類中所有(用戶定義)的函數對象對應它的實例中的方法

方法對象

通常,方法通過右綁定方式調用,x.f()

方法的特別之處在于實例對象作為函數的第一個參數傳給了函數

通常,以n個參數的列表去調用一個方法就相當于將方法的對象插入到參數列表的最前面后,以這個列表去調用相應的函數

引用非數據屬性的實例屬性時,會搜索它的類。如果這個命名確認為一個有效的函數對象類屬性,就會將實例對象和函數對象封裝進一個抽象對象:這就是方法對象

以一個參數列表調用方法對象時,它被重新拆封,用實例對象和原始的參數列表構造一個新的參數列表,然后函數對象調用這個新的參數列表

類和實例變量

一般來說,實例變量用于對每一個實例都是唯一的數據,類變量用于類的所有實例共享的屬性和方法

一些說明

數據屬性會覆蓋同名的方法屬性

大寫方法名稱的首字母,使用一個唯一的小字符串(也許只是一個下劃線)作為數據屬性名稱的前綴,或者方法使用動詞而數據屬性使用名詞

數據屬性可以被方法引用,也可以由一個對象的普通用戶(客戶)使用

換句話說,類不能用來實現純凈的數據類型

事實上,Python 中不可能強制隱藏數據

命名約定可以避免很多麻煩

從方法內部引用數據屬性(或其他方法)并沒有快捷方式

一般,方法的第一個參數被命名為self。這僅僅是一個約定:對 Python 而言,名稱self絕對沒有任何特殊含義類屬性的任何函數對象都為那個類的實例定義了一個方法

函數定義代碼不一定非得定義在類中:也可以將一個函數對象賦值給類中的一個局部變量

方法可以像引用普通的函數那樣引用全局命名。與方法關聯的全局作用域是包含類定義的模塊。

(類本身永遠不會做為全局作用域使用

每個值都是一個對象,因此每個值都有一個 類(class) (也稱為它的 類型(type) ),它存儲為object.__class__

繼承

派生類的定義如下所示

classDerivedClassName(BaseClassName):.

.

.

命名BaseClassName(示例中的基類名)必須與派生類定義在一個作用域內。除了類,還可以用表達式,基類定義在另一個模塊中時這一點非常有用

classDerivedClassName(modname.BaseClassName):構造派生類對象時,就記住了基類

如果在類中找不到請求調用的屬性,就搜索基類。如果基類是由別的類派生而來,這個規則會遞歸的應用上去

方法引用按如下規則解析:搜索對應的類屬性,必要時沿基類鏈逐級搜索,如果找到了函數對象這個方法引用就是合法的

派生類可能會覆蓋其基類的方法。因為方法調用同一個對象中的其它方法時沒有特權,基類的方法調用同一個基類的方法時,可能實際上最終調用了派生類中的覆蓋方法

派生類中的覆蓋方法可能是想要擴充而不是簡單的替代基類中的重名方法

Python 有兩個用于繼承的函數:

函數isinstance()用于檢查實例類型:isinstance(obj,int)只有在obj.__class__是int或其它從int繼承的類型

函數issubclass()用于檢查類繼承:issubclass(bool,int)為True,因為bool是int的子類。

然而,issubclass(float,int)為False,因為float不是int的子類

多繼承

Python 同樣有限的支持多繼承形式

classDerivedClassName(Base1,Base2,Base3):.

super()可以動態的改變解析順序

為了防止重復訪問基類,通過動態的線性化算法,每個類都按從左到右的順序特別指定了順序,每個祖先類只調用一次,這是單調的(意味著一個類被繼承時不會影響它祖先的次序)

私有變量

有一個變通的訪問用于大多數 Python 代碼:以一個下劃線開頭的命名(例如_spam)會被處理為 API 的非公開部分(無論它是一個函數、方法或數據成員)。它會被視為一個實現細節,無需公開

name mangling(命名編碼)

任何形如__spam的標識(前面至少兩個下劃線,后面至多一個),被替代為_classname__spam,去掉前導下劃線的classname即當前的類名。此語法不關注標識的位置,只要求在類定義內

名稱重整是有助于子類重寫方法,而不會打破組內的方法調用

classMapping:def__init__(self,iterable):self.items_list = []self.__update(interable)defupdate(self,interable):foritem ininterable:self.items_list.append(item)__update =update

classMappingSubclass(Mapping):defupdate(self,keys,values):foritem inzip(keys,values):self.items_list.append(item)需要注意的是編碼規則設計為盡可能的避免沖突,被認作為私有的變量仍然有可能被訪問或修改

要注意的是代碼傳入exec(),eval()時不考慮所調用的類的類名,視其為當前類,這類似于global語句的效應,已經按字節編譯的部分也有同樣的限制。這也同樣作用于getattr(),setattr()和delattr(),像直接引用__dict__一樣。

補充

將一組已命名的數據項綁定在一起。一個空的類定義可以很好的實現它

classEmployee:passjohn =Employee()# Create an empty employee record# Fill the fields of the recordjohn.name ='John Doe'john.dept ='computer lab'john.salary =1000實例方法對象也有屬性:m.__self__是一個實例方法所屬的對象,而m.__func__是這個方法對應的函數對象

異常也是類

用戶自定義異常也可以是類。利用這個機制可以創建可擴展的異常體系

以下是兩種新的,有效的(語義上的)異常拋出形式,使用raise語句:

raiseClass

raiseInstance

第一種形式中,Class必須是type或其派生類的一個實例。第二種形式是以下形式的簡寫

raiseClass()

發生的異常其類型如果是except子句中列出的類,或者是其派生類,那么它們就是相符的(反過來說--發生的異常其類型如果是異常子句中列出的類的基類,它們就不相符)

classB(Exception):passclassC(B):passclassD(C):passforcls in[B,C,D]:try:raisecls()exceptD:print("D")exceptC:print("C")exceptB:print("B")

打印一個異常類的錯誤信息時,先打印類名,然后是一個空格、一個冒號,然后是用內置函數str()將類轉換得到的完整字符串

迭代器

大多數容器對象都可以用for遍歷:

迭代器的用法在 Python 中普遍而且統一

在后臺,for語句在容器對象中調用iter()。該函數返回一個定義了__next__()方法的迭代器對象,它在容器中逐一訪問元素。沒有后續的元素時,__next__()拋出一個StopIteration異常通知for語句循環結束

給自己的類添加迭代器行為

定義一個__iter__()方法,使其返回一個帶有__next__()方法的對象

如果這個類已經定義了__next__(),那么__iter__()只需要返回self:

classReverse:"""Iterator for looping over a sequence backwards."""def__init__(self,data):self.data =data

self.index =len(data)def__iter__(self):returnselfdef__next__(self):ifself.index ==0:raiseStopIterationself.index =self.index -1returnself.data[self.index]

生成器

Generator是創建迭代器的簡單而強大的工具。它們寫起來就像是正規的函數,需要返回數據的時候使用yield語句。每次next()被調用時,生成器回復它脫離的位置(它記憶語句最后一次執行的位置和所有的數據值)

defreverse(data):forindex inrange(len(data)-1,-1,-1):yielddata[index]forchar inreverse('golf'):print(char)基于類的迭代器,它能作的每一件事生成器也能作到

因為自動創建了__iter__()和__next__()方法,生成器顯得如此簡潔

另一個關鍵的功能在于兩次執行之間,局部變量和執行狀態都自動的保存下來

除了創建和保存程序狀態的自動方法,當發生器終結時,還會自動拋出StopIteration異常

生成器表達式

有一個例外。模塊對象有一個隱秘的只讀對象,名為__dict__,它返回用于實現模塊命名空間的字典,命名__dict__是一個屬性而非全局命名。顯然,使用它違反了命名空間實現的抽象原則,應該被嚴格限制于調試中。

來自

https://www.runoob.com/manual/pythontutorial3/docs/html/appetite.html

總結

以上是生活随笔為你收集整理的python语法详解大全_笔记:Python 语法要点汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产亚洲精品久久久久久 | 91麻豆精品国产自产在线游戏 | 免费观看性生活大片3 | 亚洲欧美国产精品va在线观看 | 成年人毛片在线观看 | 最近最新最好看中文视频 | 日韩中字在线观看 | 天天爱天天操 | 亚洲成人黄色 | 国产日韩精品在线观看 | 久草在线高清视频 | 天天做天天爱夜夜爽 | 色婷婷狠狠18 | 一级片免费观看 | 亚洲激情影院 | 久久久九色精品国产一区二区三区 | 免费人做人爱www的视 | 日韩视频一区二区三区在线播放免费观看 | 国产日本高清 | 国产手机视频精品 | 欧美日视频 | 日韩视频图片 | 中文字幕在线观看第二页 | 久久免费黄色 | 一级成人在线 | 亚洲欧美日韩在线一区二区 | 午夜精品久久久久久久99水蜜桃 | 亚洲成人精品久久 | 国产视频不卡 | 国产成人一区二 | 国产精品美女免费 | 成人av免费| 国产在线精品一区二区不卡了 | 日韩精品中文字幕在线不卡尤物 | 中文字幕乱视频 | 欧美一级免费黄色片 | 国产精品久久99综合免费观看尤物 | 成人激情开心网 | av网站免费线看精品 | 黄色特级片 | 69xxxx欧美 | 天天色棕合合合合合合 | 日韩性久久 | 国产在线va| 亚洲电影在线看 | 999久久久免费精品国产 | 亚洲日本韩国一区二区 | 国产亚洲精品免费 | 美女网站在线看 | 啪啪肉肉污av国网站 | 激情视频一区二区三区 | 精品在线播放视频 | 国产 一区二区三区 在线 | 中文电影网 | 黄色在线观看污 | 久久午夜电影网 | 久热av| 九九99视频 | 九九热精品在线 | 国产精品成人免费 | 精品久久久久久综合 | 首页av在线| 91九色在线观看视频 | 日韩欧美高清在线观看 | 一区二区三区在线电影 | 国产在线观看一 | 日韩精品免费在线播放 | 欧美九九九 | 久草视频中文 | 国产午夜精品一区二区三区在线观看 | 国产999精品久久久影片官网 | 亚洲综合在线五月 | 久久久精品影视 | 国产亚洲视频系列 | 久久婷亚洲五月一区天天躁 | .国产精品成人自产拍在线观看6 | 日韩3区| 亚洲美女在线国产 | 在线国产一区二区三区 | 久久激情五月丁香伊人 | 午夜美女wwww| 成人av影视在线 | 97人人澡人人添人人爽超碰 | 色开心| 国产日韩精品久久 | 国产精品久久久久久久久岛 | 亚洲另类人人澡 | 黄色毛片视频 | 久久国产精品小视频 | 四虎国产精品成人免费影视 | 天天草天天摸 | 黄色免费网站下载 | 日韩免费电影一区二区 | 国产男男gay做爰 | 5月丁香婷婷综合 | 国产首页 | 国产一区高清在线观看 | 久久不卡国产精品一区二区 | 精品国产一区二区三区四区在线观看 | 亚洲视频免费 | 中文av字幕在线观看 | 欧美另类亚洲 | 欧美午夜精品久久久久久孕妇 | 亚洲精品小视频在线观看 | 欧美人人| 国内精品久久久久影院日本资源 | 夜夜夜精品 | 天天射天天艹 | 日韩欧美在线观看一区二区 | 丝袜+亚洲+另类+欧美+变态 | 午夜精品导航 | 日韩综合视频在线观看 | 亚洲特级毛片 | 伊人狠狠色丁香婷婷综合 | 国产又粗又猛又爽又黄的视频免费 | 国产精品毛片一区二区在线 | 亚洲一区在线看 | 久久区二区 | 久久免费国产精品 | 天天色天天骑天天射 | 99久久精品久久久久久清纯 | 国产一级片不卡 | 欧美地下肉体性派对 | 亚洲一区二区三区在线看 | 中文在线免费视频 | 91在线免费看片 | 开心丁香婷婷深爱五月 | 四虎国产精品成人免费影视 | 国产美女免费观看 | 国产精品99久久久久久人免费 | 国产一区二区不卡在线 | 五月天激情综合网 | 日韩视频免费 | 91在线91| 正在播放 久久 | 国产成人精品一区二区 | av电影在线播放 | 日韩在线理论 | 亚洲精品国产精品久久99热 | 国产一级二级av | 中文字幕在线观看免费观看 | 亚州精品一二三区 | av免费在线免费观看 | 国产馆在线播放 | 人人澡av | 久草在线观看视频免费 | 天天激情天天干 | 人人爽人人爱 | 久久久网 | 激情综合色综合久久 | 亚洲黄色免费观看 | 国产午夜精品久久 | 国产中出在线观看 | 久久视频这里只有精品 | 区一区二区三区中文字幕 | 精品999国产| 一级精品视频在线观看宜春院 | 久久成人毛片 | 欧美成人黄色 | 深夜免费福利 | 免费黄色av. | 婷婷激情综合五月天 | 国产成人在线精品 | av在线一级 | 精品久久久网 | 狠狠干夜夜爱 | 色狠狠操 | 久草在线视频免赞 | 一级片视频免费观看 | 最新午夜 | 精品国产成人av | 国产精品久久久久久久久久久免费看 | 免费精品视频在线观看 | 69国产精品视频免费观看 | 久久精品亚洲精品国产欧美 | 中文字幕中文字幕在线中文字幕三区 | 国产精品一区二区免费在线观看 | 国产精品嫩草影院99网站 | 久久经典视频 | 91免费版在线| 国产精品一区二区视频 | 久久久久福利视频 | 国产不卡精品 | 丁香色婷婷 | 亚洲春色综合另类校园电影 | 国产精品2020 | 狠狠躁日日躁狂躁夜夜躁 | 天天干天天插伊人网 | 在线观看中文字幕av | 国产91全国探花系列在线播放 | 国产一卡在线 | 久久免费观看少妇a级毛片 久久久久成人免费 | 久久国语露脸国产精品电影 | 91久久久久久久一区二区 | 天天色天天草天天射 | 日韩精品一区在线播放 | 激情文学丁香 | www国产亚洲精品久久麻豆 | 国产亚洲精品久久久久久移动网络 | 精品亚洲va在线va天堂资源站 | 韩国av不卡 | 国产黄免费在线观看 | 久久精品艹 | 日韩最新理论电影 | 久久草网站 | 国产精品高清一区二区三区 | 国产一区福利 | 2019av在线视频| 欧美午夜寂寞影院 | 欧美日韩国产二区 | 96久久欧美麻豆网站 | 中文字幕在线久一本久 | 久久草网 | 精品一区 精品二区 | 美女在线免费观看视频 | 亚洲国产偷 | a v在线视频 | 精品美女国产在线 | 日韩av一区二区三区 | 一区二区三区高清不卡 | 黄色av免费电影 | av一二三区| 伊人天天| 91香蕉国产 | 奇米影视777影音先锋 | 精壮的侍卫呻吟h | 久久99精品国产91久久来源 | aaa日本高清在线播放免费观看 | 免费看网站在线 | 最近免费中文字幕大全高清10 | av成人黄色 | 啪啪肉肉污av国网站 | av在线一级 | 免费h漫在线观看 | 草久在线播放 | 9ⅰ精品久久久久久久久中文字幕 | 色在线中文字幕 | www.狠狠干 | 69国产盗摄一区二区三区五区 | 欧美亚洲精品在线观看 | 亚洲一片黄 | 久久精品最新 | 激情网在线观看 | 91女人18片女毛片60分钟 | 久久精品成人欧美大片古装 | 在线观看免费国产小视频 | 久久视频网 | 操高跟美女 | 9在线观看免费高清完整版在线观看明 | 97超碰国产精品女人人人爽 | 亚洲午夜精品久久久 | 中文字幕刺激在线 | 日日干狠狠操 | 欧美 日韩 性 | 国产精品99久久久久 | 国产人成一区二区三区影院 | av高清网站在线观看 | 国产精品 欧美 日韩 | 国产一卡久久电影永久 | 成人一级片免费看 | 久久国产精品99久久久久 | 国产综合在线观看视频 | av成人黄色| 亚洲精品在线播放视频 | www国产亚洲 | 99精品在线直播 | 色99网| 免费黄色a级毛片 | 日韩免费中文 | 久久资源在线 | 亚州精品在线视频 | 国产成人性色生活片 | 九九热有精品 | 极品国产91在线网站 | 日韩av不卡在线观看 | 国产 日韩 欧美 自拍 | 日韩视频图片 | 欧美韩日精品 | 欧美老女人xx | 国产日韩在线看 | 亚洲国产精品va在线看黑人 | 2019中文在线观看 | 97视频在线观看成人 | 天天干 夜夜操 | 国产裸体永久免费视频网站 | av激情五月| 天天干天天做天天爱 | 免费看黄的 | 国内精品一区二区 | 手机av电影在线观看 | 国产 视频 高清 免费 | 久久久精品国产一区二区电影四季 | 欧美激情另类文学 | 久久激情五月丁香伊人 | av日韩在线网站 | 超碰在线天天 | 亚洲91网站| 99精品国产在热久久下载 | 国产中文字幕免费 | 九九热精品视频在线观看 | 精品视频在线免费 | 99久久精品费精品 | 国产人成一区二区三区影院 | 亚洲综合色激情五月 | 欧美精品久久久久 | 亚洲免费av网站 | 久久精品视频在线看 | 国产无区一区二区三麻豆 | 一区二区三区观看 | 91精品国产福利 | 国内成人综合 | 日韩专区在线观看 | 视频一区在线播放 | 久久午夜电影院 | 天堂av色婷婷一区二区三区 | 日本性动态图 | 国产精品久久久久久爽爽爽 | 97在线观| 国产无遮挡又黄又爽馒头漫画 | 又黄又爽又湿又无遮挡的在线视频 | 国产手机视频精品 | 右手影院亚洲欧美 | 国产99免费视频 | 中文网丁香综合网 | 欧美性极品xxxx娇小 | 国产视频久久久 | 国产成人久久77777精品 | 成人a在线观看高清电影 | 成年人看片网站 | 国产中文字幕在线播放 | 视频一区二区精品 | 免费在线观看不卡av | 激情五月婷婷 | 久青草视频 | 婷婷丁香av| 日韩黄色免费 | 黄色a大片| 久久精品免费观看 | 久久婷婷一区二区三区 | 中文字幕中文 | 国产精品第 | 国产精品视频久久 | 国产黄免费在线观看 | 玖玖综合网 | 国产欧美三级 | 国产精品一区二区三区在线看 | 天天玩天天干天天操 | 国产黄色精品视频 | 99久久精品无免国产免费 | 国产不卡免费av | 国产精品久久久久9999 | 草久视频在线观看 | 色婷丁香 | 亚洲精品在线播放视频 | 日韩视频一区二区三区在线播放免费观看 | 激情小说网站亚洲综合网 | 免费看十八岁美女 | 亚洲高清在线视频 | 国产精品一区二区免费看 | 欧美精品网站 | 国产剧在线观看片 | 国产不卡一| 曰本免费av | 蜜臀久久99静品久久久久久 | 国产无限资源在线观看 | 日韩有码专区 | 97自拍超碰| 色狠狠综合天天综合综合 | 国产韩国日本高清视频 | 久久精品网站视频 | 日韩电影在线观看中文字幕 | 免费av网址在线观看 | 人人干网 | 亚洲精品资源在线观看 | 探花系列在线 | 日韩免费高清在线 | 美女精品在线观看 | 涩五月婷婷 | 久久综合久久综合这里只有精品 | 香蕉影视 | 久久久久女人精品毛片 | 久草网视频 | 国产黄色理论片 | 二区三区中文字幕 | 2022久久国产露脸精品国产 | 黄色三级免费网址 | 亚洲国产精彩中文乱码av | 国产专区在线播放 | 黄色高清视频在线观看 | 欧美小视频在线 | 久久激情视频 久久 | 久久婷婷一区二区三区 | 91麻豆视频 | 亚洲网久久 | 在线观看av的网站 | 午夜视频免费在线观看 | 久久久久久毛片精品免费不卡 | 91精品久久久久久综合乱菊 | 97国产精品亚洲精品 | 中文字幕一区二区三区视频 | 日韩国产欧美在线视频 | 毛片区| 在线视频18在线视频4k | 在线免费视频一区 | 成年人看片网站 | 在线中文字幕一区二区 | 久久久视频在线 | 中文字幕网站视频在线 | 日本久久久久久久久久 | 日韩影视在线观看 | 青春草国产视频 | www.夜色.com | 五月天亚洲综合 | 一区二区视频在线观看免费 | 婷婷免费视频 | 热久久免费国产视频 | 日韩免费在线观看网站 | 在线视频你懂得 | 久久精品这里精品 | 欧美 亚洲 另类 激情 另类 | 久久久久免费网 | 国产毛片久久 | 99视屏| 精品久久网 | 国内精品毛片 | 伊人色**天天综合婷婷 | 国产高清福利在线 | 成人久久精品 | 成人国产精品一区二区 | 9免费视频 | 99在线观看精品 | 亚洲一区二区精品视频 | 精品久久久99 | 四虎成人免费影院 | 久草在线精品观看 | 久久国产精品影片 | 色福利网| 久久久久久久久久久黄色 | 四虎国产视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久久免费看片 | 在线看福利av | 精品电影一区 | 国产成人三级 | 国产免费久久 | 久久综合久久八八 | 日本久久免费电影 | 中文永久字幕 | 国产成人av在线影院 | 国产一级免费电影 | 国产成人三级一区二区在线观看一 | 六月天综合网 | 国产成人精品一区二区三区福利 | 亚洲一区二区三区在线看 | 亚洲男男gaygayxxxgv| 一二三区av | 久久系列 | 亚洲高清视频在线观看 | 天天操狠狠干 | 亚洲成人av在线电影 | 韩国中文三级 | 久久久免费电影 | 手机色站 | 黄色一级动作片 | a级成人毛片| 在线国产一区 | 精品久久久久久久久久久久久久久久 | av在线在线 | 九色精品| 三上悠亚一区二区在线观看 | 午夜视频在线观看网站 | 亚洲涩涩一区 | 四虎亚洲精品 | 日韩电影在线看 | 日本黄色一级电影 | 免费高清无人区完整版 | 免费色网站 | 一区二区精品视频 | 在线观看黄色的网站 | 国产亚洲视频中文字幕视频 | 久久久久福利视频 | 99在线观看视频网站 | 九9热这里真品2 | 黄色高清视频在线观看 | 手机版av在线 | 中文字幕在线人 | 一区二区三区在线不卡 | 激情五月婷婷综合网 | 亚洲天堂免费视频 | 日日天天狠狠 | 91亚洲精品国产 | 国产精品 中文字幕 亚洲 欧美 | 97超碰人人澡人人爱学生 | 久久久久久伊人 | 国产精品完整版 | 国产日产av| 91刺激视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 免费中文字幕视频 | 亚洲欧洲在线视频 | 在线a视频 | 欧美精品久久人人躁人人爽 | 深爱开心激情 | 免费又黄又爽的视频 | 在线观看va | 福利一区二区三区四区 | 午夜精品久久久久久中宇69 | 黄色com| 国产精品每日更新 | 免费av看片 | 91片在线观看 | 在线免费观看成人 | 91最新视频在线观看 | 成年人黄色免费视频 | 91精品人成在线观看 | 97综合网 | www..com黄色片 | 日日夜夜精品免费 | 中文字幕中文中文字幕 | 99久热精品 | 亚洲视频1区2区 | 激情丁香久久 | 国产婷婷一区二区 | 黄色一级在线视频 | 日韩视频中文字幕在线观看 | 天天操人人干 | 亚洲劲爆av| 色吊丝在线永久观看最新版本 | 91探花系列在线播放 | 国产精久久久久久久 | 深夜免费小视频 | 欧美一区二区三区免费观看 | 国产在线一区二区 | 免费观看一级 | 亚洲精品久久久久999中文字幕 | 蜜桃av人人夜夜澡人人爽 | 成人禁用看黄a在线 | 五月婷婷色| 91丨九色丨高潮丰满 | 91日韩精品视频 | 激情五月在线 | 国产最新视频在线 | 国产v视频 | 国产视频精品免费播放 | 久久精品电影院 | 国产精品免费视频网站 | aaa黄色毛片| 91影视成人 | 国产短视频在线播放 | 国产亚洲人 | 五月花婷婷 | 色多多污污 | 超碰97在线资源站 | 国产精品h在线观看 | 超碰97免费在线 | 国产一区在线免费 | 91视频免费 | 在线成人短视频 | av网站在线免费观看 | 久久人人爽 | av在线永久免费观看 | 国产一级精品在线观看 | 久久99国产精品久久99 | www.天天射 | 99产精品成人啪免费网站 | 黄色特一级 | av在线精品 | 国内精品久久久久影院一蜜桃 | 丁香亚洲 | 日本一区二区三区免费看 | 婷婷精品国产欧美精品亚洲人人爽 | 日本爽妇网 | 日韩精品亚洲专区在线观看 | 婷婷丁香综合 | 亚洲精品9 | www,黄视频 | 91在线看| 97人人添人澡人人爽超碰动图 | 亚洲国产精品久久久久久 | 成人免费ⅴa | 在线观看的av | 丁香五月缴情综合网 | 97超碰免费在线观看 | 国产精品不卡在线播放 | 中文字幕乱码电影 | 日韩a级黄色 | 99视频这里只有 | 欧美日韩在线观看一区 | 最近最新中文字幕视频 | 视频在线在亚洲 | 日韩免费大片 | 亚洲精品美女视频 | 毛片99 | 久久久久久免费毛片精品 | 国产123av | 99久久精品免费看国产麻豆 | 美女黄频免费 | 国产999精品久久久久久绿帽 | 久久免费精品 | 中文字幕视频播放 | 欧美福利网址 | 欧美xxxxx在线视频 | 国产中文字幕久久 | 在线视频久 | 国产精品乱码久久久 | 热久久99这里有精品 | 久久1电影院 | 懂色av一区二区三区蜜臀 | 免费情缘 | 天天综合视频在线观看 | 黄色片软件网站 | 中文字幕亚洲高清 | japanese黑人亚洲人4k | 国产在线美女 | 久久久久亚洲最大xxxx | 国产精品久久三 | 91免费看黄 | 久久视频在线免费观看 | 黄色精品免费 | 国产一级三级 | av一级二级| 2023年中文无字幕文字 | 亚洲2019精品 | 超级碰碰免费视频 | 综合网婷婷 | 日韩精品一区不卡 | 亚洲清纯国产 | 国产99久久九九精品免费 | 国产亚洲欧美日韩高清 | 成人一区不卡 | 久久久精品一区二区 | 五月婷婷色综合 | 国产一级片免费视频 | 国产成人精品a | 国色天香永久免费 | 国内外成人在线 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 成人网页在线免费观看 | 最新国产精品拍自在线播放 | 911香蕉 | 午夜色性片 | 欧美视频国产视频 | 欧美aa在线 | 国产福利91精品张津瑜 | 国产成人精品一区二区三区网站观看 | 免费看黄的视频 | 91丨九色丨国产在线观看 | 婷婷深爱网 | 丁香av| 亚洲天堂网在线观看视频 | 国模视频一区二区三区 | 狠狠色丁香婷婷综合视频 | 免费看污的网站 | 在线观看黄色免费视频 | 亚洲国内精品视频 | 亚洲丁香久久久 | 国产精品久久久久久麻豆一区 | av免费观看在线 | 精品久久99| 欧美日本国产在线观看 | 国产一区二区精品 | 亚洲精品久久久久久中文传媒 | 亚洲乱码一区 | 国产在线播放不卡 | 射九九| 日韩一区二区三区免费视频 | 色婷婷激情电影 | 精油按摩av| 超碰在线9 | 日韩高清黄色 | 最新中文字幕在线播放 | 亚洲午夜精品久久久久久久久久久久 | 日本亚洲国产 | 丁香电影小说免费视频观看 | 亚洲精品456在线播放 | 91最新视频| 天天视频色版 | 色综合久久88色综合天天人守婷 | 国产成人黄色片 | 日本精品在线 | 欧美日韩高清在线观看 | 91福利免费 | 成人动漫一区二区三区 | 999电影免费在线观看 | 国产精品自在欧美一区 | 五月天综合| 国产三级国产精品国产专区50 | 久久精品一二三区白丝高潮 | 黄色的视频网站 | 日韩欧美在线观看一区二区 | 西西44人体做爰大胆视频 | av网站播放 | 久草网站在线观看 | 天天天天天天干 | 欧美激情综合五月色丁香小说 | 日日操夜夜操狠狠操 | 亚洲黄色网络 | 国内精品视频久久 | 黄色视屏在线免费观看 | 成人免费看片网址 | 在线免费观看黄色av | 国产精品99久久久久久宅男 | 国产午夜精品福利视频 | 蜜臀久久99精品久久久无需会员 | 日本精品久久久久久 | 久久久久久美女 | 久久久久久久久久亚洲精品 | 免费观看的黄色 | 国产精品美女999 | 成人免费电影 | 婷婷久久国产 | 日韩二区在线观看 | 人人爱人人做人人爽 | a视频在线看 | 亚洲三级在线 | 欧美精品一区在线发布 | 精品国产乱码久久久久久1区2匹 | 一区二区三区电影大全 | 国产黄色高清 | 免费看黄色小说的网站 | 一本色道久久综合亚洲二区三区 | 欧美日韩18| 中文字幕日韩伦理 | 国产精品免费看久久久8精臀av | 久久免费视频观看 | 成人免费在线视频 | 中文字幕亚洲精品在线观看 | 最新不卡av| av资源在线看 | 99精品黄色片免费大全 | 国产 日韩 中文字幕 | 久久亚洲福利 | 成人免费在线电影 | 天天干天天操 | 国产免费久久久久 | 九九在线播放 | 国产精品久久久久久妇 | 91久久国产自产拍夜夜嗨 | 成人欧美亚洲 | 久久1区| 亚洲日b视频 | 少妇精品久久久一区二区免费 | 精品xxx| 日韩最新理论电影 | 成人午夜av电影 | 91精品爽啪蜜夜国产在线播放 | 久久综合九色综合久久久精品综合 | 国产欧美精品一区二区三区 | 综合在线亚洲 | 久久黄色美女 | 伊人亚洲综合 | 一区二区不卡高清 | 美女免费视频一区 | 丁香六月av| 国产精品久久艹 | 久久久久 免费视频 | 福利片免费看 | 天天操天天能 | 69精品| 人人添人人澡人人澡人人人爽 | 天天干天天色2020 | 日韩免费观看一区二区三区 | 亚洲国产精品一区二区尤物区 | 日韩中文字幕电影 | 草莓视频在线观看免费观看 | 91精品无人成人www | 午夜精品久久久久久久99无限制 | 天天躁天天狠天天透 | 日本中文在线播放 | 蜜臀91丨九色丨蝌蚪老版 | 国内外成人在线视频 | 日韩av在线看 | 国产精品日韩欧美 | 亚洲激情在线观看 | 99视频这里有精品 | 国产在线播放一区二区 | 国产中文字幕在线看 | 久久一区二区三区超碰国产精品 | 国产小视频网站 | 日本公妇色中文字幕 | 国产在线观看地址 | 免费a一级 | 亚洲综合色视频在线观看 | 在线91av| 免费观看性生交大片3 | 国产视频网站在线观看 | 免费视频二区 | 国产成人精品不卡 | 日韩高清一区二区 | 久久精品黄色 | 亚洲日韩中文字幕在线播放 | 国产一区视频在线 | 国产亚洲va综合人人澡精品 | 国产99久久精品一区二区300 | 久久久久国产一区二区三区四区 | 成人综合免费 | 色九九影院 | 波多野结衣电影一区 | 日韩在线网址 | 91精品福利在线 | 久久久久久国产精品亚洲78 | 九色最新网址 | 国产精品aⅴ | 香蕉久久国产 | 91传媒在线 | 久久国产福利 | 最新国产精品亚洲 | 亚洲一区欧美精品 | 国产不卡一区二区视频 | 狠狠色狠狠色综合日日92 | 国产中文字幕在线观看 | 国产999 | 日韩欧美在线视频一区二区 | 久久精品美女视频网站 | 欧美日韩破处 | 午夜999| 欧美精品999| 国产一区二区精品 | 欧美伦理一区二区 | 色婷婷久久一区二区 | 国产成年人av| 丁香激情综合久久伊人久久 | 十八岁以下禁止观看的1000个网站 | 伊人久久在线观看 | 玖玖视频免费在线 | 欧美在线视频一区二区 | 成人黄色大片在线免费观看 | 国产精品久久久久久久免费观看 | av理论电影| 国产亚洲人 | 国产午夜在线观看视频 | 国产精品久久网 | 日韩com | 91激情| 国产视频二区三区 | 黄色免费网 | 国产一区二区在线影院 | 欧美日韩国内在线 | 在线а√天堂中文官网 | 色视频 在线| 久久精品老司机 | 欧美在线一 | 国产精品一区二区久久久 | 久久久国产精品一区二区三区 | 在线视频1卡二卡三卡 | 91视频在线观看大全 | 亚洲午夜精品一区二区三区电影院 | 久草在线一免费新视频 | www.久久com | 亚洲婷婷在线 | 丁香久久五月 | 一级a毛片高清视频 | 成人在线视频免费看 | 91精品夜夜 | 夜夜爽www | 国产精品a级 | 福利一区二区三区四区 | 国产精品九九九九九 | 欧美一区二区三区激情视频 | 国产精品高清在线观看 | 国产一区二区久久久久 | 中文字幕成人一区 | 在线观看你懂的网站 | 日韩av影片在线观看 | 亚洲人成网站精品片在线观看 | 色综合久久久久综合体桃花网 | 2021国产精品视频 | 精品亚洲视频在线观看 | 在线观看黄色av | 久久99最新地址 | 婷婷 综合 色 | 久久99视频 | 97综合在线 | 中文字幕在线视频国产 | 日批网站免费观看 | 欧美a级在线播放 | 香蕉免费 | 欧美aa级 | 日韩成人高清在线 | 午夜精品成人一区二区三区 | www久久国产 | 日韩免费在线 | 久久99国产精品免费 | 婷婷激情站 | 日本中文字幕在线播放 | 天天色宗合 | 狠狠艹夜夜干 | 国产精品99精品久久免费 | 91超级碰| 国产精品福利午夜在线观看 | 国产午夜在线观看 | 久久免费国产视频 | 在线日韩精品视频 | 波多野结衣视频一区 | 91香蕉视频720p | 久草在线国产 | 欧美五月婷婷 | 亚洲va欧美 | 国产精品一区二区无线 | 五月天激情电影 | 精品国产亚洲日本 | 日日夜夜精品 | 色婷婷综合五月 | 成人亚洲网| 色婷婷在线播放 | 麻豆观看| 肉色欧美久久久久久久免费看 | 97超碰国产精品女人人人爽 | 成人97视频一区二区 | 午夜 久久 tv | 女人18精品一区二区三区 | 黄色的视频网站 | 91在线成人| 亚洲国产视频直播 | 99精品视频在线观看 | 国产精品1024 | 日韩黄色av网站 | 91精品婷婷国产综合久久蝌蚪 | 一级性av | 国产.精品.日韩.另类.中文.在线.播放 | 精品国产一区二区三区不卡 | 天堂在线视频免费观看 | 免费在线观看国产黄 | h网站免费在线观看 | 最新av电影网址 | 91网站在线视频 | 国产福利一区二区三区视频 | 青青看片| 亚洲 综合 国产 精品 | av片子在线观看 | 人人澡超碰碰 | 国色天香在线 | 欧美亚洲另类在线视频 | 黄色国产区 | av免费电影在线 | av在线播放亚洲 | 亚洲精品久久久久久中文传媒 | 精品欧美乱码久久久久久 | av免费高清观看 | av韩国在线 | h视频在线看 | 色丁香综合 | 国产成人久久精品亚洲 | 国产精品久久久久久妇 | 日本午夜免费福利视频 | 黄色精品在线看 | 五月婷婷一级片 | 婷婷色六月天 | 欧美精品第一 | 久久精品99国产国产精 | 99热在 | 日韩字幕在线观看 | 国产精品第一页在线观看 | 亚洲精品在线观看中文字幕 | 最近中文字幕大全中文字幕免费 | 国产高清在线 | 国产一区二区高清 | 中文字幕人成乱码在线观看 | 91精品在线播放 | 一区二区三区中文字幕在线 | 久久这里只有精品1 | 日韩激情在线视频 | 狠狠干电影 | 中文区中文字幕免费看 | japanesefreesexvideo高潮| 麻豆传媒视频在线免费观看 | 日韩免费视频线观看 | 久99久在线 | 国产伦理久久精品久久久久_ | 不卡视频在线 | 九色精品免费永久在线 | 亚洲精品美女久久久久网站 | 91成人免费在线视频 | 国产午夜精品av一区二区 | 在线视频一二区 | 国产不卡在线看 | 色视频成人在线观看免 | 国产色妞影院wwwxxx | 久久午夜剧场 | 欧美在一区 | 粉嫩一区二区三区粉嫩91 | 成人黄色资源 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 久久久久国产一区二区三区四区 | 久久综合加勒比 | 国产欧美在线一区 | 国产麻豆传媒 | 国产a网站 | 在线亚洲激情 | 久久精品网站视频 | 中文av影院 | 99成人精品 | www国产亚洲精品久久网站 | 在线观看中文字幕一区 | 国产色婷婷在线 | 九色最新网址 | 成人av一区二区兰花在线播放 | 亚洲自拍偷拍色图 |