def is_password(password: str):
result = len(password)
if result <= 6:
return False
else:
return True
문자열의 길이를 result에 저장하여 길이가 7 이상인 값만 True를 반환한다.
def is_password(password: str):
result = len(password)
word = sorted(password)
if result <= 6:
return False
else:
for i in word:
if i.isdigit():
return True
return False
return False
7글자 이상이 아니라면 False를 반환하고 아니라면 word의변수에 password를 sorted한 값을 저장하여 첫번째 값이 숫자인지 판별하여 숫자면 True 아니면 False를 반환했다.
sorted를 사용하면 숫자가 문자보다 앞으로 오는것을 확인하고 sorted를 사용했다.
def is_password(password: str):
result = len(password)
word = sorted(password)
if result <= 6:
return False
else:
if password.isdigit():
return False
else:
for i in word:
if i.isdigit():
return True
return False
return False
return False
2번째 문제의 코드 사이에 password가 숫자로만 되어있는지 확인하는 isdigit()을 사용하여 숫자만 되어있으면 False를 반환하도록 하였다.
def is_password(password: str):
result = len(password)
word = list(password)
pass_replace = password.replace(' ','')
if result <= 6:
return False
else:
if password.isdigit() and len(word) < 8:
return False
else:
if password.isdigit() and len(word) > 8:
return True
else:
if password.isalpha() and len(word) > 8:
return True
password에 길이가 9글자 미만이고 숫자로만 되어있으면 False를 반환하고
9글자 이상이면 True를 반환하였고 isalpha를 사용하여 문자만 사용하였을때의 값을 구분하는 if문을 사용했다. 주어진 문제에서 변수를 선언해야 할 것들을 하나하나 쪼개어 작성을 하다보니 코드는 길어지지만, 이렇게 작성을하면 isdigit과 isalpha를 왜 사용하였는지에대해 누구나 알 수 있을것같다.
else:
word.sort()
for i in word:
if i.isdigit():
return True
else:
if len(pass_replace) > 8:
return True
else:
return False
return False
return False
return False
return False
return False
return False
그다음 전에 문제에 사용했을땐 sorted를 사용했지만 sort를 사용한 이유는 sorted는 str()에만 사용할 수 있고, sort는 list()에만 사용할 수 있어서 이다.
똑같이 숫자가 있으면 True를 반환한다. 공백을 제거하지 않은 코드를 사용했을때 'this is password'의 비밀번호는 에러가 났다. 공백의 존재를 알지 못했기때문이다. 공백을 사용하는 비밀번호는 없는걸로 알고있지만, 이 공백의 문제를 해결하기위해 먼저 공백을 제거한 값을 pass_replace에 저장하여 그 길이를 구해 9글자 이상일때는 True를 반환하게 하였다.