什麼時異常捕獲:程式報錯出現了異常
程式異常的後果:程式會直接結束,不會往後面執行
異常捕獲
目的:當程式出先異常的時候,程式不崩潰繼續執行後面的**
什麼時候需要捕獲:知道某個地方出現異常,但是**沒有問題(使用者的不當操作)這個時候需要異常捕獲
語法1: — 捕獲所有異常型別
try:
**段1
except:
**段2
說明:try、except – 關鍵字:固定寫法
**段一:需要捕獲異常的**
**段二:捕獲到異常後執行的**
執行過程:會先執行try後面的**。沒有異常直接執行後面的其他**(不執行**段二);如果**段1出席那異常,程式不崩潰,直接執行except後面的**段2
語法2:— 捕獲指定型別異常
try:
**段1
except:異常型別
**段2
語法3: — 同時捕獲多種異常,進行相同的處理
try:
**段1
except:(異常型別1,異常型別2…)
**段2
語法4:
try:
**段1
except:異常型別1
**段11
except:異常型別2
**段22
關鍵字finally
finally的存在並不影響原來異常捕獲
finally後面得分**不管try裡面的**發生什麼情況都會執行,就算**段1出現異常沒有**獲到finally後面的**也會被執行)
正則匹配類符號
1.什麼是正規表示式
正規表示式是讓複雜的字串處理變得更加簡單的工具
#2.正則語法
fullmatch(正規表示式, 字串) – 判斷指定的字串是否滿足正規表示式的規則,如果不符合返回none
python中正規表示式式寫到單引號或者雙引號中』正規表示式』,js中放在兩個/中 /正則/
普通字元
普通字元指的是除了特殊符號以外的符號
普通字元在正則中表示這個字元本身
特殊字元 . – 匹配任意字元
3)\d – 匹配乙個任意的數字
4)\s – 匹配乙個任意空白字元
空白字元:空格、\n、\t
5)\d – 匹配任意乙個非數字字元
6)\s – 匹配任意乙個非空白字元
7)[字符集] – 匹配字符集中任意乙個字元
[\u4e00-\u9f5a] – 匹配任意乙個中文
注意:1.乙個中括號只能匹配到乙個字元
2.減號如果在兩個字元之間表示範圍,在-號前面的編碼值必須小於後面的編碼值
3.如果減號不在兩個字元之間表示本身
[adc-] 匹配其中乙個 -表示本身
8)[^字符集] – 匹配不在字符集中的任意乙個字元
[^abc] - 匹配除了『a』』b『'c』以外的任意字元
匹配次數
* 匹配0次或者多次
re_str = r'1[fgh]*2'
result = fullmatch(re_str,
'12'
)print
(result)
re_str = r'1[fgh]*2'
result = fullmatch(re_str,
'1fggh2'
)print
(result)
2.+ 匹配一次或者多次
```python
re_str = r』1[fgh]+2』
result = fullmatch(re_str, 『1f2』)
print(result)
```? 匹配0次或者1次
re_str = r'1[fgh]+2'
result = fullmatch(re_str,
'1f2'
)print
(result)
'''
-- 匹配n次
-- 匹配m到n次
-- 匹配至少m次
-- 最多n次
就是乙個資料(也可以)在範圍內的出現次數
'''re_str = r'a[a-z]b'
result = fullmatch(re_str,
'adfhdfb'
)print
(result)
貪婪和非貪婪
在匹配次數不確定的時候匹配模式分貪婪和非貪婪
(1)貪婪:在能匹配成功的前提下盡可能多的去匹配
預設情況下,所有不確定次數的匹配都是貪婪
(2)非貪婪:在能匹配成功的情況下盡可能少的去匹配
在匹配次數不定的次數後加?,就變成非貪婪模式
re_str = r』a.*b』
result = search(re_str, 『電腦0a5555b5b手機家電bf』)
print(result)
分支和分組
分組 - 用()將正則的一部分括起來看成乙個整體進行操作
re_str = r』(\d[a-z])』
print(fullmatch(re_str, 『22sss22sss22sss』))
用法二在包含分組的正則中可以同通過\n來重複前面第n個分組匹配到的內容
用法三:捕獲(只針對findall)
re_str = r』name:』
print(findall(re_str, 『tel:23768, name:xiaoming, age:18歲,id:27237486; tel:72891, name:張三, age:67歲, id:23479782』))
分支 – |
re_str = 『abc\d|abc[a-z]』
print(fullmatch(re_str, 『abcfkj』))
re_str = 『abc(\d|[a-z])』
print(fullmatch(re_str, 『abcaaa』))
with open(『data.txt』, 『r』, encoding=『utf-8』) as f:
s = f.read()
re_str = 『「provincename」?".+?")』
result = findall(re_str, s)
print(result)
轉義符號
import array
正則的轉義符號:在具有特殊功能或者特殊意義的符號前加,讓符號原來的意義消失,表示符號本身
在具有特殊功能或者特殊意義的符號放在裡面,
對用的功能會自動消失,例如+、?+、*、$、| 等、^(不放在最前面)
day15正規表示式作業
1.使用者名稱匹配 要求 1.使用者名稱只能包含數字 字母 下劃線 2.不能以數字開頭 3.度在 6 到 16 位範圍內 from re import fullmatch user name input 請輸入使用者名稱 user name1 r a za z 0 9a za z result fu...
day15正規表示式作業
1.使用者名稱匹配 要求 1.使用者名稱只能包含數字 字母 下劃線 2.不能以數字開頭 3.度在 6 到 16 位範圍內 from re import fullmatch re str r a za z 1 9a za z print fullmatch re str,a234455 密碼匹配 要求...
day15正規表示式作業
1.使用者名稱匹配 要求 1.使用者名稱只能包含數字 字母 下劃線 2.不能以數字開頭 3.度在 6 到 16 位範圍內 user name input 請輸入使用者名稱 re str r a za z a za z d result fullmatch re str,user name print...