본문 바로가기

사이버보안 3학년 1학기/파이썬 프로그래밍

간단한 전화번호부(PhoneBook.py) (디렉토리 연습예제)

파이참에서 파이썬3.x 을 사용했다.


import time
phonebook = {'김성웅':'010-2342-2323', '홍길동':'010-5463-7008'} # 전화번호부 초기화
while True:
print("주소록 프로그램 v2.0\n "
"┌────────────┐\n"
" 1. 주소록 입력 \n"
" 2. 주소록 삭제 \n"
" 3. 주소록 검색 \n"
" 4. 전체 주소록 출력 \n"
" 0. 프로그램 종료 \n "
"└────────────┘")
print("현재 시간",time.strftime('%p %I : %M : %S', time.localtime(time.time())))
number_run1 = int(input("숫자를 입력해주세요, (0-4): "))
if number_run1 == 1: # 주소록 입력 메뉴
while True:
i = 0 # 입력횟수 반복 변수
print("\n주소록 입력 메뉴입니다. 돌아가려면 입력할 횟수에 b를 넣어주세요.")
print("예제) 입력횟수:1 이름:파이썬 전화번호:010-1234-5678 \n"
"- 가 없으면 에러가 발생합니다.")
add_number = input("입력할 횟수: ")
if add_number == 'b': # 메인으로 돌아가기
break
elif add_number >= '1': # 1 이상이면 실행
add_number = int(add_number)
for i in range(i, add_number): # 입력 횟수까지 i 를 반복함.
i += 1
add_name = input("이름을 입력해주세요: ")
add_phone = input("전화번호를 입력해주세요: ")
add_phone_list = list(add_phone.split(sep="-")) #길이 검사용 리스트
if add_phone.count("-") != 2:
print("- 가 부족하거나 많습니다! 다시 입력해주세요.\n")
elif len(add_phone_list[0]) > 3 or len(add_phone_list[0]) < 2 or len(add_phone_list[1]) > 4 or len(add_phone_list[1]) < 3 or len(add_phone_list[2]) > 4 or len(add_phone_list[2]) < 3:
print("전화번호 입력 오류! 추가할 수 없습니다.")
else:
phonebook.update({add_name:add_phone})
print(phonebook)
else:
print("입력값이 틀렸습니다. 다시 입력해주세요.")
elif number_run1 == 2: # 주소록 삭제 메뉴
while True:
print("주소록 삭제 메뉴입니다. 돌아가려면 입력값에 b를 넣어주세요.")
del_name = input("삭제할 이름을 입력해주세요(전체는 1): ")
if del_name == 'b': # 메인으로 돌아가기
break
elif del_name == '1':
phonebook.clear()
phonebook = {'김성웅':'010-2342-2323', '홍길동':'010-5463-7008'} # 기본 전화번호부 데이터
print(phonebook)
else:
phonebook.pop(del_name, None)
print(phonebook)
elif number_run1 == 3: # 주소록 검색 메뉴
back = 0
while True:
if back == 1:
break # While문 탈출
search_string = input("검색할 문자열을 입력하세요(돌아가기는 b): ")
for key, value in phonebook.items():
if search_string == "b":
back = 1
break # for문 탈출
elif key.find(search_string) >= 0:
print("┌────────────┐\n"
" 이름: ",key,"\n"
" 전화번호: ",value,"\n"
"└────────────┘")
elif value.find(search_string) >= 0:
print("┌────────────┐\n"
" 이름: ",key,"\n"
" 전화번호: ",value,"\n"
"└────────────┘")
elif number_run1 == 4: # 주소록 전체 출력 메뉴
while True:
print("주소록 전체 출력 메뉴입니다.")
p_phonebook = input("전체 출력하시겠습니까? (Y/N): ")
p_phonebook = p_phonebook.upper()
if p_phonebook == "Y":
for key, value in phonebook.items():
print("┌────────────┐\n"
" 이름: ",key,"\n"
" 전화번호: ",value,"\n"
"└────────────┘")
elif p_phonebook == "N": # 메인으로 돌아가기
print("뒤로 돌아갑니다.")
break
else:
print("입력값이 틀렸습니다. 다시 입력해주세요.")
elif number_run1 == 5:
print("┌────────────┐\n"
" 버 전: 2.0\n"
" 개발자: 김성웅\n"
" 수정일: 2016-03-16\n"
"└────────────┘")
input("넘어가려면 아무 키나 입력하세요.")
elif number_run1 == 0: # 프로그램 종료
print("프로그램을 종료합니다.")
break
else:
print("입력값이 틀렸습니다. 다시 입력해주세요.")