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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python20-Day05

發(fā)布時間:2023/11/27 生活经验 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python20-Day05 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、模塊與包

  1、模塊

  什么是模塊?

  在python中,模塊可以分為四個通用類別:

    1. 使用python編寫的.py文件

    2. 已經(jīng)被編譯為共享庫或DLL的c或者c++擴(kuò)展

    3. 把一系列模塊組織到一起的文件夾(注:文件夾下面有一個__init__.py文件,該文件夾稱為包)

    4. 使用c編寫并鏈接到python解釋器的內(nèi)置模塊!

?  為什么要使用模塊?

  1、從文件級別組織程序,更方便管理

  2、拿來主義,提升開發(fā)效率

  以spam.py為例,來介紹模塊的使用:文件名為spam.py? 模塊名:spam

#spam.py
print('from the spam.py')money=1000def read1():print('spam模塊:',money)def read2():print('spam模塊')read1()def change():global moneymoney=0

  2、使用模塊之import

  import的使用

  模塊可以包含可執(zhí)行的語句和函數(shù)的定義,為了初始化模塊,只在模塊名第一次遇到導(dǎo)入import語句時才執(zhí)行。import語句是可以在程序中的任意位置使用的,且針對同一個模塊可以import多次,為了防止重復(fù)導(dǎo)入,優(yōu)化手段是:第一次導(dǎo)入就將模塊名加載到內(nèi)存中了,后續(xù)的import語句只是對已經(jīng)加載到內(nèi)存中的模塊對象增加了一次引用,不會重復(fù)執(zhí)行模塊內(nèi)的語句。

#test.py
import spam #只在第一次導(dǎo)入時才執(zhí)行spam.py內(nèi)代碼,此處的顯式效果是只打印一次'from the spam.py',當(dāng)然其他的頂級代碼也都被執(zhí)行了,只不過沒有顯示效果.
import spam
import spam
import spam'''
執(zhí)行結(jié)果:
from the spam.py
'''

?

注:可以從sys.module中找到當(dāng)前已經(jīng)加載的模塊,sys.module是一個字典,內(nèi)部包含模塊名與模塊對象的映射,該字典決定了導(dǎo)入模塊時是否需要重新導(dǎo)入。?

  在第一次導(dǎo)入模塊時,會做三件事,重復(fù)導(dǎo)入會直接引用內(nèi)存中已經(jīng)加載好的結(jié)果

    1、 為源文件(spam模塊)創(chuàng)建新的名稱空間,在spam中定義的函數(shù)和方法若是使用到了global時訪問的就是這個名稱空間。

    2、在新創(chuàng)建的命名空間中執(zhí)行模塊中包含的代碼,見初始導(dǎo)入import spam;函數(shù)定義也是被執(zhí)行的語句,模塊級別函數(shù)定義的執(zhí)行將函數(shù)名放入模塊全局名稱空間,用globals()可以查看。

    3、創(chuàng)建名字spam來引用改命名空間。

  被導(dǎo)入的名稱有獨(dú)立的名稱空間

    每個模塊都是一個獨(dú)立的名稱空間,定義在這個模塊中的函數(shù),把這個模塊的名稱空間當(dāng)做全局名稱空間,這樣在編寫自己的模塊時,就不用擔(dān)心定義在自己模塊中的全局變量會在被導(dǎo)入時,與使用者的全局變量沖突。

  為模塊起別名:

    import spam as sm

  在一行中導(dǎo)入多個模塊

    from spam import read1,read2

  3、使用模塊之from ... import ...

  4、模塊搜索路徑

#模塊的查找順序
1、在第一次導(dǎo)入某個模塊時(比如spam),會先檢查該模塊是否已經(jīng)被加載到內(nèi)存中(當(dāng)前執(zhí)行文件的名稱空間對應(yīng)的內(nèi)存),如果有則直接引用ps:python解釋器在啟動時會自動加載一些模塊到內(nèi)存中,可以使用sys.modules查看
2、如果沒有,解釋器則會查找同名的內(nèi)建模塊
3、如果還沒有找到就從sys.path給出的目錄列表中依次尋找spam.py文件。#sys.path的初始化的值來自于:
The directory containing the input script (or the current directory when no file is specified).
PYTHONPATH (a list of directory names, with the same syntax as the shell variable PATH).
The installation-dependent default.#需要特別注意的是:我們自定義的模塊名不應(yīng)該與系統(tǒng)內(nèi)置模塊重名。雖然每次都說,但是仍然會有人不停的犯錯。 #在初始化后,python程序可以修改sys.path,路徑放到前面的優(yōu)先于標(biāo)準(zhǔn)庫被加載。
>>> import sys
>>> sys.path.append('/a/b/c/d')
>>> sys.path.insert(0,'/x/y/z') #排在前的目錄,優(yōu)先被搜索
注意:搜索時按照sys.path中從左到右的順序查找,位于前的優(yōu)先被查找,sys.path中還可能包含.zip歸檔文件和.egg文件,python會把.zip歸檔文件當(dāng)成一個目錄去處理,#首先制作歸檔文件:zip module.zip foo.py bar.py 
import sys
sys.path.append('module.zip')
import foo,bar#也可以使用zip中目錄結(jié)構(gòu)的具體位置
sys.path.append('module.zip/lib/python')#windows下的路徑不加r開頭,會語法錯誤
sys.path.insert(0,r'C:\Users\Administrator\PycharmProjects\a')#至于.egg文件是由setuptools創(chuàng)建的包,這是按照第三方python庫和擴(kuò)展時使用的一種常見格式,.egg文件實(shí)際上只是添加了額外元數(shù)據(jù)(如版本號,依賴項(xiàng)等)的.zip文件。#需要強(qiáng)調(diào)的一點(diǎn)是:只能從.zip文件中導(dǎo)入.py,.pyc等文件。使用C編寫的共享庫和擴(kuò)展塊無法直接從.zip文件中加載(此時setuptools等打包系統(tǒng)有時能提供一種規(guī)避方法),且從.zip中加載文件不會創(chuàng)建.pyc或者.pyo文件,因此一定要事先創(chuàng)建他們,來避免加載模塊是性能下降。

?

?  5、包介紹

    什么是包?  

  1. 在python3中,即使包下沒有__init__.py文件,import 包仍然不會報錯,而在python2中,包下一定要有該文件,否則import 包報錯2. 創(chuàng)建包的目的不是為了運(yùn)行,而是被導(dǎo)入使用,記住,包只是模塊的一種形式而已,包的本質(zhì)就是一種模塊

    為什么要使用包?

包的本質(zhì)就是一個文件夾,那么文件夾唯一的功能就是將文件組織起來
隨著功能越寫越多,我們無法將所以功能都放到一個文件中,于是我們使用模塊去組織功能,而隨著模塊越來越多,我們就需要用文件夾將模塊文件組織起來,以此來提高程序的結(jié)構(gòu)性和可維護(hù)性

?

?

6、 包的使用
1、示范文件

?

glance/ #Top-level package

├── __init__.py #Initialize the glance package

├── api #Subpackage for api

│ ├── __init__.py│ ├── policy.py│ └── versions.py├── cmd #Subpackage for cmd

│ ├── __init__.py│ └── manage.py└── db #Subpackage for db

├── __init__.py└── models.py

?

#文件內(nèi)容#policy.py
def get():
print('from policy.py')#versions.py
def create_resource(conf):
print('from version.py: ',conf)#manage.py
def main():
print('from manage.py')#models.py
def register_models(engine):
print('from models.py: ',engine)

?

執(zhí)行文件與示范文件在同級目錄下

2、包的使用之import

1 import glance.db.models
2 glance.db.models.register_models('mysql') 
單獨(dú)導(dǎo)入包名稱時不會導(dǎo)入包中所有包含的所有子模塊,如#在與glance同級的test.py中
import glance
glance.cmd.manage.main()'''
執(zhí)行結(jié)果:
AttributeError: module 'glance' has no attribute 'cmd''''

