Python字串 集合練習 密碼校驗

2022-06-06 14:27:10 字數 1828 閱讀 2430

校驗密碼是否合法:

1、輸入乙個密碼要求長度在5-10位:len()

2、密碼裡面必須包含:大寫字母,小寫字母和數字:字串方法或者集合

3、最多輸入5次:for

用字串方法實現:

for i in range(5):

passwd = input('請輸入你的密碼')

num = 0 #初始化需要放在迴圈裡,每次輸入密碼都需要重新初始化

lower = 0

upper =0

if len(passwd)>4 and len(passwd) <11: #判斷密碼長度在5-10位

for pwd in passwd: #迴圈字串中的字元

if pwd.isdigit(): #字元是否是數字

num += 1

elif pwd.islower(): #字元是否是小寫字母

lower += 1

elif pwd.isupper(): #字元是否是大寫字母

upper += 1

if num and lower and upper: #若數字、大寫及小寫均為真,則滿足密碼包含大小寫字母和數字

print('密碼輸入成功')

else:

print('密碼必須包含大小寫字母及數字')

else:

print('密碼長度必須在5-10位')

用isdisjoint()集合方法實現:

num =  #定義數字集合,因為輸入的密碼為字串,所以要將數字定義為string型別

lower = #定義小寫字母集合

upper = #定義大寫字母集合

for i in range(5):

passwd = input('請輸入你的密碼')

pwd = set(passwd) #將字串轉化為集合

if len(passwd) >4 and len(passwd)<11: #判斷密碼長度在5-10位

if pwd.isdisjoint(num) or pwd.isdisjoint(lower) or pwd.isdisjoint(upper): #判斷是否沒有交集

#若輸入密碼集合與數字、小寫、大寫集合任何乙個沒有交集,則不滿足密碼包含大小寫字母和數字

print('密碼裡面必須包含大小寫字母及數字')

else:

print('密碼輸入成功')

break

else:

print('密碼長度必須在5-10位')

用交集實現

import string

num_set=set(string.digits)

upper_set = set(string.ascii_uppercase)

lower_set = set(string.ascii_uppercase)

pun = set(string.punctuation)

for i in range(5):

passwd = input('請輸入密碼')

pwd = set(passwd) #將字串轉化為集合

if len(passwd) > 4 and len(passwd) < 11:

if pwd & num_set and pwd & upper_set and pwd & lower_set and pwd & pun:

print('密碼合法')

break

else:

print('密碼必須包含大小寫字母和數字')

else:

print('密碼長度必須在5-10位')

Python字串練習

python mystr hello world and dgjfkhgj title 返回乙個首字母大寫的字串 print mystr.title capitalize 返回第乙個首字母大寫的字串 print mystr.capitalize upper 返回全部大寫 print mystr.up...

python 字串練習

name gouguoq 移除name變數對應值的兩邊的空格,並輸出移除後的內容 print name.strip 判斷name變數對應的值是否以 go 開頭,並輸出結果 print name.startswith go 判斷name變數對應的值是否以 q 結尾,並輸出結果 print name.e...

Python字串練習

取得校園新聞的編號 方法一 s s 14 5 方法二 s s.rstrip html 9 方法三 s s.rstrip html split 1 截圖 產生python文件的 addr1 addr2 html addr addr1 addr2 print addr 產生校園新聞的一系列新聞頁 for...