728x90
주소록 관리
Address.py
class Addr:
def __init__(self,name,phone,email,address,group):
self.__name = name
self.__phone = phone
self.__email = email
self.__address = address
self.__group = group
@property
def name(self):
return self.__name
@name.setter
def name(self,value):
self.__name = value
@property
def phone(self):
return self.__phone
@phone.setter
def phone(self, value):
self.__phone = value
@property
def email(self):
return self.__email
@property
def address(self):
return self.__address
@property
def group(self):
return self.__group
def print_info(self):
print(f"이름: {self.name}")
print(f"전화번호: {self.phone}")
print(f"이메일: {self.email}")
print(f"주소: {self.address}")
print(f"그룹(친구/가족): {self.group}")
SmartPhone.py
import Address as ad
class SmartPhone:
def __init__(self):
self.addr = None
self.name_list = []
self.phone_list = []
self.email_list = []
self.address_list = []
self.group_list = []
def inputAddrData(self):
return ad.Addr(input("이름: "), input("전화번호: "), input("이메일: "), input("주소: "), input("그룹(친구/가족): "))
def addAddr(self, addr):
self.name_list.append(addr.name)
self.phone_list.append(addr.phone)
self.email_list.append(addr.email)
self.address_list.append(addr.address)
self.group_list.append(addr.group)
def printAddr(self):
print(f"이름: {self.addr.name}"
f"\n전화번호: {self.addr.phone}"
f"\n이메일: {self.addr.email}"
f"\n주소: {self.addr.address}"
f"\n그룹(친구/가족): {self.addr.group}")
def printAllAddr(self):
for i in range(0, len(self.name_list)):
print(f"이름: {self.name_list[i]}"
f"\n전화번호: {self.phone_list[i]}"
f"\n이메일: {self.email_list[i]}"
f"\n주소: {self.address_list[i]}"
f"\n그룹(친구/가족): {self.group_list[i]}")
def searchAddr(self, name):
for i in range(0, len(self.name_list)):
if(self.name_list[i] == name):
self.addr = ad.Addr(self.name_list[i], self.phone_list[i], self.email_list[i], self.address_list[i], self.group_list[i])
self.printAddr()
def deleteAddr(self, name):
for i in range(0, len(self.name_list)):
if(self.name_list[i] == name):
self.name_list.pop(i)
self.phone_list.pop(i)
self.email_list.pop(i)
self.address_list.pop(i)
self.group_list.pop(i)
break
def editAddr(self, name, newAddr):
for i in range(0, len(self.name_list)):
if(self.name_list[i] == name):
self.name_list[i] = newAddr.name
self.phone_list[i] = newAddr.phone
self.email_list[i] = newAddr.email
self.address_list[i] = newAddr.address
self.group_list[i] = newAddr.group
SmartPhoneMain.py
import SmartPhone as sp
class SmartPhoneMain:
def __init__(self):
pass
def print_menu(self):
print("1. 연락처등록"
"\n2. 모든 연락처 출력"
"\n3. 연락처 검색"
"\n4. 연락처 삭제"
"\n5. 연락처 수정"
"\n6. 프로그램 종료")
def start(self):
addr_list = sp.SmartPhone()
while True:
self.print_menu()
choice = input("원하는 작업을 선택하세요 (1-6): ")
if choice == '1':
addr = sp.SmartPhone().inputAddrData()
addr_list.addAddr(addr)
elif choice == '2':
addr_list.printAllAddr()
elif choice == '3':
name = input("검색할 이름을 입력하세요: ")
addr_list.searchAddr(name)
elif choice == '4':
name = input("삭제할 이름을 입력하세요: ")
addr_list.deleteAddr(name)
elif choice == '5':
name = input("수정할 이름을 입력하세요: ")
print("새로운 연락처 정보를 입력하세요.")
new_addr = addr_list.inputAddrData()
addr_list.editAddr(name, new_addr)
elif choice == '6':
print("프로그램을 종료합니다.")
break
else:
print("잘못된 입력입니다. 다시 선택하세요.")
if __name__ == "__main__":
SmartPhoneMain().start()728x90
'개발공부 > 생성형 AI 기반 개발자 과정' 카테고리의 다른 글
| 공공데이터 크롤링(api 활용) (0) | 2025.04.28 |
|---|---|
| 크롤링 활용(selenium 활용) (0) | 2025.04.17 |
| 크롤링 기초(api 활용편 - xml) (0) | 2025.04.16 |
| pandas - 7 (0) | 2025.04.06 |
| pandas - 6 (0) | 2025.04.06 |