?

解決方法:

1 #glance/__init__.py
2 from . import cmd
3 
4 #glance/cmd/__init__.py
5 from . import manage
執(zhí)行:1 #在于glance同級的test.py中
2 import glance
3 glance.cmd.manage.main()
3、包的使用之from ... import ..

?

需要注意的是from后import導(dǎo)入的模塊,必須是明確的一個不能帶點(diǎn),否則會有語法錯誤,如:from a import b.c是錯誤語法

1 from glance.db import models
2 models.register_models('mysql')
3 
4 from glance.db.models import register_models
5 register_models('mysql')
4、from glance.api import *

?

在講模塊時,我們已經(jīng)討論過了從一個模塊內(nèi)導(dǎo)入所有*,此處我們研究從一個包導(dǎo)入所有*。

此處是想從包api中導(dǎo)入所有,實(shí)際上該語句只會導(dǎo)入包api下__init__.py文件中定義的名字,我們可以在這個文件中定義__all___:

?

1 #在__init__.py中定義
2 x=10
3 
4 def func():
5 print('from api.__init.py')
6 
7 __all__=['x','func','policy']

?

此時我們在于glance同級的文件中執(zhí)行from glance.api import *就導(dǎo)入__all__中的內(nèi)容(versions仍然不能導(dǎo)入)。

#執(zhí)行文件中的使用效果如下,請?zhí)幚砗冒膶?dǎo)入
from glance import *get()
create_resource('a.conf')
main()
register_models('mysql')

?

5、絕對導(dǎo)入和相對導(dǎo)入

我們的最頂級包glance是寫給別人用的,然后在glance包內(nèi)部也會有彼此之間互相導(dǎo)入的需求,這時候就有絕對導(dǎo)入和相對導(dǎo)入兩種方式:

絕對導(dǎo)入:以glance作為起始

相對導(dǎo)入:用.或者..的方式最為起始(只能在一個包中使用,不能用于不同目錄內(nèi))

例如:我們在glance/api/version.py中想要導(dǎo)入glance/cmd/manage.py

?

1 在glance/api/version.py
2 
3 #絕對導(dǎo)入
4 from glance.cmd import manage
5 manage.main()
6 
7 #相對導(dǎo)入
8 from ..cmd import manage
9 manage.main()

?

測試結(jié)果:注意一定要在于glance同級的文件中測試

1 from glance.api import versions
6、包以及包所包含的模塊都是用來被導(dǎo)入的,而不是被直接執(zhí)行的。而環(huán)境變量都是以執(zhí)行文件為準(zhǔn)的

比如我們想在glance/api/versions.py中導(dǎo)入glance/api/policy.py,有的同學(xué)一抽這倆模塊是在同一個目錄下,十分開心的就去做了,它直接這么做

1 #在version.py中
2 
3 import policy
4 policy.get()

沒錯,我們單獨(dú)運(yùn)行version.py是一點(diǎn)問題沒有的,運(yùn)行version.py的路徑搜索就是從當(dāng)前路徑開始的,于是在導(dǎo)入policy時能在當(dāng)前目錄下找到

但是你想啊,你子包中的模塊version.py極有可能是被一個glance包同一級別的其他文件導(dǎo)入,比如我們在于glance同級下的一個test.py文件中導(dǎo)入version.py,如下

?

1 from glance.api import versions
2 
3 '''
4 執(zhí)行結(jié)果:
5 ImportError: No module named 'policy'
6 '''
7 
8 '''
9 分析:
10 此時我們導(dǎo)入versions在versions.py中執(zhí)行
11 import policy需要找從sys.path也就是從當(dāng)前目錄找policy.py,
12 這必然是找不到的
13 '''

?

二、常用模塊

logging模塊

  日志級別

CRITICAL = 50 #FATAL = CRITICAL
ERROR = 40
WARNING = 30 #WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0 #不設(shè)置

  默認(rèn)級別為warning,默認(rèn)打印到終端

import logginglogging.debug('調(diào)試debug')
logging.info('消息info')
logging.warning('警告warn')
logging.error('錯誤error')
logging.critical('嚴(yán)重critical')'''
WARNING:root:警告warn
ERROR:root:錯誤error
CRITICAL:root:嚴(yán)重critical
'''

  為logging模塊指定全局配置,針對所有l(wèi)ogger有效,控制打印到文件中

  

復(fù)制代碼
可在logging.basicConfig()函數(shù)中通過具體參數(shù)來更改logging模塊默認(rèn)行為,可用參數(shù)有
filename:用指定的文件名創(chuàng)建FiledHandler(后邊會具體講解handler的概念),這樣日志會被存儲在指定的文件中。
filemode:文件打開方式,在指定了filename時使用這個參數(shù),默認(rèn)值為“a”還可指定為“w”。
format:指定handler使用的日志顯示格式。 
datefmt:指定日期時間格式。 
level:設(shè)置rootlogger(后邊會講解具體概念)的日志級別 
stream:用指定的stream創(chuàng)建StreamHandler。可以指定輸出到sys.stderr,sys.stdout或者文件,默認(rèn)為sys.stderr。若同時列出了filename和stream兩個參數(shù),則stream參數(shù)會被忽略。#格式
%(name)s:Logger的名字,并非用戶名,詳細(xì)查看%(levelno)s:數(shù)字形式的日志級別%(levelname)s:文本形式的日志級別%(pathname)s:調(diào)用日志輸出函數(shù)的模塊的完整路徑名,可能沒有%(filename)s:調(diào)用日志輸出函數(shù)的模塊的文件名%(module)s:調(diào)用日志輸出函數(shù)的模塊名%(funcName)s:調(diào)用日志輸出函數(shù)的函數(shù)名%(lineno)d:調(diào)用日志輸出函數(shù)的語句所在的代碼行%(created)f:當(dāng)前時間,用UNIX標(biāo)準(zhǔn)的表示時間的浮 點(diǎn)數(shù)表示%(relativeCreated)d:輸出日志信息時的,自Logger創(chuàng)建以 來的毫秒數(shù)%(asctime)s:字符串形式的當(dāng)前時間。默認(rèn)格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒%(thread)d:線程ID。可能沒有%(threadName)s:線程名。可能沒有%(process)d:進(jìn)程ID。可能沒有%(message)s:用戶輸出的消息

?

