goodthings4me.tistory.com
■ re.findall() 이용
import re
def passwordCheck(pwd):
if len(pwd) < 8 or len(pwd) > 21 and not re.findall('[0-9]+', pwd) and not \
re.findall('[a-z]', pwd) or not re.findall('[A-Z]', pwd):
print('비밀번호 기준(숫자, 영문 대소문자 구성)에 맞지 않습니다.')
return False
elif not re.findall('[`~!@#$%^&*(),<.>/?]+', pwd):
#elif re.search('[`~!@#$%^&*(),<.>/?]+', pwd) is None: # 이 방법도 있음
print('비밀번호는 최소 1개 이상의 특수문자가 포함되어야 함')
return False
print('비밀번호의 길이, 숫자, 영문자 등 유효함!!')
return True
pwd = '112345678qQ!'
passwordCheck(pwd)
[실행 결과]
비밀번호의 길이, 숫자, 영문자 등 유효함!!
※ findall()은 정규식과 매칭되는 문자열을 리스트로 반환한다.
※ search()는 문자열 전체를 검색하여 정규식과 매칭되는지 검사한다.
■ re.search() 이용
import re
def passwordValidation(pwd):
if len(pwd) < 8:
print('비밀번호는 최소 8자 이상이어야 함')
return False
elif re.search('[0-9]+', pwd) is None:
print('비밀번호는 최소 1개 이상의 숫자가 포함되어야 함')
return False
elif re.search('[a-zA-Z]+', pwd) is None:
print('비밀번호는 최소 1개 이상의 영문 대소문자가 포함되어야 함')
return False
elif re.search('[`~!@#$%^&*(),<.>/?]+', pwd) is None:
print('비밀번호는 최소 1개 이상의 특수문자가 포함되어야 함')
return False
else:
print('비밀번호 기준에 적합합니다.')
return True
passwd = 'a123456789#'
passwordValidation(passwd)
[실행 결과]
비밀번호 기준에 적합합니다.
■ 특수문자를 리스트 객체로 생성한 후 체크하도록 하는 방법
import re
def pwdValidation(pwd):
special_char = ['`', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(',\
')', ',', '<', '.', '>', '/', '?', '[', ']', '{', '}']
if len(pwd) < 8:
print('비밀번호는 최소 8자 이상이어야 함')
return False
elif re.search('[0-9]+', pwd) is None:
print('비밀번호는 최소 1개 이상의 숫자가 포함되어야 함')
return False
elif re.search('[a-z]+', pwd) is None or re.search('[A-Z]+', pwd) is None:
print('비밀번호는 최소 1개 이상의 영문 대소문자가 포함되어야 함')
return False
elif not any(c in special_char for c in pwd):
print('비밀번호는 최소 1개 이상의 특수문자가 포함되어야 함')
return False
else:
print('비밀번호 기준에 적합합니다.')
return True
password = '12345678aQ'
pwdValidation(password)
[실행 결과]
비밀번호는 최소 1개 이상의 특수문자가 포함되어야 함
※ not any(c in special_char for c in pwd)
# any()는 iterable 객체를 인수로 받고, 인수 중 하나라도 참이 있으면 True 반환(인수 모두 거짓일 때에만 False 반환)
# all()은 iterable 객체를 인수로 받고, 인수가 모두 참이면 True 반환, 거짓이 하나라도 있으면 False 반환
print(all([1, 2, 3, 0])) # False
print(any([1, 2, 3, 0])) # True
블로그 인기글
폐업 신고 절차와 부가가치세 신고하는 방법
폐업 신고 시 세무서 안 가고 온라인으로 신고하는 방법인 '국세청 홈택스를 이용하여 폐업 신고하는 절차와 폐업 후 해야 하는 부가가치세 신고, 인건비 저리, 종합소득세 신고 등에 대해 포스팅합니다. 폐업 신고 시 홈택스 이용하는 방법과 부가가치세 등 신고 절차 여러가지 사유로 폐업을 해야 할 때, 예전에는 세무서를 방문해야 했지만 국세청 홈택스가 생긴 이후에는 사업자 등록이나 폐업 등을 인터넷으로 할 수가 있게 되었습니다. 특히, 코로나 시국인 요즘은 더더욱 온라인 신청 업무가 더 활성화되었죠. 폐업을 한다는 것 자체가 우울한 일인데, 발품을 파는 것보다는 커피 한잔 하면서 인터넷으로 간단하게 처리하는 게 좋을 듯하여 그 절차를 올려봅니다. 폐업은 폐업 신고와 함께 폐업 후 절차까지 모두 마쳐야 불이익이..
goodthings4me.tistory.com
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
[엑셀] 근무연수 및 근무 개월수 계산하는 함수
직장을 다니다 보면 몇 년 몇 개월 또는 전체 며칠을 다니고 있는지 궁금할 때가 있다. 아니면, 총무나 인사 일을 할 때 직원들의 근속연수 또는 근속개월수 등을 계산하고 싶을 때도 있다. 이런 경우 엑셀 함수를 활용하면 어떨까!! 근무연수 및 근무 개월수 계산 함수 알아보기 엑셀에서 근무연수 또는 근무 개월수 계산하는 것은 datedif() 함수를 사용하면 간단하게 해결할 수 있다. 아래 이미지를 보면서 설명하면, 셀 E1에 기준일자를 입력하고, 근무연수를 구할 때는 =datedif(B3,$E$1,"Y")&"년" 을 입력한다. 근무개월수는 =datedif(B3,$E$1,"M")&"개월" 처럼 입력한다. 일수까지 파악할 때문 별로 없지만, 심심풀이로 구해보고 싶을 때 =datedif(B3,$E$1,"D")..
goodthings4me.tistory.com
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] 파이썬 정규 표현식 (regular expression) (0) | 2020.09.27 |
---|---|
[python] 파이썬 문자열 관련 함수들 (0) | 2020.09.27 |
[python] 파이썬 datetime() 함수로 살아온 연월일 계산하기(코딩 연습) (0) | 2020.09.23 |
[django] 파이썬 Django(장고) 템플릿 문법 (0) | 2020.09.22 |
[python] 파이썬 스페셜 메소드 (Special Method) 사용 예제 (0) | 2020.09.22 |
댓글