□ PhoneBook Project
□ 아래의 기능이 포함된 함수를 생성하기
○ 조건 1 : 전화번호부 확인
○ 조건 2 : 전화번호 멤버 추가
○ 조건 3 : 전화번호부 멤버 삭제
○ 조건 4 : 프로그램 종류
○ 조건 5 : 전화번호 전체 데이터는 아래와 같은 형식으로 작성
○ 조건 6 : 파일쓰기, 읽기 기능 추가
□ 활용함수
○ def 함수정의
○ 반복문(for/While문)
○ input() 함수
○ .split() 함수
○ 변수명[키값].get(value) → 아래 형식과 같이 딕셔너리 안에 키와 딕셔너리형태의 벨류로 구성되어 있는 경우
phoneBook = {
0: {'Name' : 'Kim', 'Phone' : '78945612'},
1: {'Name' : 'Lee', 'Phone' : '36485612'},
2: {'Name' : 'Park', 'Phone' : '35715612'},
3: {'Name' : 'Chung', 'Phone' : '02585612'},
4: {'Name' : 'Choi', 'Phone' : '12345612'}
}
#조회 함수정의
def read_phoneBook(all_data):
#폰북에 키값 및 키별 벨류 추출
for pid in all_data:
print('\nPID : ', pid +1)
for p_info in all_data[pid]: #키별 벨류 반복하여 출력
print(p_info + ':', all_data[pid][p_info])
#삽입 함수정의
def add_phoneBook(all_data):
#값 추가
new_contact = input('성(영문/앞글자만 대문자), 번호 8자리 입력해주시고 구분은 ,로해주세요')
if ',' in new_contact: # , 구분을 통한 값입력을 받기위해 조건문 설정
new_contact_Name = new_contact.split(',')[0] # 입력받은 값을 , 기준으로 앞에는 성으로 지정
new_contact_Num = new_contact.split(',')[1] # 입력받은 값을 , 기준으로 뒤에는 번호로 지정
#중복방지를 위해 설정
new_contact_Num_check = False #새로운 번호 False 설정
for pid in all_data:
if new_contact_Num == all_data[pid].get('Phone'): #pid별 번호가 입력번호와 중복되면 True로 설정되며 True시 문구 출력
new_contact_Num_check = True
if new_contact_Num_check is True:
print('\n 입력하신 번호가 중복됩니다.')
else:
all_data[len(all_data)] = {'Name' : new_contact_Name, 'Phone' : new_contact_Num}
print(f'신규 연락처가 추가되었습니다.\n{new_contact_Name}\n{new_contact_Num}')
elif ',' not in new_contact:
print(',로 구분해주세요')
#삭제 함수
def del_phoneBokk(all_data):
del_name = input('삭제하실 연락처 성을 기재하세요')
for pid in all_data:
if del_name == all_data[pid].get('Name'): #키값(pid)에서의 .get() 함수로 벨류
del all_data[pid]
print(f'\n{del_name}가 삭제되었습니다.')
return all_data
print('\n입력하신 성을 가진 연락처가 없습니다.')
#기능 분류 함수정의
def contact_point():
print('>>>>> 연락처 기능 <<<<<\n 1. 연락처 조회\n 2. 신규 연락처 추가\n 3. 연락처 삭제\n 4. 기능 종료\n=========================')
#기능을 종료하기전까지 지속진행되도록 while True문 설정
while True:
choice_num = int(input('사용하실 기능을 선택해주세요*숫자 한자리 입력해주세요.'))
#1번 선택
if choice_num == 1:
print('연락처 조회 기능을 선택하셨습니다.\n')
read_phoneBook(phoneBook)
#2번 선택
elif choice_num == 2:
print('신규 연락처 추가를 선택하셨습니다. 연락처를 입력해주세요.\n')
add_phoneBook(phoneBook)
#3번 선택
elif choice_num == 3:
print('연락처 삭제 기능을 선택하셨습니다.\n')
del_phoneBokk(phoneBook)
#4번 선택
elif choice_num == 4:
print('기능사용 종료를 선택하셨습니다. 다음에 또봐요')
break
#예외 처리
else :
print('\n 잘못된 번호를 기재하셨습니다.')
#함수실행
contact_point()
'Python > Python_basic' 카테고리의 다른 글
문자열 함수 (0) | 2023.11.27 |
---|---|
데이터 타입 + Input함수 예제 (1) | 2023.11.27 |
예제 : 파일 C.R.U 기능 함수생성 (2) | 2023.11.17 |
recursive 파일 확장자 별 처리 예제 (0) | 2023.11.16 |
파일 확장자 별 처리 예제 (0) | 2023.11.16 |