반응형
📞 전화번호부 프로그램이란?
전화번호부 프로그램은 친구와 가족의 이름, 전화번호를 저장하고 관리하는 프로그램입니다.
우리가 스마트폰 연락처 앱을 사용하는 것처럼 파이썬으로도 간단한 전화번호부를 만들 수 있습니다.
이번 프로젝트에서는 단순 저장뿐 아니라 실제 연락처 앱처럼 여러 기능을 만들어 봅니다.
📚 이번 시간에 배우는 내용
- 연락처 등록
- 연락처 검색
- 연락처 수정
- 연락처 삭제
- 연락처 파일 저장
- 연락처 파일 불러오기
🤔 왜 전화번호부가 필요할까요?
친구가 많아지면 전화번호를 모두 외우기 어렵습니다.
전화번호부 프로그램에 저장해 두면 언제든지 쉽게 찾을 수 있습니다.
예시
- 철수 : 010-1234-5678
- 영희 : 010-9876-5432
- 민수 : 010-1111-2222
1️⃣ 연락처 등록하기
사용자가 이름과 전화번호를 입력하면 전화번호부에 저장합니다.
phone_book = {}
name = input("이름 : ")
phone = input("전화번호 : ")
phone_book[name] = phone
print("저장 완료!")
실행 결과
이름 : 철수
전화번호 : 010-1234-5678
저장 완료!
2️⃣ 연락처 검색하기
이름을 입력하면 저장된 전화번호를 찾을 수 있습니다.
search_name = input("검색할 이름 : ")
if search_name in phone_book:
print(phone_book[search_name])
else:
print("연락처가 없습니다.")
실행 결과
검색할 이름 : 철수
010-1234-5678
3️⃣ 연락처 수정하기
전화번호가 바뀌었을 때 수정할 수 있습니다.
name = input("수정할 이름 : ")
if name in phone_book:
new_phone = input("새 전화번호 : ")
phone_book[name] = new_phone
print("수정 완료!")
else:
print("연락처가 없습니다.")
실행 결과
수정할 이름 : 철수
새 전화번호 : 010-9999-9999
수정 완료!
4️⃣ 연락처 삭제하기
필요 없는 연락처를 삭제할 수 있습니다.
name = input("삭제할 이름 : ")
if name in phone_book:
del phone_book[name]
print("삭제 완료!")
else:
print("연락처가 없습니다.")
실행 결과
삭제할 이름 : 철수
삭제 완료!
5️⃣ 연락처 파일 저장하기
프로그램을 종료해도 연락처가 사라지지 않도록 파일에 저장할 수 있습니다.
with open("phonebook.txt", "w", encoding="utf-8") as file:
for name, phone in phone_book.items():
file.write(f"{name},{phone}\n")
print("파일 저장 완료!")
생성 예시
철수,010-1234-5678
영희,010-9876-5432
민수,010-1111-2222
6️⃣ 연락처 파일 불러오기
저장된 연락처를 다시 읽어올 수 있습니다.
phone_book = {}
with open("phonebook.txt", "r", encoding="utf-8") as file:
for line in file:
name, phone = line.strip().split(",")
phone_book[name] = phone
print(phone_book)
실행 결과
{
'철수': '010-1234-5678',
'영희': '010-9876-5432',
'민수': '010-1111-2222'
}
🎯 이번 프로젝트에서 배운 것
이번 프로젝트를 통해 다음 기능을 모두 만들어 보았습니다.
✅ 연락처 등록
✅ 연락처 검색
✅ 연락처 수정
✅ 연락처 삭제
✅ 파일 저장
✅ 파일 불러오기
🚀 전화번호부 프로그램 전체 소스
phone_book = {}
# 파일 불러오기
try:
with open("phonebook.txt", "r", encoding="utf-8") as file:
for line in file:
name, phone = line.strip().split(",")
phone_book[name] = phone
except FileNotFoundError:
pass
while True:
print("\n=== 전화번호부 프로그램 ===")
print("1. 연락처 등록")
print("2. 연락처 검색")
print("3. 연락처 수정")
print("4. 연락처 삭제")
print("5. 연락처 목록 보기")
print("6. 파일 저장")
print("0. 종료")
menu = input("메뉴 선택 : ")
if menu == "1":
name = input("이름 : ")
phone = input("전화번호 : ")
phone_book[name] = phone
print("연락처가 등록되었습니다.")
elif menu == "2":
name = input("검색할 이름 : ")
if name in phone_book:
print(name, ":", phone_book[name])
else:
print("연락처가 없습니다.")
elif menu == "3":
name = input("수정할 이름 : ")
if name in phone_book:
phone = input("새 전화번호 : ")
phone_book[name] = phone
print("연락처가 수정되었습니다.")
else:
print("연락처가 없습니다.")
elif menu == "4":
name = input("삭제할 이름 : ")
if name in phone_book:
del phone_book[name]
print("연락처가 삭제되었습니다.")
else:
print("연락처가 없습니다.")
elif menu == "5":
print("\n--- 연락처 목록 ---")
if len(phone_book) == 0:
print("저장된 연락처가 없습니다.")
else:
for name, phone in phone_book.items():
print(name, ":", phone)
elif menu == "6":
with open("phonebook.txt", "w", encoding="utf-8") as file:
for name, phone in phone_book.items():
file.write(name + "," + phone + "\n")
print("파일 저장 완료!")
elif menu == "0":
with open("phonebook.txt", "w", encoding="utf-8") as file:
for name, phone in phone_book.items():
file.write(name + "," + phone + "\n")
print("전화번호부를 저장하고 종료합니다.")
break
else:
print("잘못된 메뉴입니다.")
전화번호부 프로그램

반응형
'강의 > Python 기초' 카테고리의 다른 글
| Chapter 9. 비밀번호 생성기 만들기 (0) | 2026.06.10 |
|---|---|
| Chapter 8. 할 일(To-Do) 관리 프로그램 만들기 (0) | 2026.06.10 |
| Chapter 6. 회원 관리 프로그램 (0) | 2026.06.10 |
| Chapter 5. 가계부 프로그램 만들기 (0) | 2026.06.10 |
| Chapter 4. 학생 성적 관리 프로그램 (0) | 2026.06.10 |