티스토리 뷰

지금까지 배운 내용을 복습하기 위한 퀴즈를 드리겠습니다. 직접 한 번 풀어보시고 나서 정답을 확인해주세요.

Quiz) 사이트 별로 비밀번호를 만들어주는 프로그램을 작성하시오.

예) http://naver.com
규칙1 : http:// 부분은 제외 → naver.com
규칙2 : 처음 만나는 점(.) 이후 부분은 제외 naver
규칙3 : 남은 글자 중 처음 세 자리 + 글자 갯수 + 글자 내 'e'의 갯수 + '!'로 구성
                       (nav)                      (5)                   (1)             (!)

예) 생성된 비밀번호 : nav51!

 

프로그램을 실행했을 때 나와야 하는 출력값은 다음과 같습니다.

http://naver.com 일 때
 → nav51!

http://daum.net 일 때
 → dau40!

http://google.com 일 때
 → goo61!

http://youtube.com 일 때
 → you71!

 

▼ 해설 보기

더보기

이번 퀴즈는 문자열 처리 함수와 슬라이싱을 활용하여 풀 수 있습니다.

url = "http://naver.com"
# url = "http://daum.net"
# url = "http://google.com"
# url = "http://youtube.com"

my_str = url.replace("http://", "") # 규칙 1

my_str = my_str[:my_str.index(".")] # 규칙 2
# naver.com 일 때 my_str.index(".") 의 결과는 5 이므로 위 문장은
# my_str = mystr[0:5] 와 같음

password = my_str[:3] + str(len(my_str)) + str(my_str.count("e")) + "!" # 규칙 3

print("{0} 의 비밀번호는 {1} 입니다.".format(url, password))

규칙 1 을 적용하기 위해 replace() 함수를 이용하여 입력받은 url 값 중에서 "http://" 부분을 "" 로 변경해줍니다. 이 때 변경한 값을 다시 my_str 에 꼭 집어넣어주셔야 변경된 값이 반영이 됩니다.

 

규칙 2 를 적용하기 위해 우선 점(.) 을 찾아야겠네요. index() 를 이용할 수 있겠습니다. 

my_str.index(".") 을 하면 처음으로 발견되는 점(.) 의 위치 정보를 알 수 있고, 문자열의 처음 위치로부터 점(.) 의 위치 직전까지를 슬라이싱할 수 있습니다. 

 

규칙 3 에서 남은 글자 중 처음 세 자리는 슬라이싱을 통해 my_str[:3] 을 하면 되고, 글자 갯수는 len() 함수를 이용합니다. 글자 내 'e' 의 갯수는 count() 를 이용하고, 마지막으로 느낌표를 더해주면 되겠네요. 주의할 점은 하나의 문자열로 만드는 과정이므로 정수형 값을 반환해주는 len() 함수와 count() 함수는 반드시 str() 으로 감싸서 문자열로 바꾼 후에 모두를 + 연산자를 이용해서 더해주면 됩니다.

 

이렇게 해서 홈페이지 url 마다 서로 다른 비밀번호를 자동으로 만들어서, 더욱 안전하게 비밀번호를 관리할 수 있게 해주는 프로그램을 개발하였습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함