#======介紹
可在logging.basicConfig()函數(shù)中可通過具體參數(shù)來更改logging模塊默認(rèn)行為,可用參數(shù)有
filename:用指定的文件名創(chuàng)建FiledHandler(后邊會具體講解handler的概念),這樣日志會被存儲在指定的文件中。
filemode:文件打開方式,在指定了filename時使用這個參數(shù),默認(rèn)值為“a”還可指定為“w”。
format:指定handler使用的日志顯示格式。
datefmt:指定日期時間格式。
level:設(shè)置rootlogger(后邊會講解具體概念)的日志級別
stream:用指定的stream創(chuàng)建StreamHandler。可以指定輸出到sys.stderr,sys.stdout或者文件,默認(rèn)為sys.stderr。若同時列出了filename和stream兩個參數(shù),則stream參數(shù)會被忽略。format參數(shù)中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 數(shù)字形式的日志級別
%(levelname)s 文本形式的日志級別
%(pathname)s 調(diào)用日志輸出函數(shù)的模塊的完整路徑名,可能沒有
%(filename)s 調(diào)用日志輸出函數(shù)的模塊的文件名
%(module)s 調(diào)用日志輸出函數(shù)的模塊名
%(funcName)s 調(diào)用日志輸出函數(shù)的函數(shù)名
%(lineno)d 調(diào)用日志輸出函數(shù)的語句所在的代碼行
%(created)f 當(dāng)前時間,用UNIX標(biāo)準(zhǔn)的表示時間的浮 點(diǎn)數(shù)表示
%(relativeCreated)d 輸出日志信息時的,自Logger創(chuàng)建以 來的毫秒數(shù)
%(asctime)s 字符串形式的當(dāng)前時間。默認(rèn)格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒
%(thread)d 線程ID。可能沒有
%(threadName)s 線程名。可能沒有
%(process)d 進(jìn)程ID。可能沒有
%(message)s用戶輸出的消息#========使用
import logging
logging.basicConfig(filename='access.log',format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',level=10)logging.debug('調(diào)試debug')
logging.info('消息info')
logging.warning('警告warn')
logging.error('錯誤error')
logging.critical('嚴(yán)重critical')#========結(jié)果
access.log內(nèi)容:
2017-07-28 20:32:17 PM - root - DEBUG -test:  調(diào)試debug
2017-07-28 20:32:17 PM - root - INFO -test:  消息info
2017-07-28 20:32:17 PM - root - WARNING -test:  警告warn
2017-07-28 20:32:17 PM - root - ERROR -test:  錯誤error
2017-07-28 20:32:17 PM - root - CRITICAL -test:  嚴(yán)重criticalpart2: 可以為logging模塊指定模塊級的配置,即所有l(wèi)ogger的配置

?

  4、logging模塊的Formatter,Handler,Logger,Filter對象

#logger:產(chǎn)生日志的對象#Filter:過濾日志的對象#Handler:接收日志然后控制打印到不同的地方,FileHandler用來打印到文件中,StreamHandler用來打印到終端#Formatter對象:可以定制不同的日志格式對象,然后綁定給不同的Handler對象使用,以此來控制不同的Handler的日志格式

?

'''
critical=50
error =40
warning =30
info = 20
debug =10
'''import logging#1、logger對象:負(fù)責(zé)產(chǎn)生日志,然后交給Filter過濾,然后交給不同的Handler輸出
logger=logging.getLogger(__file__)#2、Filter對象:不常用,略#3、Handler對象:接收logger傳來的日志,然后控制輸出
h1=logging.FileHandler('t1.log') #打印到文件
h2=logging.FileHandler('t2.log') #打印到文件
h3=logging.StreamHandler() #打印到終端#4、Formatter對象:日志格式
formmater1=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',)formmater2=logging.Formatter('%(asctime)s :  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',)formmater3=logging.Formatter('%(name)s %(message)s',)#5、為Handler對象綁定格式
h1.setFormatter(formmater1)
h2.setFormatter(formmater2)
h3.setFormatter(formmater3)#6、將Handler添加給logger并設(shè)置日志級別
logger.addHandler(h1)
logger.addHandler(h2)
logger.addHandler(h3)
logger.setLevel(10)#7、測試
logger.debug('debug')
logger.info('info')
logger.warning('warning')
logger.error('error')
logger.critical('critical')

?

5、Logger與Handler的級別

  logger是第一級過濾,然后才能到handler,可以設(shè)置level

  

Logger is also the first to filter the message based on a level — if you set the logger to INFO, and all handlers to DEBUG, you still won't receive DEBUG messages on handlers — they'll be rejected by the logger itself. If you set logger to DEBUG, but all handlers to INFO, you won't receive any DEBUG messages either — because while the logger says "ok, process this", the handlers reject it (DEBUG < INFO).#驗(yàn)證
import loggingform=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',)ch=logging.StreamHandler()ch.setFormatter(form)
# ch.setLevel(10)
ch.setLevel(20)l1=logging.getLogger('root')
# l1.setLevel(20)
l1.setLevel(10)
l1.addHandler(ch)l1.debug('l1 debug')

?

7.應(yīng)用

  

"""
logging配置
"""import os
import logging.config# 定義三種日志輸出格式 開始

standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \'[%(levelname)s][%(message)s]' #其中name為getlogger指定的名字

simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'# 定義日志輸出格式 結(jié)束

logfile_dir = os.path.dirname(os.path.abspath(__file__))  # log文件的目錄

logfile_name = 'all2.log'  # log文件名# 如果不存在定義的日志目錄就創(chuàng)建一個
if not os.path.isdir(logfile_dir):os.mkdir(logfile_dir)# log文件的全路徑
logfile_path = os.path.join(logfile_dir, logfile_name)# log配置字典
LOGGING_DIC = {'version': 1,'disable_existing_loggers': False,'formatters': {'standard': {'format': standard_format},'simple': {'format': simple_format},},'filters': {},'handlers': {#打印到終端的日志'console': {'level': 'DEBUG','class': 'logging.StreamHandler',  # 打印到屏幕'formatter': 'simple'},#打印到文件的日志,收集info及以上的日志'default': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件'formatter': 'standard','filename': logfile_path,  # 日志文件'maxBytes': 1024*1024*5,  # 日志大小 5M'backupCount': 5,'encoding': 'utf-8',  # 日志文件的編碼,再也不用擔(dān)心中文log亂碼了
        },},'loggers': {#logging.getLogger(__name__)拿到的logger配置'': {'handlers': ['default', 'console'],  # 這里把上面定義的兩個handler都加上,即log數(shù)據(jù)既寫入文件又打印到屏幕'level': 'DEBUG','propagate': True,  # 向上(更高level的logger)傳遞
        },},
}def load_my_logging_cfg():logging.config.dictConfig(LOGGING_DIC)  # 導(dǎo)入上面定義的logging配置logger = logging.getLogger(__name__)  # 生成一個log實(shí)例logger.info('It works!')  # 記錄該文件的運(yùn)行狀態(tài)if __name__ == '__main__':load_my_logging_cfg()
"""
MyLogging Test
"""import time
import logging
import my_logging  # 導(dǎo)入自定義的logging配置

logger = logging.getLogger(__name__)  # 生成logger實(shí)例def demo():logger.debug("start range... time:{}".format(time.time()))logger.info("中文測試開始。。。")for i in range(10):logger.debug("i:{}".format(i))time.sleep(0.2)else:logger.debug("over range... time:{}".format(time.time()))logger.info("中文測試結(jié)束。。。")if __name__ == "__main__":my_logging.load_my_logging_cfg()  # 在你程序文件的入口加載自定義logging配置demo()

?

#1、有了上述方式我們的好處是:所有與logging模塊有關(guān)的配置都寫到字典中就可以了,更加清晰,方便管理#2、我們需要解決的問題是:1、從字典加載配置:logging.config.dictConfig(settings.LOGGING_DIC)2、拿到logger對象來產(chǎn)生日志logger對象都是配置到字典的loggers 鍵對應(yīng)的子字典中的按照我們對logging模塊的理解,要想獲取某個東西都是通過名字,也就是key來獲取的于是我們要獲取不同的logger對象就是logger=logging.getLogger('loggers子字典的key名')但問題是:如果我們想要不同logger名的logger對象都共用一段配置,那么肯定不能在loggers子字典中定義n個key   'loggers': {    'l1': {'handlers': ['default', 'console'],  #
            'level': 'DEBUG','propagate': True,  # 向上(更高level的logger)傳遞
        },'l2: {'handlers': ['default', 'console' ], 'level': 'DEBUG','propagate': False,  # 向上(更高level的logger)傳遞
        },'l3': {'handlers': ['default', 'console'],  #
            'level': 'DEBUG','propagate': True,  # 向上(更高level的logger)傳遞
        },}#我們的解決方式是,定義一個空的key'loggers': {'': {'handlers': ['default', 'console'], 'level': 'DEBUG','propagate': True, },}這樣我們再取logger對象時
logging.getLogger(__name__),不同的文件__name__不同,這保證了打印日志時標(biāo)識信息不同,但是拿著該名字去loggers里找key名時卻發(fā)現(xiàn)找不到,于是默認(rèn)使用key=''的配置

?

re模塊

?

http://blog.csdn.net/yufenghyc/article/details/51078107

  

