TQC+ 程式語言Python 809 密碼規則
題目說明:
請撰寫一程式,要求使用者輸入一個密碼(字串),檢查此密碼是否符合規則。密碼規則如下:
a. 必須至少八個字元。
b. 只包含英文字母和數字。
c. 至少要有一個大寫英文字母。
d. 若符合上述三項規則,程式將顯示檢查結果為【Valid password】,否則顯示【Invalid password】。
a. 必須至少八個字元。
b. 只包含英文字母和數字。
c. 至少要有一個大寫英文字母。
d. 若符合上述三項規則,程式將顯示檢查結果為【Valid password】,否則顯示【Invalid password】。
範例輸入1
39Gfjkd98
範例輸出1
Valid password
範例輸入2
39dk8fh
範例輸出2
Invalid password
程式碼:
2022/05/07 更新
原本的程式碼,如果只輸入數字,輸出結果也是「Valid password」,不符合規則 C,因此新增兩種寫法,第一種與原本比較,多了一個判斷,判斷是否都是數字,第二種寫法為上述的簡化版,使用 isalnum() 方法代替 isalpha() 和 isdigit() 的判斷。
原本的寫法:
Str = input()
if len(Str) <= 7 or Str.islower():
print('Invalid password')
else:
for i in range(len(Str)):
if not Str[i].isalpha() and not Str[i].isdigit():
print('Invalid password')
break
else:
print('Valid password')
更新寫法一:
Str = input()
if len(Str) <= 7 or Str.islower():
print('Invalid password')
else:
if Str.isdigit():
print('Invalid password')
else:
for i in range(len(Str)):
if not Str[i].isalpha() and not Str[i].isdigit():
print('Invalid password')
break
else:
print('Valid password')
更新寫法二:
Str = input()
if len(Str) <= 7 or Str.islower() or Str.isdigit() or not Str.isalnum():
print('Invalid password')
else:
print('Valid password')
以上兩種寫法,沒有在評測系統測試過,所以不知道是否會通過測試,原本的寫法有通過~~
2 則留言
阿宅
上述建議答案程式碼輸入全數字也會過,不符合c. 至少要有一個大寫英文字母
JamesBang
沒錯!我剛剛只輸入數字也是 Valid password,當初寫好後傳到系統測試是輸出正確的,奇怪~~
感謝提醒