B1081 檢查密碼(python)

2021-10-05 09:47:28 字數 2640 閱讀 4349

1081 檢查密碼 (15分)

本題要求你幫助某**的使用者註冊模組寫乙個密碼合法性檢查的小功能。該**要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文本母、數字和小數點 .,還必須既有字母也有數字。

輸入格式:

輸入第一行給出乙個正整數 n(≤ 100),隨後 n 行,每行給出乙個使用者設定的密碼,為不超過 80 個字元的非空字串,以回車結束。

輸出格式:

對每個使用者的密碼,在一行中輸出系統反饋資訊,分以下5種:

如果密碼合法,輸出your password is wan mei.;

如果密碼太短,不論合法與否,都輸出your password is tai duan le.;

如果密碼長度合法,但存在不合法字元,則輸出your password is tai luan le.;

如果密碼長度合法,但只有字母沒有數字,則輸出your password needs shu zi.;

如果密碼長度合法,但只有數字沒有字母,則輸出your password needs zi mu.。

輸入樣例:

5123s

zheshi.wodepw

1234.5678

wanmei23333

pass*word.6

輸出樣例:

your password is tai duan le.

your password needs shu zi.

your password needs zi mu.

your password is wan mei.

your password is tai luan le.

version1:

三個測試點出錯……

分析:想直接通過布林運算 isdigit() isalpha() isalnum() 解決。首先對輸入列表進行排序,列表順序應當是:數字《大寫字母《小寫字母,這是沒問題的,我想出錯的原因就在於除去『.』的地方。因為 remove(x) 僅移除順序的第乙個x。

n =

int(

input()

)for i in

range

(n):

pwd =

list

(input()

)iflen(pwd)

<6:

# 太短

print

('your password is tai duan le.'

)continue

if'.'

in pwd:

# 去除'.'便於進行數字和字母的布林判斷

pwd.remove(

'.')

pwd.sort()if

not''

.join(pwd)

.isalnum():

print

('your password is tai luan le.'

)elif

not pwd[0]

.isdigit():

print

('your password needs shu zi.'

)elif

not pwd[-1

].isalpha():

print

('your password needs zi mu.'

)else

:print

('your password is wan mei.'

)

version2:

ac分析:先採用字串的形式儲存輸入,判斷長度合法性,然後去除『.』;然後再將其轉換為列表形式,排序後利用上述布林運算進行判斷即可~

注意:字串的 replace 方法返回修改後的字串,但不會原地修改原字串!

n =

int(

input()

)for i in

range

(n):

ls =

input()

iflen

(ls)

<6:

# 太短

print

('your password is tai duan le.'

)continue

if'.'

in ls:

# 去除'.'便於進行數字和字母的布林判斷

ls = ls.replace(

'.','')

pwd =

list

(ls)

pwd.sort()if

not''

.join(pwd)

.isalnum():

print

('your password is tai luan le.'

)elif

not pwd[0]

.isdigit():

print

('your password needs shu zi.'

)elif

not pwd[-1

].isalpha():

print

('your password needs zi mu.'

)else

:print

('your password is wan mei.'

)

B1081 檢查密碼 15 分

本題要求你幫助某 的使用者註冊模組寫乙個密碼合法性檢查的小功能。該 要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文本母 數字和小數點 還必須既有字母也有數字。輸入格式 輸入第一行給出乙個正整數 n 100 隨後 n 行,每行給出乙個使用者設定的密碼,為不超過 80 個字元的非空字串,以...

1081 檢查密碼

1081 檢查密碼 15 分 本題要求你幫助某 的使用者註冊模組寫乙個密碼合法性檢查的小功能。該 要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文本母 數字和小數點 還必須既有字母也有數字。輸入格式 輸入第一行給出乙個正整數 n 100 隨後 n 行,每行給出乙個使用者設定的密碼,為不超...

1081 檢查密碼

本題要求你幫助某 的使用者註冊模組寫乙個密碼合法性檢查的小功能。該 要求使用者設定的密碼必須由不少於6個字元組成,並且只能有英文本母 數字和小數點.還必須既有字母也有數字。輸入第一行給出乙個正整數 n 100 隨後 n 行,每行給出乙個使用者設定的密碼,為不超過 80 個字元的非空字串,以回車結束。...