티스토리 뷰
지금까지 배운 내용을 복습하기 위한 퀴즈를 드리겠습니다. 직접 한 번 풀어보시고 나서 정답을 확인해주세요.
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 마다 서로 다른 비밀번호를 자동으로 만들어서, 더욱 안전하게 비밀번호를 관리할 수 있게 해주는 프로그램을 개발하였습니다.
'파이썬 강의 > 기본편' 카테고리의 다른 글
[파이썬 기본편] 5-2.사전 (0) | 2021.02.10 |
---|---|
[파이썬 기본편] 5-1.리스트 (0) | 2021.02.09 |
[파이썬 기본편] 4-5.탈출문자 (2) | 2021.02.07 |
[파이썬 기본편] 4-4.문자열포맷 (3) | 2021.02.06 |
[파이썬 기본편] 4-3.문자열처리함수 (1) | 2021.02.05 |
- Total
- Today
- Yesterday
- 비주얼 스튜디오 코드
- onlineclass
- game
- 파이썬
- pycharm
- coloso
- Visual Studio Code
- Xcode
- 챗GPT
- ChatGPT
- Coding
- 주피터노트북
- Mac
- 코랩
- Colab
- GUI
- 나도코딩
- Tkinter
- repl.it
- Unity
- 환경설정
- vscode
- 행맨
- 아나콘다
- 파이게임
- pygame
- c언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |