1.生成9位字母的密碼
使用random.choice函式,此函式需要乙個序列,因此給定乙個序列包含a-z,a-z
#step1:生成序列
import
random
s1=''
for i in range(97,123):
s1+=chr(i)+chr(i-32)
#step2: 生成密碼
password=''
for i in range(9):
password+=random.choice(s1)#
從s1序列中隨機選取乙個元素
print('
9位數的密碼為:
',password)
2:生成9位數字和字母的密碼,密碼可能隨機出現數字和字母
此題在上一題的基礎上先生成乙個序列包含所有字母和數字,然後使用random.choice()函式
importrandom
s1=''
for i in range(97,123):
s1+=chr(i)+chr(i-32)
s1+='
0123456789
(s1)
#生成包含小寫字母和數字的序列
#另外乙個寫法
import
string
s1 = string.ascii_letters+string.digits
password=''
for i in range(9):
password+=random.choice(s1)
print('
隨機密碼為:
',password)
3.檢測密碼強度
c1 : 長度》=8
c2: 包含數字和字母
c3: 其他可見的特殊字元
強密碼條件:滿足c1,c2,c3
中密碼條件: 只滿足任一2個條件
弱密碼條件:只滿足任一1個或0個條件
思路:先將c1,c2,c3三個條件寫成函式,以ture和false返回,true為滿足,false為不滿足
step1.寫出3個條件函式
defcheck_len(password):
if len(password)>=8:
return
true
#長度大於8則為true
else
:
return
false
defcheck_letter_type(password):
import
string
result =false
for i in
string.ascii_letters:
#大小寫字母
if i in
password:
#密碼中包含字母
for j in
string.digits:#數字
if j in
password:
#密碼中包含數字
result =true
return
result
defcheck_punctuation(password):
import
string
result =false
for i in
string.punctuation:
if i in
password:
#密碼中包含特殊字元
result =true
return result
check_len檢查密碼長度,check_letter_type檢查密碼中是否包含字母和數字,check_punctuation檢查密碼中是否包含特殊字元
step2:檢查密碼滿足幾個條件
defpass_verify(password):
count =0
#使用count來記錄password滿足幾個條件
ifcheck_len(password):
count +=1
ifcheck_letter_type(password):
count +=1
ifcheck_punctuation(password):
count +=1
if count==3:
print("
強密碼"
)
elif count ==2:
print('
中密碼'
)
else
:
print('
弱密碼'
)pass_verify(password)
Python3生成密碼
使用python3實現簡單的密碼生成功能,隨機且隨意。這裡只是乙個簡單的例子,有必要的話可以深入研究一下。time 2019 9 12 18 24 author 統哥哥 file password generato.py software pycharm import string import r...
22 生成括號
n n組括號,括號字串長度為2n2n 字串中的每個字元有兩種選擇可能,或 故有22n 2 22 n種可能。分析 1 我們定義兩個變數left和right分別表示剩餘左右括號的個數,如果在某次遞迴時,左括號的個數大於右括號的個數,說明此時生成的字串中右括號的個數大於左括號的個數,即會出現 或者 這樣的...
數學 3 生成函式
生成函式是乙個比較複雜且廣泛的數學知識點,應當重點學習 首先給出一些運算公式,方便以後學習使用 texttt begin alpha f z beta g z sum alpha f n beta g n z n z mg z sum ng z n m geq0 fracz sum g z n m ...