# =================================匹配模式=================================
#一對一的匹配
# 'hello'.replace(old,new)
# 'hello'.find('pattern')#正則匹配
import re
#\w與\W
print(re.findall('\w','hello egon 123')) #['h', 'e', 'l', 'l', 'o', 'e', 'g', 'o', 'n', '1', '2', '3']
print(re.findall('\W','hello egon 123')) #[' ', ' ']#\s與\S
print(re.findall('\s','hello  egon  123')) #[' ', ' ', ' ', ' ']
print(re.findall('\S','hello  egon  123')) #['h', 'e', 'l', 'l', 'o', 'e', 'g', 'o', 'n', '1', '2', '3']#\n \t都是空,都可以被\s匹配
print(re.findall('\s','hello \n egon \t 123')) #[' ', '\n', ' ', ' ', '\t', ' ']#\n與\t
print(re.findall(r'\n','hello egon \n123')) #['\n']
print(re.findall(r'\t','hello egon\t123')) #['\n']#\d與\D
print(re.findall('\d','hello egon 123')) #['1', '2', '3']
print(re.findall('\D','hello egon 123')) #['h', 'e', 'l', 'l', 'o', ' ', 'e', 'g', 'o', 'n', ' ']#\A與\Z
print(re.findall('\Ahe','hello egon 123')) #['he'],\A==>^
print(re.findall('123\Z','hello egon 123')) #['he'],\Z==>$#^與$
print(re.findall('^h','hello egon 123')) #['h']
print(re.findall('3$','hello egon 123')) #['3']# 重復(fù)匹配:| . | * | ? | .* | .*? | + | {n,m} |
#.
print(re.findall('a.b','a1b')) #['a1b']
print(re.findall('a.b','a1b a*b a b aaab')) #['a1b', 'a*b', 'a b', 'aab']
print(re.findall('a.b','a\nb')) #[]
print(re.findall('a.b','a\nb',re.S)) #['a\nb']
print(re.findall('a.b','a\nb',re.DOTALL)) #['a\nb']同上一條意思一樣#*
print(re.findall('ab*','bbbbbbb')) #[]
print(re.findall('ab*','a')) #['a']
print(re.findall('ab*','abbbb')) #['abbbb']#?
print(re.findall('ab?','a')) #['a']
print(re.findall('ab?','abbb')) #['ab']
#匹配所有包含小數(shù)在內(nèi)的數(shù)字
print(re.findall('\d+\.?\d*',"asdfasdf123as1.13dfa12adsf1asdf3")) #['123', '1.13', '12', '1', '3']#.*默認(rèn)為貪婪匹配
print(re.findall('a.*b','a1b22222222b')) #['a1b22222222b']#.*?為非貪婪匹配:推薦使用
print(re.findall('a.*?b','a1b22222222b')) #['a1b']#+
print(re.findall('ab+','a')) #[]
print(re.findall('ab+','abbb')) #['abbb']#{n,m}
print(re.findall('ab{2}','abbb')) #['abb']
print(re.findall('ab{2,4}','abbb')) #['abb']
print(re.findall('ab{1,}','abbb')) #'ab{1,}' ===> 'ab+'
print(re.findall('ab{0,}','abbb')) #'ab{0,}' ===> 'ab*'#[]
print(re.findall('a[1*-]b','a1b a*b a-b')) #[]內(nèi)的都為普通字符了,且如果-沒有被轉(zhuǎn)意的話,應(yīng)該放到[]的開頭或結(jié)尾
print(re.findall('a[^1*-]b','a1b a*b a-b a=b')) #[]內(nèi)的^代表的意思是取反,所以結(jié)果為['a=b']
print(re.findall('a[0-9]b','a1b a*b a-b a=b')) #[]內(nèi)的^代表的意思是取反,所以結(jié)果為['a=b']
print(re.findall('a[a-z]b','a1b a*b a-b a=b aeb')) #[]內(nèi)的^代表的意思是取反,所以結(jié)果為['a=b']
print(re.findall('a[a-zA-Z]b','a1b a*b a-b a=b aeb aEb')) #[]內(nèi)的^代表的意思是取反,所以結(jié)果為['a=b']#\# print(re.findall('a\\c','a\c')) #對于正則來說a\\c確實(shí)可以匹配到a\c,但是在python解釋器讀取a\\c時,會發(fā)生轉(zhuǎn)義,然后交給re去執(zhí)行,所以拋出異常
print(re.findall(r'a\\c','a\c')) #r代表告訴解釋器使用rawstring,即原生字符串,把我們正則內(nèi)的所有符號都當(dāng)普通字符處理,不要轉(zhuǎn)義
print(re.findall('a\\\\c','a\c')) #同上面的意思一樣,和上面的結(jié)果一樣都是['a\\c']#():分組
print(re.findall('ab+','ababab123')) #['ab', 'ab', 'ab']
print(re.findall('(ab)+123','ababab123')) #['ab'],匹配到末尾的ab123中的ab
print(re.findall('(?:ab)+123','ababab123')) #findall的結(jié)果不是匹配的全部內(nèi)容,而是組內(nèi)的內(nèi)容,?:可以讓結(jié)果為匹配的全部內(nèi)容
print(re.findall('href="(.*?)"','<a href="http://www.baidu.com">點(diǎn)擊</a>'))#['http://www.baidu.com']
print(re.findall('href="(?:.*?)"','<a href="http://www.baidu.com">點(diǎn)擊</a>'))#['href="http://www.baidu.com"']#|
print(re.findall('compan(?:y|ies)','Too many companies have gone bankrupt, and the next one is my company'))

?

# ===========================re模塊提供的方法介紹===========================
import re
#1
print(re.findall('e','alex make love') )   #['e', 'e', 'e'],返回所有滿足匹配條件的結(jié)果,放在列表里
#2
print(re.search('e','alex make love').group()) #e,只到找到第一個匹配然后返回一個包含匹配信息的對象,該對象可以通過調(diào)用group()方法得到匹配的字符串,如果字符串沒有匹配,則返回None。#3
print(re.match('e','alex make love'))    #None,同search,不過在字符串開始處進(jìn)行匹配,完全可以用search+^代替match#4
print(re.split('[ab]','abcd'))     #['', '', 'cd'],先按'a'分割得到''和'bcd',再對''和'bcd'分別按'b'分割#5
print('===>',re.sub('a','A','alex make love')) #===> Alex mAke love,不指定n,默認(rèn)替換所有
print('===>',re.sub('a','A','alex make love',1)) #===> Alex make love
print('===>',re.sub('a','A','alex make love',2)) #===> Alex mAke love
print('===>',re.sub('^(\w+)(.*?\s)(\w+)(.*?\s)(\w+)(.*?)$',r'\5\2\3\4\1','alex make love')) #===> love make alexprint('===>',re.subn('a','A','alex make love')) #===> ('Alex mAke love', 2),結(jié)果帶有總共替換的個數(shù)#6
obj=re.compile('\d{2}')print(obj.search('abc123eeee').group()) #12
print(obj.findall('abc123eeee')) #['12'],重用了obj

?

import re
print(re.findall("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>")) #['h1']
print(re.search("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>").group()) #<h1>hello</h1>
print(re.search("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>","<h1>hello</h1>").groupdict()) #<h1>hello</h1>print(re.search(r"<(\w+)>\w+</(\w+)>","<h1>hello</h1>").group())
print(re.search(r"<(\w+)>\w+</\1>","<h1>hello</h1>").group())

?

import reprint(re.findall(r'-?\d+\.?\d*',"1-12*(60+(-40.35/5)-(-4*3))")) #找出所有數(shù)字['1', '-12', '60', '-40.35', '5', '-4', '3']#使用|,先匹配的先生效,|左邊是匹配小數(shù),而findall最終結(jié)果是查看分組,所有即使匹配成功小數(shù)也不會存入結(jié)果
#而不是小數(shù)時,就去匹配(-?\d+),匹配到的自然就是,非小數(shù)的數(shù),在此處即整數(shù)
print(re.findall(r"-?\d+\.\d*|(-?\d+)","1-2*(60+(-40.35/5)-(-4*3))")) #找出所有整數(shù)['1', '-2', '60', '', '5', '-4', '3']

