입력 한 비밀번호가 8 자 이상인지, 대문자와 소문자, 숫자가 있는지 확인하는 비밀번호 검사기로 시도하는 코드를 만들었습니다. 그러나 사용자에게 암호에서 누락 된 부분을 알려주는 오류 메시지 (예 : "최소 한 개의 소문자를 포함하십시오")를 표시하려고하면 오류가 표시되지 않습니다!
def passChecker():
global errorMsg
errorMsg=0
valid=False
while valid==False:
pass_=input("Please create a password:\n")
if len(pass_)>=8 and len(pass_)<=20 and valid==False:
for i in pass_:
if i==i.lower() and valid==False:
for i in pass_:
if i==i.upper() and valid==False:
for i in pass_:
if i.isdigit() and valid==False:
print("Password is valid.")
valid=True
break
if valid==False:
errorMsg==4
else:
errorMsg==3
else:
errorMsg==2
else:
errorMsg==1
passChecker()
if errorMsg==1:
print("Please ensure your password is more than 8 characters long")
if errorMsg==2:
print("Please ensure your password contains at least one lower case letter")
if errorMsg==3:
print("Please ensure your password contains at least one upper case letter")
if errorMsg==4:
print("Please ensure your password contains at least one digit")
"Password"를 입력하면 "Please create a password"가 표시됩니다.
"password"를 입력하면 "Please create a password"가 표시됩니다.
"Password1"을 입력하면 "Password is valid"가 표시되고 코드가 종료됩니다 (정확함) *
"password1"을 입력하면 "Password is valid"가 표시됩니다 (맞지 않음) **
* 모든 조건 충족 ** "대문자 필요"조건을 충족하지 않음
사전에 도움을 주셔서 감사합니다 :)
다음은 오류 코드를 함수의 반환 값으로 사용하는 권장 버전입니다.
다양한 유형의 문자가 포함되어 있는지 확인할 때 순서에 관계없이 작동해야합니다. 쉬운 방법 (확실히 많은 대안이 있지만)은 문자를 찾을 때 설정하는 부울 변수를 갖는 것입니다. 필요한 유형의. 참고 i == i.lower()
그것은 또한 evalutates 때문에, 소문자에 대한 정확한 테스트를하지 True
않은 문자에 대한; 사용 i.islower()
-및 유사하게 어퍼.
def passChecker():
pass_ = input("Please create a password:\n")
if len(pass_) < 8 or len(pass_) > 20:
return 1
has_lower = has_upper = has_digit = False
for i in pass_:
if i.islower():
has_lower = True
elif i.isupper():
has_upper = True
elif i.isdigit():
has_digit = True
if not has_lower:
return 2
if not has_upper:
return 3
if not has_digit:
return 4
print("Password is valid.")
return 0
errorCode = passChecker()
if errorCode == 1:
print("Please ensure your password is between 8 and 20 characters long")
elif errorCode == 2:
print("Please ensure your password contains at least one lower case letter")
elif errorCode == 3:
print("Please ensure your password contains at least one upper case letter")
elif errorCode == 4:
print("Please ensure your password contains at least one digit")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다