7.18.1 強口令檢測
寫乙個函式,它使用正規表示式,確保傳入的口令字串是強口令。強口令的定義是:長度不少於 8 個字元,同時包含大寫和小寫字元,至少有一位數字。你可能需要用多個正規表示式來測試該字串,以保證它的強度。
import re
text = str(input('輸入一串口令:'))
def checkpw(text):
flag = true
if len(text) < 8:
flag = false
chpwregex1 = re.compile(r'[a-z]')
chpwregex2 = re.compile(r'[a-z]')
chpwregex3 = re.compile(r'[0-9]')
if(chpwregex1.search(text)==none) or (chpwregex2.search(text)==none) or (chpwregex3.search(text)==none):
flag = false
if flag:
print('正確')
else:
print('錯誤')
checkpw(text)
輸入一串口令:fghjkltyui67
錯誤輸入一串口令:gjutghiyg678
正確
7.18.2 strip()的正規表示式版本
寫乙個函式,它接受乙個字串,做的事情和 strip()字串方法一樣。如果只傳入了要去除的字串, 沒有其他引數, 那麼就從該字串首尾去除空白字元。否則, 函式第二個引數指定的字元將從該字串中去除。
import re
def re_strip(text, chars=none):
if chars is none:
re_stripregex = re.compile(r'^ *| *$')
else:
re_stripregex = re.compile(r'^['+ chars + ']*|[' + chars +']*$')
'''的作用是某幾個的範圍 [abcd]
'''return re_stripregex.sub('',text)
print(re_strip(' 123456 ')) # 123456
print(re_strip(' 123456')) # 123456
print(re_strip(' 123456 ')) # 123456
print(re_strip('123456 654321')) # 123456 654321
print(re_strip('123456 654321', '1')) # 23456 65432
print(re_strip('423456 654321', '1234')) # 56 65
print(re_strip('123456 654321', '1234')) # 56 65
print(re_strip('123456 654321', '124')) # 3456 6543
123456
123456
123456
123456 654321
23456 65432
56 65
56 65
3456 6543
spam = 'spamspambftyuyuispamgyuguyspamspam'
spam.strip('amps')
'bftyuyuispamgyuguy'
向strip()方法傳入引數'amps',告訴它在變數中儲存的字串兩端,刪除出現的a、m、p和大寫的s。傳入strip()方法的字串中,字元的順序並不重要:strip('amps')做的事情和strip('maps')或strip('spam')一樣。故在re_stripregex = re.compile(r'^['+ chars + ']*|[' + chars +']*$')中需要用到中括號。
1.某個區間內 如 [a-za-z0-9]
2.某幾個的範圍 [abcd]
3.可以在中括號中進行取非的操作. [^a]
4.在中括號中的字元不再有特殊的含義 如經常匹配全部的 .和* [.][*]
python實踐專案(四)
練習1 好玩遊戲的物品清單 意味著玩家有 1 條繩索 6 個火把 42 枚金幣等。寫乙個名為 displayinventory 的函式,它接受任何可能的物品清單,並顯示如下 inventory 12 arrow 42 gold coin 1 rope 6 torch 1 dagger total n...
python實踐專案(十)
除錯硬幣拋擲 下面程式的意圖是乙個簡單的硬幣拋擲猜測遊戲。玩家有兩次猜測機會 這是乙個簡單的遊戲 但是,程式中有一些缺陷。讓程式執行幾次,找出缺陷,使該程式能正確執行。import random guess while guess not in heads tails print guess the...
Python技術專案實踐
用這個python庫,訓練你的模型成為下乙個街頭霸王!從世界矚目的圍棋遊戲 alphago,近年來,強化學習在遊戲領域裡不斷取得十分引人注目的成績。自此之後,棋牌遊戲 射擊遊戲 電子競技遊戲,如 atari 超級馬里奧 星際爭霸到 dota 都不斷取得了突破和進展,成為熱門的研究領域。今天為大家介紹...