pack 可以把全部的數字都固定的轉換成4字節git
dis.dis 查看計算機指令正則表達式
基礎app
正則表達式概念: 是一種規則(元字符,量詞)ide
正則表達式是對字符串操做的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個「規則字符串」,這個「規則字符串」用來表達對字符串的一種過濾邏輯。函數
re 模塊和正則表達式的關係ui
re 模塊自己只是用來操做正則表達式,和正則表達式一點關係都沒有google
應用;url
匹配字符串 spa
表單驗證code
爬蟲
[ ] 字符組
自己是哪個字符,就匹配字符串中哪個字符
字符組[字符1字符2],一個字符組就表明匹配一個字符,只要這個字符出如今字符串中,那麼久說明這個字符能匹配上
字符中還可使用範圍
全部的範圍都必須遵循ascii碼從小到大來指定
元字符
\ 轉義符 能夠轉義全部
\ d (digit) 能匹配全部0-9之間的數字
\w (word) 能匹配大小寫字母,數字,下劃線
\s (space) 能匹配 空白 空格 換行符 製表符
\ t (table) 只能匹配製表符
\ n (next) 只能匹配換行符
\D 表示除 數字全部
\W 表示除 大小寫字母,數字,下劃線 的全部
\S 表示除 空白 空格 換行符 製表符 的全部
[\d\D] [\w\W] [\s\S] 能表示一切字符
. 表示除換行符以外的任意內容
[ ] 字符組只要在中括號內的全部字符都符合規則的字符
[ ^ ] 字符組只要在中括號內的全部字符都不符合規則的字符
^ 表示一個字符,只匹配一個開頭
$ 表示一個字符的結束
^abc$ 表示約束以a開頭,c結尾
| 或 表示兩個規則喲重疊的部分,老是長的在前面,短的在後面
() 分組 表示給一部分正則規定爲一組,| 這個符號的做用域就能夠縮小了
量詞
{ n } 表示只能出現n次
{ n, } 表示至少出現n次
{ n,m } 表示至少出現n次,至多出現m次
? 表示匹配0次或者1次,無關緊要可是又只能有1個
+
表示匹配一次或者屢次
*
表示匹配0次或者屢次,無關緊要可是有能夠有多個
默認貪婪匹配:老是會在符合量詞條件的範圍爲儘可能多的匹配
非貪婪匹配(惰性匹配):老是會匹配符合條件範圍內儘可能小的字符串
元字符 量詞 ?x 表示元字符規則在量詞範圍內匹配,一遇到x就會中止
. * ? x 表示匹配任意的內容屢次遇到X就會當即中止
元字符
元字符量詞
元字符量詞?
\d+?x .*?x 爬蟲
基本格式
try:
pass
except Exception as e:
pass
練習
try:
v = []
v[11111] # IndexError
except ValueError as e:
pass
except IndexError as e:
pass
except Exception as e:
print(e) # e是Exception類的對象,中有一個錯誤信息。
finally:
print('最後不管對錯都會執行')
# 練習一 import requests try: ret = requests.get('http://www.google.com') print(ret.text) except Exception as e: print('請求異常') # 練習二 def func(a): try: return a.strip() except Exception as e: pass return False v = func('alex') if not v: print('函數執行失敗') else: print('結果是',v)
練習題
# 1. 寫函數,函數接受一個列表,請將列表中的元素每一個都 +100 def func(arg): result = [] for item in arg: if item.isdecimal(): result.append(int(item) + 100) return result # 2. 寫函數去,接受一個列表。列表中都是url,請訪問每一個地址並獲取結果。 import requests def func(url_list): result = [] try: for url in url_list: response = requests.get(url) result.append(response.text) except Exception as e: pass return result def func2(url_list): result = [] for url in url_list: try: response = requests.get(url) result.append(response.text) except Exception as e: pass return result func(['http://www.baidu.com','http://www.google.com','http://www.bing.com'])
主動觸發異常
try:
int('123')
raise Exception('阿薩大大是阿斯蒂') # 代碼中主動拋出異常
except Exception as e:
print(e)
# 實例
def func():
result = True
try:
with open('x.log',mode='r',encoding='utf-8') as f:
data = f.read()
if 'alex' not in data:
raise Exception()
except Exception as e:
result = False
return result
自定義異常
# 實例一
class MyException(Exception):
pass
try:
raise MyException('asdf')
except MyException as e:
print(e)
# 實例二
class MyException(Exception):
def __init__(self,message):
super().__init__()
self.message = message
try:
raise MyException('asdf')
except MyException as e:
print(e.message)
嵌套
裝飾器
內置模塊
os
sys
...
第三方
requests
xlrd
自定義模塊
文件
文件夾 + init.py【包】
sys.path
導入
import
from xx.xxx import xx