?

轉(zhuǎn)載于:https://www.cnblogs.com/mrwang1101/p/8232709.html

總結(jié)

以上是生活随笔為你收集整理的Python20-Day05的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

久久tv | 国产在线精品视频 | 在线观看亚洲国产精品 | 黄网站色成年免费观看 | 91在线看视频免费 | 国产欧美日韩精品一区二区免费 | 在线观看视频国产一区 | 永久免费精品视频 | 久久大香线蕉app | 久草电影免费在线观看 | 69国产成人综合久久精品欧美 | 看片网站黄色 | 亚洲日本va午夜在线影院 | 日日干激情五月 | 日韩欧美精选 | 久久精品国产成人 | 精品亚洲va在线va天堂资源站 | 午夜视频免费 | 午夜精品电影 | 天天干,天天射,天天操,天天摸 | 中文字幕在线视频国产 | 亚洲成av人片在线观看香蕉 | 国产精品一区二区在线播放 | 成人羞羞视频在线观看免费 | 国产不卡在线观看视频 | 免费在线一区二区三区 | 欧美最新另类人妖 | 91在线免费公开视频 | 国产精品毛片一区二区在线 | 国产亚洲精品久久久久久电影 | 丁香视频 | 欧美二区三区91 | 丁香婷婷色月天 | 91黄色小视频 | 91成人在线网站 | 国产伦理剧 | 亚洲精选视频免费看 | 久久无码av一区二区三区电影网 | 丁香在线视频 | 国产五月 | 园产精品久久久久久久7电影 | 久久精品一二三区白丝高潮 | 国内久久久久 | 九九九在线观看视频 | 欧美一二三区在线观看 | 中文区中文字幕免费看 | 又黄又刺激的网站 | 国产日产精品久久久久快鸭 | 精品一区二区三区在线播放 | 97超碰人人澡人人 | 九九九热精品 | 91亚洲在线观看 | 亚洲日本精品视频 | 在线成人小视频 | 天天操人人干 | 一区二区三区影院 | av天天干 | 成人片在线播放 | 婷婷丁香狠狠爱 | 亚洲永久字幕 | 欧美国产日韩在线视频 | 天堂网一区二区三区 | 天天拍天天操 | 欧美黄色软件 | 日韩在线观看第一页 | 国产不卡在线 | 国产一级免费观看 | 五月婷婷.com| 91精品国产综合久久福利不卡 | 免费高清在线观看电视网站 | 狠狠躁天天躁综合网 | 亚洲理论在线观看电影 | 亚洲激情国产精品 | 久久黄色小说 | 天天草天天摸 | 国产精品免费久久久久久久久久中文 | 国产无区一区二区三麻豆 | 国产精品毛片久久久久久久久久99999999 | 亚洲午夜大片 | 狠狠色综合欧美激情 | 久久av电影 | 国产男男gay做爰 | 天天曰天天射 | 久久视频这里有精品 | 日韩福利在线观看 | 中文不卡视频在线 | 国产黄色视 | 伊人色**天天综合婷婷 | 亚洲aaa毛片 | 九九有精品 | 国内精品久久久久影院优 | 天天综合操| 日韩欧美国产激情在线播放 | 亚洲精选在线观看 | 永久免费毛片在线观看 | 欧美午夜激情网 | 国产一级视屏 | 精品国产欧美一区二区 | 成人a免费| 五月导航 | a天堂一码二码专区 | 超碰在线中文字幕 | 日韩视频免费观看高清 | 五月婷视频| 国内成人av | 精品1区2区 | 丁香九月婷婷 | 日韩中文字幕在线看 | 亚洲成人资源 | 天天摸天天舔 | 日韩r级在线 | 亚洲国产天堂av | aaa毛片视频 | 免费a视频在线观看 | 国产久草在线观看 | 日韩高清不卡在线 | 国产黄在线免费观看 | 日韩欧美在线视频一区二区 | 天天av资源| 国产精品白虎 | 久久久国产一区二区三区 | 在线观看日韩一区 | 欧美另类xxxx | 亚洲一区二区三区在线看 | 97超碰免费在线 | 久久不射影院 | 天天躁天天狠天天透 | 久久这里只精品 | 99精品在线免费在线观看 | 超碰成人网 | 国产精品精品 | 欧美一级片播放 | 区一区二区三在线观看 | www亚洲精品 | 99色精品视频 | 亚洲成人黄色 | 奇米7777狠狠狠琪琪视频 | 久草亚洲视频 | 日韩视频精品在线 | 欧美日韩在线观看一区 | 黄色三级久久 | 天天操天天干天天爽 | 一区二区三区在线免费 | 日韩素人在线观看 | 成人一级片免费看 | 亚洲电影av在线 | 丝袜美女在线观看 | 亚洲精品456在线播放乱码 | 成人在线免费观看视视频 | 成人亚洲精品久久久久 | 91视频3p | 五月天欧美精品 | 99精品系列 | 国产成人亚洲在线观看 | 久久露脸国产精品 | 国产精品99久久久久久大便 | 精品国产乱码久久久久久浪潮 | 国产精品国产三级国产不产一地 | 欧美男男激情videos | 国产视频一区二区在线播放 | 亚洲成人精品在线观看 | 黄色片视频在线观看 | 一本一道久久a久久精品蜜桃 | .国产精品成人自产拍在线观看6 | 在线播放一区二区三区 | 久久久久久久久久久久国产精品 | 国产精品理论视频 | 少妇高潮流白浆在线观看 | 婷婷精品国产欧美精品亚洲人人爽 | 久久精品国产精品亚洲 | 婷婷久久综合九色综合 | 爱爱av网站 | 国产精品毛片一区二区 | 亚洲少妇久久 | 99久久国产免费,99久久国产免费大片 | 国产91大片 | 久久免费av电影 | 国产精品初高中精品久久 | 国产精品中文久久久久久久 | 欧美精品亚洲二区 | 国产精品久久久久亚洲影视 | 国产精品国产三级国产 | 99视频免费播放 | 亚洲视频在线观看免费 | 亚洲国产中文字幕在线视频综合 | 国产成人精品福利 | 在线看国产一区 | 午夜丰满寂寞少妇精品 | 中文字幕影片免费在线观看 | 欧美亚洲另类在线视频 | 亚洲综合网站在线观看 | 九九久久久 | 97人人精品 | 欧美国产亚洲精品久久久8v | 成人三级网站在线观看 | 在线看一区| 91视频三区 | 亚洲婷婷免费 | 久久久久久久av | 一区在线免费观看 | 四虎在线免费观看视频 | 欧美日韩中文视频 | 欧美成人h版 | 天天色天天色 | 18国产精品白浆在线观看免费 | 久久婷婷五月综合色丁香 | 在线观看网站黄 | 国产成人一区二区精品非洲 | 亚洲污视频 | 麻豆国产在线视频 | 日本中文字幕在线 | 国产91精品看黄网站在线观看动漫 | 中文字幕亚洲精品在线观看 | 国产精品成人一区二区 | 免费观看成人网 | 国产精品av免费在线观看 | av成人在线电影 | 国产色一区 | 久久国产麻豆 | 国产91全国探花系列在线播放 | 97色综合| www色网站 | 中文字幕亚洲精品在线观看 | 欧美日韩高清在线一区 | 欧美色伊人 | 日韩一级黄色av | 中文字幕亚洲欧美日韩2019 | 亚洲黄色软件 | 亚洲免费av电影 | 久久久91精品国产一区二区三区 | 久久久久9999亚洲精品 | 日日干av| 在线观看免费一区 | 日韩免费视频在线观看 | 国产午夜三级 | 欧美在线视频a | 日韩欧美一区二区三区在线 | 国产亚洲精品bv在线观看 | 欧美黄色特级片 | 91精品欧美| 麻豆 free xxxx movies hd | 在线看黄色的网站 | 久久久国产99久久国产一 | 天天看天天干天天操 | 视频一区二区在线观看 | 国产精品久久99综合免费观看尤物 | 99在线视频精品 | 中文在线字幕免 | 国产资源在线免费观看 | 嫩草av影院 | 国产精品 中文字幕 亚洲 欧美 | 中文字幕国语官网在线视频 | 亚洲伦理一区 | 综合网中文字幕 | 69av视频在线| 粉嫩高清一区二区三区 | 久人人 | 五月婷婷综合网 | 国产成人三级在线播放 | 欧美日韩国内在线 | 97超在线| 久久免费成人精品视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产人成免费视频 | 国产精品久久久久久婷婷天堂 | 欧美激情精品 | 国内外成人免费在线视频 | 亚洲综合最新在线 | 欧美日韩国语 | 婷婷网五月天 | 久草成人在线 | 91chinesexxx | 中文字幕国语官网在线视频 | 国产精品第54页 | 亚洲精品白浆高清久久久久久 | 天天做天天射 | 91视频高清 | 免费亚洲精品视频 | 在线观看黄色大片 | 最新中文字幕在线资源 | 成人免费视频播放 | 99久免费精品视频在线观看 | 亚洲va在线va天堂va偷拍 | www.天天操| 欧美日韩国产精品一区二区亚洲 | 99视频一区| 久综合网 | 在线午夜电影神马影院 | 少妇搡bbbb搡bbb搡aa | 国产成人精品久久久久蜜臀 | 在线视频久久 | 精品视频在线视频 | 夜夜澡人模人人添人人看 | 又黄又爽又色无遮挡免费 | 五月天婷婷在线视频 | 色综合中文字幕 | 欧美精品成人在线 | 亚洲一片黄| 丝袜av一区 | 三级av中文字幕 | 最近中文字幕久久 | 干综合网| 中文在线字幕免 | 天堂在线视频免费观看 | 欧美成人在线网站 | 亚洲成色777777在线观看影院 | 国产精品精品国产色婷婷 | 久久97精品| 国产一区二区在线观看免费 | 91精品爽啪蜜夜国产在线播放 | .国产精品成人自产拍在线观看6 | 国产精品一区二区免费在线观看 | 成人影视片| 亚洲黄色av | 久久国产精品区 | 日韩一区在线播放 | 成人动漫一区二区三区 | 精品一区二区三区电影 | 免费亚洲成人 | 丁香婷婷综合网 | 福利精品在线 | 日韩成人在线一区二区 | 色婷婷激情综合 | 久久av观看| 九色91视频| 久久不卡国产精品一区二区 | 六月丁香婷婷网 | 亚洲小视频在线观看 | 日日草天天干 | 91精品国产91p65 | 在线国产激情视频 | 亚洲国产精彩中文乱码av | 成人动漫精品一区二区 | 97人人艹| 国产精品成人免费精品自在线观看 | 国产成人精品亚洲a | 超碰在线最新地址 | 99久久久国产精品美女 | 天海翼一区二区三区免费 | 狠狠色噜噜狠狠狠合久 | 欧美日韩国产二区 | 欧美一级片免费播放 | 可以免费看av | 亚洲国产婷婷 | 欧美国产日韩激情 | 日本不卡一区二区 | 亚洲综合视频在线 | 激情综合网天天干 | 国产精品美女免费视频 | 精品999在线观看 | 天堂网一区二区三区 | 射久久| 在线精品观看 | 免费99精品国产自在在线 | 国产精品九九视频 | 亚洲人人av | 午夜性盈盈 | 毛片美女网站 | 精品嫩模福利一区二区蜜臀 | 亚洲aⅴ免费在线观看 | 激情综合色综合久久 | 免费看的黄色 | www.eeuss影院av撸 | 久久久www成人免费毛片 | 精品久久久久久久久亚洲 | 日韩欧美黄色网址 | 国产91丝袜在线播放动漫 | 久久精品这里都是精品 | 欧美一区二区在线免费看 | 日本性动态图 | 人人爽人人澡人人添人人人人 | 999男人的天堂 | 中文字幕中文字幕在线中文字幕三区 | 久久免费看毛片 | 国产一区二区免费在线观看 | 九九视频在线观看视频6 | 黄色免费网站下载 | 三级在线国产 | 精品国产亚洲在线 | 欧美一区二区三区免费看 | 久久午夜电影网 | www.天堂av| 久久免费黄色 | 中文乱幕日产无线码1区 | 国产中文字幕在线 | 九九热只有精品 | 久久精品黄 | 中日韩三级视频 | 一级特黄aaa大片在线观看 | 一区二区三区日韩在线观看 | 免费在线观看国产黄 | 亚洲精品视频网址 | 97天堂网 | 亚洲在线成人精品 | av在线看网站 | 精品成人网 | 欧美亚洲国产精品久久高清浪潮 | 伊人官网| 丁香花在线视频观看免费 | 国产96视频| 黄色aa久久 | 日韩欧美国产激情在线播放 | 在线精品一区二区 | 91在线区| 91av在线免费看 | 在线视频黄 | www视频在线免费观看 | 四虎在线免费观看视频 | 色婷婷激婷婷情综天天 | 丁香婷婷久久久综合精品国产 | 久草在线国产 | 精品久久久久国产 | 国产又粗又猛又爽又黄的视频先 | 91九色自拍 | 中文字幕一区二区三区在线播放 | 玖玖999| 麻豆91在线观看 | 国产美女久久久 | 成人在线一区二区 | 手机色站 | 日韩a在线播放 | 97成人在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 久久人人爽人人片av | 中文字幕高清在线 | 国产精品一区二区三区免费看 | 天天色综合天天 | 精品国产精品久久 | 视频在线观看日韩 | 国产在线污 | 久久大香线蕉app | 亚洲日本欧美在线 | 中文字幕电影高清在线观看 | 成年人电影毛片 | 亚洲精品电影在线 | 精品国产视频一区 | 国内精自线一二区永久 | 国产大陆亚洲精品国产 | 久久精品国产亚洲精品 | 亚洲国产精品成人va在线观看 | 久久久久国产精品www | 黄色网在线免费观看 | 日韩一区二区免费视频 | 国产美女在线观看 | 亚洲欧美视屏 | 久久久久在线观看 | 三级在线视频观看 | 一区二区三区免费在线观看视频 | 亚洲激情av| 久久区二区 | 久久久国产影院 | 一区二区日韩av | 中文字幕一区二区三区在线视频 | 国产一级淫片在线观看 | 久久www免费视频 | 人人澡人人草 | 综合激情久久 | 日韩国产在线观看 | 波多野结衣动态图 | 色综合天天爱 | 久久国产精品视频免费看 | 婷婷六月丁 | 国产三级在线播放 | av888av.com| 午夜视频一区二区 | 亚洲作爱 | 中文字幕在线观看视频一区二区三区 | 色综合久久网 | 成人免费在线网 | 91污污视频在线观看 | 天天射天天干天天 | 色多多视频在线 | 久久精品一区二区三 | 黄色av影视| 欧美性黑人| 国产精品久久在线 | 亚洲深爱激情 | 人人干人人做 | 日韩视频专区 | 亚洲综合欧美精品电影 | 视频三区在线 | 亚洲精品视频二区 | 91大神免费视频 | 久久伊人八月婷婷综合激情 | 天天色天天操天天爽 | 国产香蕉视频在线观看 | 91秒拍国产福利一区 | 亚洲精品免费播放 | 韩国一区二区在线观看 | 毛片美女网站 | 日韩爱爱网站 | 久久人人爽人人人人片 | 日韩一二三 | 五月天狠狠操 | 国产一区二区在线观看免费 | 亚洲国产成人高清精品 | 国产999精品 | 涩涩网站在线观看 | 久久综合99| 91九色蝌蚪视频网站 | 日韩电影一区二区三区在线观看 | 中文亚洲欧美日韩 | 三级在线视频观看 | 欧美精品二 | 日韩videos高潮hd | 亚洲成人免费在线 | www.色的| 国产精品一区二区吃奶在线观看 | 亚洲精品自拍 | 高清不卡毛片 | 免费看成人片 | 五月天av在线| 午夜精品视频一区二区三区在线看 | 91成年人网站 | 亚洲五月综合 | 久久国产精品色av免费看 | 久久亚洲专区 | 国产高清在线不卡 | 99热99热| 久久久久久麻豆 | 91天天操 | 久草资源在线 | 久草免费看 | 久久久久久毛片精品免费不卡 | 国产黄免费在线观看 | 中文字幕一区在线 | 天天综合天天做天天综合 | 狠狠插狠狠干 | 在线亚洲欧美视频 | 免费av大片 | 国产香蕉视频在线观看 | 少妇性xxx| 国产69精品久久99不卡的观看体验 | 亚洲永久国产精品 | 国产又粗又猛又色又黄视频 | 国产在线国偷精品产拍免费yy | 国产露脸91国语对白 | 美女久久久久 | 成人av电影在线观看 | 91精品在线播放 | 天天草天天干天天射 | 欧美综合在线视频 | 免费看的黄网站软件 | 日本精品一区二区三区在线观看 | 亚洲精品理论 | 亚洲精品色视频 | 国产黄在线观看 | 一区二区三区www | 亚洲a在线观看 | 91少妇精拍在线播放 | 97看片 | 99热这里精品 | 91亚洲精品乱码久久久久久蜜桃 | 蜜臀aⅴ国产精品久久久国产 | 亚洲精品777 | 日韩专区在线观看 | 亚洲精品国偷拍自产在线观看 | 在线播放视频一区 | 国产精品99在线播放 | 午夜久久久久久久久久影院 | 精品国产欧美 | 天天操天天干天天爱 | 久久久久国产精品一区 | 高清在线一区二区 | 日韩a级黄色| 成人午夜电影在线观看 | 欧美成年人在线观看 | 欧美日韩破处 | 91在线免费看片 | 久久人人插 | 91资源在线视频 | 久久久国内精品 | 粉嫩av一区二区三区四区在线观看 | 精品亚洲二区 | 亚洲电影黄色 | 丁香av| 亚洲情影院 | 日本久久久久久科技有限公司 | 麻豆视频网址 | 91成人精品观看 | 亚洲国产精品电影在线观看 | 日本高清免费中文字幕 | 国产97色| 国产精品久久久视频 | 久久精品一区二区三 | 九色视频网 | 久久久久免费观看 | 亚洲影视九九影院在线观看 | 麻豆av一区二区三区在线观看 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品1区2区3区在线观看 | 精品亚洲一区二区 | 成人羞羞视频在线观看免费 | 国产视频一区精品 | 欧美成人猛片 | 嫩模bbw搡bbbb搡bbbb | 亚洲jizzjizz日本少妇 | 91精品系列 | 久久手机精品视频 | 一区二区 精品 | 欧美日韩国语 | 中国一级片在线播放 | 色婷婷福利视频 | 激情偷乱人伦小说视频在线观看 | 午夜在线观看一区 | 免费在线一区二区三区 | 国产不卡一 | 天天色.com | 啪嗒啪嗒免费观看完整版 | 久久久久久久久电影 | 久久久久北条麻妃免费看 | 婷婷草 | 成人中文字幕在线 | 91污污视频在线观看 | 婷婷在线免费 | 婷婷色六月天 | 国产一级a毛片视频爆浆 | 国产精品久久久久aaaa九色 | av免费网站观看 | 中文字幕在线观看第三页 | 6699私人影院 | 久久高清精品 | 国产成人久久久77777 | 在线精品亚洲 | 亚洲免费在线 | 日韩高清二区 | 色综合小说 | 久久日韩精品 | 免费人人干 | 国产 一区二区三区 在线 | 亚洲aⅴ免费在线观看 | www黄色软件 | 在线激情影院一区 | 久草电影在线观看 | 激情久久久| 日本精品一二区 | 久草干 | 三级黄色片子 | 午夜神马福利 | 福利视频午夜 | 99久久精品免费看国产 | 亚洲va欧美va国产va黑人 | 免费韩国av| 免费在线观看成人av | 国产又粗又猛又黄视频 | 在线观看成人一级片 | 欧美日性视频 | 欧美日韩xxxxx | 日韩精品一区电影 | 欧美亚洲成人免费 | 99视频免费看 | 91尤物国产尤物福利在线播放 | 91chinesexxx| 久久人人97超碰国产公开结果 | 国产精品麻豆果冻传媒在线播放 | 亚洲欧美日韩国产一区二区 | 日韩av电影网站在线观看 | av一级网站 | 玖玖色在线观看 | 国产97av| 欧美91精品久久久久国产性生爱 | 国产精品美女久久久久aⅴ 干干夜夜 | 黄色三级免费网址 | 国产精品一区二区久久久 | 91麻豆免费版 | 九九欧美 | 婷婷伊人综合亚洲综合网 | 国产精品免费在线观看视频 | av片在线观看 | 午夜美女福利直播 | 国产精品爽爽久久久久久蜜臀 | 免费观看性生活大片3 | 天天色天天上天天操 | 日韩精品视频免费专区在线播放 | 伊人五月在线 | 国产精品影音先锋 | 97在线视频免费看 | 丁香久久激情 | 久久av免费 | 日本久久综合网 | 四虎国产精品免费观看视频优播 | 九九热免费观看 | 久久久久久久久久亚洲精品 | 中国一区二区视频 | 日韩精品在线看 | 91视频高清 | 黄在线免费看 | 天天艹 | 蜜臀一区二区三区精品免费视频 | 日韩精品一区二区免费 | 欧美日韩成人一区 | 在线亚洲天堂网 | 四虎影院在线观看av | 黄色软件视频大全免费下载 | 欧美精品资源 | 成年人电影免费看 | 国产视频资源在线观看 | 国产精品成久久久久三级 | 久久经典国产 | 久久免费影院 | 九色在线视频 | 18性欧美xxxⅹ性满足 | 日韩久久精品一区二区三区 | 97看片吧| 中文字幕一区二区三区在线观看 | 免费看国产黄色 | 精品国产一区二区三区在线观看 | 日韩在线视频观看免费 | 91久久精品一区 | 欧美黄色软件 | a在线观看国产 | 日韩精品免费在线观看 | 国产成人精品一区二三区 | 日韩av偷拍 | 处女av在线 | 成人一区在线观看 | 精品在线二区 | 精品一区中文字幕 | 亚洲精品国产自产拍在线观看 | 99久久精品国产一区二区成人 | a天堂一码二码专区 | 免费成人av | 日韩精品一区二区免费 | 日韩aⅴ视频 | 久久香蕉国产精品麻豆粉嫩av | 免费看三级 | 亚洲精品乱码白浆高清久久久久久 | 黄网站大全 | 国产精品久久久久婷婷 | av网址最新 | 久久精品国产精品亚洲 | 日本一区二区高清不卡 | 久久久久久激情 | 午夜精品成人一区二区三区 | 亚洲精品系列 | 国产va精品免费观看 | 久久婷婷精品视频 | 麻豆影视在线免费观看 | 91精品办公室少妇高潮对白 | 一区二区三区免费播放 | 婷婷丁香在线观看 | 国产精品免费一区二区三区 | 日韩精品久久一区二区三区 | 日韩h在线观看 | 国产123区在线观看 国产精品麻豆91 | 亚洲精品一区二区在线观看 | 91成品视频 | 日韩一区二区三区在线看 | 婷婷色狠狠 | 欧美韩日在线 | 天天操天 | 俺要去色综合狠狠 | 丁香六月在线 | www.天天综合 | 在线免费观看黄色小说 | 亚洲精品在线免费观看视频 | 国产精品麻豆91 | 久久成人精品电影 | 色婷婷欧美| 国产裸体视频网站 | 9色在线视频 | 天天干天天干天天射 | 国模精品在线 | 在线观看香蕉视频 | 亚洲欧美国内爽妇网 | av大全在线免费观看 | 在线观看日韩国产 | 久久激情网站 | 在线观看黄色av | 久久亚洲影视 | 国产高清视频免费最新在线 | 黄色大片日本免费大片 | 狠狠插天天干 | 激情综合中文娱乐网 | 久久艹国产 | 高清精品久久 | av免费看电影 | 九九九视频精品 | 日韩在线观看小视频 | 99热网站| 国产精品破处视频 | 99精品视频网 | 免费裸体视频网 | 国产又粗又猛又黄视频 | 丁香六月欧美 | 色婷婷激情电影 | 国产成人久久77777精品 | 探花视频免费在线观看 | 亚洲一区二区三区毛片 | 中文字幕999 | 狠狠久久 | 狠狠色网| 成人免费一级 | 国产成人久久77777精品 | av福利在线免费观看 | 中文日韩在线视频 | 成人亚洲欧美 | 成人一级片免费看 | 国产精品a级 | 日韩一二区在线 | 成人亚洲网 | 欧美国产日韩一区 | 亚洲精品小视频 | 中文不卡视频在线 | 999久久久久久久久 69av视频在线观看 | 欧美性性网 | 国产精品自产拍在线观看蜜 | 欧美日韩国产一区二区在线观看 | 亚洲天堂网视频在线观看 | 一区二区三区四区免费视频 | 欧美日韩xxxxx | 99热.com | 成人av电影在线播放 | 欧美一级乱黄 | 精品福利在线视频 | 日操操| 日本韩国在线不卡 | 亚洲国产小视频在线观看 | 五月色婷 | 99综合电影在线视频 | 欧美日韩高清在线 | 国产视频精品免费播放 | 青春草免费在线视频 | 中文字幕高清在线 | 日本中文字幕在线免费观看 | 欧美一区二区在线看 | 狠狠狠狠狠狠狠干 | 国产只有精品 | 亚洲国产福利视频 | 国产最顶级的黄色片在线免费观看 | 久久天天躁夜夜躁狠狠85麻豆 | 99视频在线精品国自产拍免费观看 | 91精品福利在线 | 亚洲天堂香蕉 | 国产不卡在线看 | 国产精品手机播放 | 一区电影| 日韩免费播放 | 美女又爽又黄 | 欧美视频日韩视频 | 国产福利久久 | 国产小视频在线看 | av中文字幕av | 99精品久久只有精品 | 二区视频在线观看 | 国产精品永久免费在线 | 91视频免费网址 | 亚洲国产精品一区二区久久,亚洲午夜 | 久精品在线观看 | 亚洲精品国产第一综合99久久 | 国产精品一区二区三区在线 | 久久综合丁香 | 最近中文字幕视频完整版 | 日韩簧片在线观看 | 国产精品成人久久久久 | 国产精品1区2区 | 一区二区中文字幕在线播放 | 在线日韩精品视频 | 99热这里只有精品国产首页 | 欧美国产日韩激情 | 亚洲精品乱码 | 91中文在线| 中文字幕在线视频网站 | 婷婷激情欧美 | 日韩欧美一区二区三区在线 | 超碰在线观看av | 国产视频色 | 国内精品久久久久久久久久久久 | 久色免费视频 | 蜜臀久久99精品久久久无需会员 | 久久影视中文字幕 | 亚洲精品国产精品国自 | 九九在线国产视频 | 欧美国产精品一区二区 | 日日夜夜天天人人 | av综合网址| 国产精品一区二区精品视频免费看 | 中文字幕av日韩 | 亚洲九九九 | 亚洲精品视频在线 | 国产123区在线观看 国产精品麻豆91 | 国产伦精品一区二区三区无广告 | 欧洲精品码一区二区三区免费看 | 免费黄色a网站 | 中文在线最新版天堂 | 91视频 - x99av| 97精品超碰一区二区三区 | 粉嫩一区二区三区粉嫩91 | 日本久久精品视频 | 免费男女羞羞的视频网站中文字幕 | 久草免费在线观看视频 | 97精品国产97久久久久久免费 | 久久99视频免费 | 国产亚洲精品av | 中文字幕永久在线 | 麻豆91在线观看 | 色噜噜在线观看视频 | 超碰个人在线 | 91av原创 | 久久精品国产亚洲a | 中文字幕人成不卡一区 | 青青啪| 97操操| www.人人干 | 中文字幕在线观看视频一区二区三区 | 伊人久久国产 | 99久在线精品99re8热视频 | 欧美日韩国产在线观看 | 国产欧美精品一区二区三区四区 | 亚洲精品自拍视频在线观看 | 亚洲精品777 | 久久五月婷婷丁香社区 | 在线看国产日韩 | 久久精品站 | 亚洲一二区视频 | 91免费观看国产 | 婷婷久久一区 | 在线成人小视频 | 九色精品免费永久在线 | 狠狠色丁香久久综合网 | 97超碰超碰久久福利超碰 | 天天干夜夜干 | 欧美精品在线观看一区 | 色婷婷综合视频在线观看 | 亚洲一级免费电影 | 在线观看深夜视频 | 天天色播| 久久久久国产a免费观看rela | 久久国产精品一二三区 | 精品久久九九 | 久久在草 | 亚洲精品男人天堂 | 国产一区二区视频在线 | 婷婷激情站 | 91精品中文字幕 | 国产成人福利在线 | 日日摸日日 | 黄色a级片在线观看 | 免费看精品久久片 | 菠萝菠萝在线精品视频 | 国产这里只有精品 | 欧美成天堂网地址 | 欧美色综合久久 | 深爱激情站 | 国产在线精品一区二区不卡了 | 国产精品亚洲片夜色在线 | 国产精品麻豆欧美日韩ww | 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久国内免费视频 | 免费看搞黄视频网站 | 97看片网 | 国产在线久草 | 欧美日韩在线观看一区二区三区 | 国产精品无 | 精品字幕 | www狠狠操| 色多多视频在线观看 | 欧美国产日韩一区 | 国产精品免费观看久久 | 日韩免费在线视频观看 | 91精品国产成人 | 在线99| 色婷婷久久久 | 日韩精品一卡 | 天天插综合 | 国精产品满18岁在线 | 国产中年夫妇高潮精品视频 | 亚洲精品视频在线观看免费视频 | 亚洲国产精品999 | av最新资源 | 色欲综合视频天天天 | 成人国产电影在线观看 | 97人人澡人人爽人人模亚洲 | 国产精品夜夜夜一区二区三区尤 | 91精品伦理 | 国产精品中文久久久久久久 | 午夜视频黄 | 中文字幕中文字幕中文字幕 | 久草在线手机视频 | 久草精品视频在线看网站免费 | 国产精品福利久久久 | 国产97碰免费视频 | 成人一区二区三区中文字幕 | 亚洲国产精品人久久电影 | 免费在线观看日韩视频 | 黄色高清视频在线观看 | 免费网站在线观看人 | 色视频在线 | 奇米先锋| 日韩影视在线 | 夜夜夜| 久久精品网址 | 最新日本中文字幕 | 免费av网站在线看 | 欧美激情精品久久久久 | 狠狠色丁香久久婷婷综合丁香 | 久久久久国产视频 | 精品国产一区二区久久 |