一、實驗目的和要求
目的:
①了解字串編碼規則
②掌握字串索引
③掌握字串操作
④掌握正規表示式
二、 實驗資料記錄、處理及結果分析
(1)上課練習題,檢查字串是否合法,長度8-16位,支援大小寫
當輸入內容為helloworld#123764356788時:
當輸入內容為helloworld#6788時:
程式段為:
import re
defchecklen
(pwd)
:return
len(pwd)
>=
8and
len(pwd)
<=
16def
checkcontainupper
(pwd)
: pattern = re.
compile
('[a-z]+'
) match = pattern.findall(pwd)
if match:
return
true
else
:return
false
defcheckcontainnum
(pwd)
: pattern = re.
compile
('[0-9]+'
) match = pattern.findall(pwd)
if match:
return
true
else
:return
false
defcheckcontainlower
(pwd)
: pattern = re.
compile
('[a-z]+'
) match = pattern.findall(pwd)
if match:
return
true
else
:return
false
defchecksymbol
(pwd)
: pattern = re.
compile
('([^a-z0-9a-z])+'
) match = pattern.findall(pwd)
if match:
return
true
else
:return
false
defcheckpassword
(pwd)
:#判斷密碼長度是否合法
lenok=checklen(pwd)
#判斷是否包含大寫字母
upperok=checkcontainupper(pwd)
#判斷是否包含小寫字母
lowerok=checkcontainlower(pwd)
#判斷是否包含數字
numok=checkcontainnum(pwd)
#判斷是否包含符號
symbolok=checksymbol(pwd)
print
(lenok)
print
(upperok)
print
(lowerok)
print
(numok)
print
(symbolok)
return
(lenok and upperok and lowerok and numok and symbolok)
defmain()
:if checkpassword(
'helloworld#6788'):
#輸入內容
print
('檢測通過'
)else
:print
('檢測未通過'
)if __name__ ==
'__main__'
: main(
)
(2)寫出程式的執行結果。
(3)下面是列印圖實驗6-1所示的金字塔圖案的程式,請補充程式。
(4)利用正規表示式判斷字串是否只有小寫字母或數字。
import re
s='1234hjijsbdvysic'
if re.match(
'^[0-9a-z]+$'
,s):
print
('符合要求'
)else
:print
('不符合要求'
)
當s等於12345abc時:
當s等於1234hjijsbdvysic時:
因為並沒有對字串設定長度,所以依然是符合要求。
三、討論、心得
報錯:
修改後正確。
心得體會:
compile是乙個語法錯誤的正規表示式的時候,其實可以得到詳細的錯誤提示。python中re模組的debug flag可以幫助我們快速檢查自己所寫的正則中的錯誤。
Python 字串與正規表示式
alist list range 1 1001 blist list map str alist cstr join blist dstr cstr str sum range 1 1001 print dstr open text.txt w write dstr import os print ...
字串與正規表示式
一.字串 1.格式化浮點數字 f 1.25 輸出 1.250000 預設輸出小數點後的6位數字 2f 1.25 輸出 1.25 精確到小數點後兩位 2.字串與日期的轉換 例 import time,datetime time.strftime y m d x time.localtime t tim...
python 字串匹配與正規表示式
這個方法將從string的pos下標處起嘗試匹配pattern 如果pattern結束時仍可匹配,則返回乙個match物件 如果匹配過程中pattern無法匹配,或者匹配未結束就已到達endpos,則返回none。pos和endpos的預設值分別為0和len string re.match 無法指定...