728x90
<고객 정보 입력 프로그램> Ver. 1
- 메뉴를 여러번 물어보도록 수정
- 메뉴를 선택하면 중단하도록 프로그래밍
더보기
고객정보 = list()
while True: # 무한루프
메뉴 = input('''
다음 중에서 할 일을 고르시오:
I - 고객 정보 조회
C - 현재 고객 정보 조회
P - 이전 고객 정보 조회
N - 다음 고객 정보 조회
U - 고객 정보 수정
D - 고객 정보 삭제
Q - 프로그램 종료)
''')
if 메뉴 == 'i':
print('고객 정보 입력')
이름 = input('이름을 입력하세요.')
성별 = input('성별을 F,M으로 입력하세요.')
출생년도 = input('출생년도를 입력하세요.')
지역 = input('지역 정보를 입력하세요.')
고객 = {
'이름': 이름,
'성별': 성별,
'출생년도': 출생년도,
'지역': 지역
} # { }는 딕셔너리
고객정보.append(고객) #
# .append: 선택한 요소의 내용 끝에 내용 추가
elif 메뉴 == 'c' or 'C':
print('현재 고객 정보 조회')
elif 메뉴 == 'p' or 'P':
print('이전 고객 정보 조회')
elif 메뉴 == 'u' or 'U':
print('고객 정보 수정')
elif 메뉴 == 'd' or 'D':
print('고객 정보 삭제')
elif 메뉴 == 'q' or 'Q':
print('프로그램 종료')
print(고객정보)
break
else:
print('선택하신 메뉴가 없습니다.')
<고객 정보 입력 프로그램> Ver. 2
- 입력받는 고객 정보를 체크하는 로직을 추가
- 메뉴 Q를 선택하면, 현재 고객 정보 변수의 내용을 파일로 저장하고 종료하도록 수정
더보기
import pickle
with open('./customer.pickle', 'rb') as f:
고객정보 = pickle.load(f)
while True:
메뉴 = input("""
다음 중에서 하실 일을 골라주세요.:
┌---------------------------------------------------------------------┐
│ 고객 관리 프로그램 │
│ │
│ I - 고객 정보 입력 │
│ C - 현재 고객 정보 조회 │
│ P - 이전 고객 정보 조회 │
│ N - 다음 고객 정보 조회 │
│ U - 고객 정보 수정 │
│ D - 고객 정보 삭제 │
│ Q - 프로그램 종료 │
└---------------------------------------------------------------------┘
""")
if 메뉴 == 'i':
print("┌-----------------------------------------------┐")
print("│ 고객 정보 입력 │")
print("└-----------------------------------------------┘")
이름 = input('이름을 입력하세요. : ')
while True:
성별 = input('성별을 M, F로 입력하시오.').upper
if 성별 in ('M', 'F'):
break
else:
print('M/m 또는 F/f 중 입력하시오.')
while True:
출생년도 = input('출생년도를 입력하시오.')
if 출생년도.isdecimal() and len(출생년도) == 4: // 딕셔너리.isdecimal(): 해당 문자열이 0~9까지의 수로 이루어진 것인지 검사
break
else:
print('4자리 숫자로 입력하시오.')
while True:
지역 = input('현재 살고 있는 지역을 입력하시오.')
if 지역.isalnum(): // 딕셔너리.isalnum(): 문자열이 영어, 한글 혹은 숫자로 되어있으면 참 리턴, 아니면(특수문자) 거짓 리턴.
break
else:
print('문자와 숫자만 입력하시오.')
고객 = dict()
고객.setdefault('이름', 이름) // .setdefault(): 딕셔너리에 키-값 쌍을 추가
고객.setdefault('성별', 성별)
고객.setdefault('출생년도', 출생년도)
고객.setdefault('지역', 지역)
고객정보.append(고객) // .append(): 딕셔너리의 맨 마지막에 키-값 추가
elif 메뉴 == 'c':
print('현재 고객 정보 조회')
print(고객정보)
elif 메뉴 == 'p':
print('이전 고객 정보 조회')
elif 메뉴 == 'n':
print('다음 고객 정보 조회')
elif 메뉴 == 'u':
print('고객 정보 수정')
elif 메뉴 == 'd':
print('고객 정보 삭제')
elif 메뉴 == 'q':
print('프로그램 종료')
# print(고객 정보)
with open('./customer.pickle', 'wb') as f:
pickle.dump(고객정보, f) // 파일 저장
break
else:
print('선택하신 메뉴가 없습니다.')
<고객 정보 입력 프로그램> Ver. 3
- 전반적인 기능 1차 완성
더보기
**import pickle** // 데이터를 자료형의 변경없이 파일로 저장하여 로드
import os // os: 운영체제의 명령어가 들어있는 라이브러리로, os 모듈은 운영 체제와 상호 작용하기 위한 수십 가지 함수들을 제공
위치 = -1 // -1이라는 것은 데이터가 없다는 뜻 (0으로 설정하면 0건이 있다고(데이터가 있다) 판단)
고객정보 = list()
if os.path.exists('./customer.pickle'): // **os.path.exists**: 디렉터리 또는 파일 존재 여부 확인
with open('./customer.pickle', 'rb') as f: // **with as 구문:** 파일 자동 닫기
고객정보 = pickle.load(f)
위치 = len(고객정보) - 1 **** len():** 리스트나 튜플, 딕셔너리와 같은 다양한 자료형의 요소 개수를 구하는 데
while True:
메뉴 = input("""
다음 중에서 하실 일을 골라주세요.:
┌---------------------------------------------------------------------┐
│ 고객 관리 프로그램 │
│ │
│ I - 고객 정보 입력 │
│ C - 현재 고객 정보 조회 │
│ P - 이전 고객 정보 조회 │
│ N - 다음 고객 정보 조회 │
│ U - 고객 정보 수정 │
│ S - 고객 정보 저장 │
│ D - 고객 정보 삭제 │
│ Q - 프로그램 종료 │
└---------------------------------------------------------------------┘
""")
if 메뉴 == 'i':
print("┌----------------------------------------┐")
print("│ 고객 정보 입력 │")
print("└----------------------------------------┘")
이름 = input('이름을 입력하세요. : ')
while True:
성별 = input('성별을 M, F로 입력하시오.').upper
if 성별 in ('M', 'F'):
break
else:
print('M/m 또는 F/f 중 입력하시오.')
while True:
출생년도 = input('출생년도를 입력하시오.')
if 출생년도.isdecimal() and len(출생년도) == 4: // **딕셔너리.isdecimal():** 해당 문자열이 0~9까지의 수로 이루어진 것인지 검사
break
else:
print('4자리 숫자로 입력하시오.')
while True:
지역 = input('현재 살고 있는 지역을 입력하시오.')
if 지역.isalnum(): // **딕셔너리.isalnum()**: 문자열이 영어, 한글 혹은 숫자로 되어있으면 참 리턴, 아니면(특수문자) 거짓 리턴.
break
else:
print('문자와 숫자만 입력하시오.')
고객 = dict()
고객.setdefault('이름', 이름) // **.setdefault()**: 딕셔너리에 키-값 쌍을 추가
고객.setdefault('성별', 성별)
고객.setdefault('출생년도', 출생년도)
고객.setdefault('지역', 지역)
고객정보.append(고객) // **.append()**: 딕셔너리의 맨 마지막에 키-값 추가
위치 = len(고객정보) - 1
elif 메뉴 == 'c':
print("┌----------------------------------------┐")
print("│ 현재 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > -1: // 데이터가 있는 경우
print(위치 + 1, '번째 고객정보: ', 고객정보[위치]) // 위치 + 1: 인덱스 기준으로 순서를 매겨놓았기 때문에, 출력할 때는 사용자가 보기 편하게 +1
else: // 데이터가 없는 경우
print('고객정보가 없습니다. 입력 후 조회하시오.')
elif 메뉴 == 'p':
print("┌----------------------------------------┐")
print("│ 이전 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > 0:
위치 -= 1 # or고객정보[위치-1]로도 표현 가능
print(위치 + 1, '번째 고객정보: ', 고객정보[위치])
else:
print('첫 번째 위치입니다.')
elif 메뉴 == 'n':
print("┌----------------------------------------┐")
print("│ 다음 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 <= len(고객정보) - 1: // (고객정보 리스트의 개수) - 1이 위치와 같거나 크면
위치 += 1 // **** +=: a = a + b 현재 위치에서 1을 더 해서 계산하라**
print(위치 + 1, '번째 고객정보: ', 고객정보[위치])
else:
print('마지막 위치입니다.')
elif 메뉴 == 'u':
print('고객 정보 수정')
print("┌----------------------------------------┐")
print("│ 고객 정보 수정 │")
print("└----------------------------------------┘")
이름 = input('이름을 입력하세요. : ')
while True:
성별 = input('성별을 M, F로 입력하시오.').upper
if 성별 in ('M', 'F'):
break
else:
print('M/m 또는 F/f 중 입력하시오.')
while True:
출생년도 = input('출생년도를 입력하시오.')
if 출생년도.isdecimal() and len(출생년도) == 4: // **딕셔너리.isdecimal():** 해당 문자열이 0~9까지의 수로 이루어진 것인지 검사
break
else:
print('4자리 숫자로 입력하시오.')
while True:
지역 = input('현재 살고 있는 지역을 입력하시오.')
if 지역.isalnum(): // **딕셔너리.isalnum()**: 문자열이 영어, 한글 혹은 숫자로 되어있으면 참 리턴, 아니면(특수문자) 거짓 리턴.
break
else:
print('문자와 숫자만 입력하시오.')
고객 = dict()
고객.setdefault('이름', 이름) // **.setdefault()**: 딕셔너리에 키-값 쌍을 추가
고객.setdefault('성별', 성별)
고객.setdefault('출생년도', 출생년도)
고객.setdefault('지역', 지역)
고객정보[위치] = 고객
위치 = len(고객정보) - 1
elif 메뉴 == 'd':
print("┌----------------------------------------┐")
print("│ 고객 정보 삭제 │")
print("└----------------------------------------┘")
del 고객정보[위치]
print(위치 + 1, '번째 고객정보가 삭제되었습니다.')
elif 메뉴 == 's':
print("┌----------------------------------------┐")
print("│ 고객 정보 저장 │")
print("└----------------------------------------┘")
with open('./customer.pickle', 'wb') as f:
pickle.dump(고객정보, f)
**** pickle.dump():** 객체를 파일로 저장하기(파일 쓰기) / 기존에 피클파일이 없으면 생성하기 때문에 오류 발생하지 않음
print('고객 정보가 저장되었습니다.')
elif 메뉴 == 'q':
print("┌----------------------------------------┐")
print("│ 프로그램 종료 │")
print("└----------------------------------------┘")
# print(고객 정보)
with open('./customer.pickle', 'wb') as f:
**pickle.dump**(고객정보, f) // ** **pickle.dump(**): 파일 저장
break
else:
print("┌---------------------------------------------┐")
print("│ 선택하신 메뉴가 없습니다. │")
print("└---------------------------------------------┘")
<고객 정보 입력 프로그램> Ver. 4
- I, C, P, N, U, D, S, Q 각 기능을 함수로 빼내시오.
- global 함수를 이용한 함수 지정
더보기
import pickle
import os
위치 = -1
고객정보 = list()
def 읽기():
global 위치, 고객정보
if os.path.exists('./customer.pickle'):
with open('./customer.pickle', 'rb') as f:
고객정보 = pickle.load(f)
위치 = len(고객정보) - 1
def _입력(): >> 생성 이유: 수정 로직과 입력 로직이 거의 흡사하여 다른 부분만 제외하고 함수 선언
global 고객정보 // **** 전역 변수(global variable)**: 함수 외부에서 선언된 변수를 의미
>> 함수 외부에 고객정보 = list()라고 변수 지정되어 있음
이름 = input('이름을 입력하세요.: ')
while True:
성별 = input('성별을 M, F로 입력하시오.').upper()
if 성별 in ('M', 'F'):
break
else:
print('M/m 또는 F/f 중 입력하시오.')
while True:
출생년도 = input('출생년도를 입력하시오.')
if 출생년도.isdecimal() and len(출생년도) == 4:
break
else:
print('4자리 숫자로 입력하시오.')
while True:
지역 = input('지역 정보를 입력하세요. : ')
if 지역.isalnum():
break
else:
print('현재 살고 있는 지역을 입력하시오.')
고객 = dict()
고객.setdefault('이름', 이름)
고객.setdefault('성별', 성별)
고객.setdefault('출생년도', 출생년도)
고객.setdefault('지역', 지역)
고객정보.append(고객)
**def 입력():
global 위치, 고객정보
print("┌-----------------------------------------------┐")
print("│ 고객 정보 입력 │")
print("└-----------------------------------------------┘")
_입력()
위치 = len(고객정보) - 1**
def 현재():
**global** 위치, 고객정보
print("┌----------------------------------------┐")
print("│ 현재 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > -1:
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('고객정보가 없습니다. 입력 후 조회 부탁드립니다.')
def 이전():
**global** 위치, 고객정보
print("┌----------------------------------------┐")
print("│ 이전 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > 0:
위치 -= 1 #고객정보[위치-1]
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('첫번째 위치입니다.')
def 다음():
**global** 위치, 고객정보
print("┌----------------------------------------┐")
print("│ 다음 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 < len(고객정보) - 1:
위치 += 1
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('마지막 위치입니다.')
**def 수정():
print("┌----------------------------------------┐")
print("│ 고객 정보 수정 │")
print("└----------------------------------------┘")
_입력()
# 위치 = len(고객정보) - 1**
def 삭제():
**global** 위치, 고객정보
print("┌----------------------------------------┐")
print("│ 고객 정보 삭제 │")
print("└----------------------------------------┘")
del 고객정보[위치]
print(위치 + 1,'번째 고객정보가 삭제 되었습니다.')
def 저장():
**global** 고객정보
print("┌----------------------------------------┐")
print("│ 고객 정보 저장 │")
print("└----------------------------------------┘")
with open('./customer.pickle', 'wb') as f:
pickle.dump(고객정보, f)
print('고객 정보가 저장돼었습니다.')
def 종료():
print("┌----------------------------------------┐")
print("│ 프로그램 종료 │")
print("└----------------------------------------┘")
저장()
os._exit(0)
** os._exit(): 프로그램을 강제로 종료시키는 함수
def _메뉴():
**return** input("""
┌---------------------------------------------------------------------┐
│ 고객 관리 프로그램 │
│ │
│ I - 고객 정보 입력 │
│ C - 현재 고객 정보 조회 │
│ P - 이전 고객 정보 조회 │
│ N - 다음 고객 정보 조회 │
│ U - 고객 정보 수정 │
│ S - 고객 정보 저장 │
│ D - 고객 정보 삭제 │
│ Q - 프로그램 종료 │
└---------------------------------------------------------------------┘
===> """)
>> 사용자가 입력한 것을 return으로 반환하여 함수 종료 후 다음 과정 진행
def 메인():
while True:
메뉴 = _메뉴()
if 메뉴 == 'i':
입력()
elif 메뉴 == 'c':
현재()
elif 메뉴 == 'p':
이전()
elif 메뉴 == 'n':
다음()
elif 메뉴 == 'u':
수정()
elif 메뉴 == 'd':
삭제()
elif 메뉴 == 's':
저장()
elif 메뉴 == 'q':
종료()
else:
print("┌------------------------------------------┐")
print("│ 선택하신 메뉴가 없습니다. │")
print("└------------------------------------------┘")
if __name__ == '__main__':
메인()
**** if __name__ == '__main__':** 해당 구문이 사용된 파이썬 파일을 직접 실행했을 때만 아래 코드를 실행하겠다
읽기()
<고객 정보 입력 프로그램> Ver. 4-1
- 전역변수 대체
더보기
import pickle
import os
def 읽기():
global 위치, 고객정보
if os.path.exists('./customer.pickle'):
with open('./customer.pickle', 'rb') as f:
고객정보 = pickle.load(f)
위치 = len(고객정보) - 1
else:
고객정보 = list()
위치 = -1
return 고객정보, 위치
def _입력(): >> 생성 이유: 수정 로직과 입력 로직이 거의 흡사하여 다른 부분만 제외하고 함수 선언
이름 = input('이름을 입력하세요.: ')
while True:
성별 = input('성별을 M, F로 입력하시오.').upper()
if 성별 in ('M', 'F'):
break
else:
print('M/m 또는 F/f 중 입력하시오.')
while True:
출생년도 = input('출생년도를 입력하시오.')
if 출생년도.isdecimal() and len(출생년도) == 4:
break
else:
print('4자리 숫자로 입력하시오.')
while True:
지역 = input('지역 정보를 입력하시오.')
if 지역.isalnum():
break
else:
print('현재 살고 있는 지역을 입력하시오.')
고객 = dict()
고객.setdefault('이름', 이름)
고객.setdefault('성별', 성별)
고객.setdefault('출생년도', 출생년도)
고객.setdefault('지역', 지역)
return 고객
def 입력(고객정보, 위치):
print("┌---------------------------------------┐")
print("│ 고객 정보 입력 │")
print("└---------------------------------------┘")
_입력()
고객정보.append(고객)
위치 = len(고객정보) - 1
return 위치
def 현재(고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 현재 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > -1:
if 위치 >= len(고객정보) - 1:
위치 = len(고객정보) - 1
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('고객정보가 없습니다. 입력 후 조회 부탁드립니다.')
return 위치
def 이전(고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 이전 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > 0:
위치 -= 1 #고객정보[위치-1]
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('첫번째 위치입니다.')
return 위치
def 다음(고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 다음 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 < len(고객정보) - 1:
위치 += 1
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('마지막 위치입니다.')
return 위치
def 수정(고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 고객 정보 수정 │")
print("└----------------------------------------┘")
고객 = _입력()
고객정보[위치] = 고객
def 삭제(고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 고객 정보 삭제 │")
print("└----------------------------------------┘")
del 고객정보[위치]
print(위치 + 1,'번째 고객정보가 삭제 되었습니다.')
def 저장(고객정보):
print("┌----------------------------------------┐")
print("│ 고객 정보 저장 │")
print("└---------------------------------------┘")
with open('./customer.pickle', 'wb') as f:
pickle.dump(고객정보, f)
print('고객 정보가 저장돼었습니다.')
def 종료(고객정보):
print("┌----------------------------------------┐")
print("│ 프로그램 종료 │")
print("└----------------------------------------┘")
저장()
os._exit(0)
** os._exit(): 프로그램을 강제로 종료시키는 함수
def _메뉴():
**return** input("""
┌---------------------------------------------------------------------┐
│ 고객 관리 프로그램 │
│ │
│ I - 고객 정보 입력 │
│ C - 현재 고객 정보 조회 │
│ P - 이전 고객 정보 조회 │
│ N - 다음 고객 정보 조회 │
│ U - 고객 정보 수정 │
│ S - 고객 정보 저장 │
│ D - 고객 정보 삭제 │
│ Q - 프로그램 종료 │
└---------------------------------------------------------------------┘
===> """)
>> 사용자가 입력한 것을 return으로 반환하여 함수 종료 후 다음 과정 진행
def 메인(고객정보, 위치):
위치 = 위치
고객정보 = 고객정보
while True:
메뉴 = _메뉴()
if 메뉴 == 'i':
위치 = 입력(고객정보, 위치)
elif 메뉴 == 'c':
위치 = 현재(고객정보, 위치)
elif 메뉴 == 'p':
위치 = 이전(고객정보, 위치)
elif 메뉴 == 'n':
위치 = 다음(고객정보, 위치)
elif 메뉴 == 'u':
수정(고객정보, 위치)
elif 메뉴 == 'd':
삭제(고객정보, 위치)
elif 메뉴 == 's':
저장(고객정보)
elif 메뉴 == 'q':
종료(고객정보)
else:
print("┌------------------------------------------┐")
print("│ 선택하신 메뉴가 없습니다. │")
print("└------------------------------------------┘")
if __name__ == '__main__':
고객정보, 위치 = 읽기()
메인(고객정보, 위치)
**** if __name__ == '__main__':** 해당 구문이 사용된 파이썬 파일을 직접 실행했을 때만 아래 코드를 실행하겠다
<고객 정보 입력 프로그램> Ver. 5
- 클래스로 변환
더보기
import pickle
import os
import re // 정규표현식 지원 모듈
import datetime // import datetime
class Customer:
def __init__(self):
self.고객정보, self.위치 = self.읽기()
def 읽기(self):
if os.path.exists('./customer.pickle'):
with open('./customer.pickle', 'rb') as f:
고객정보 = pickle.load(f)
위치 = len(고객정보) - 1
else:
고객정보 = list()
위치 = -1
return 고객정보, 위치
def _입력(self):
이름 = input('이름을 입력하세요.: ')
if not re.search('[^가-힣]', 이름): ** [^가-힣]: 한글로 쓰도록 범위 제한
break
else:
print('이름은 한글로만 입력하세요.')
while True:
성별 = input('성별을 M, F로 입력하시오.').upper()
if re.match('M|F|m|f.', 성별) and len(성별) == 1: ** 'M|F|m|f.'으로만 썼는지 확인
break
else:
print('M/m 또는 F/f 중 입력하시오.')
while True:
max_year = (datetime.date.today() + datetime.timedelta(days=365*10)).year
출생년도 = input('출생년도를 입력하시오.')
if re.match('[0-9]{4}', 출생년도) and len(출생년도) == 4 and int(출생년도) <= max_year:
break
** 숫자 4자리로만 썼는지 확인
else:
print('4자리 숫자만 또는 10년 후 년도 까지만 입력하시오.')
while True:
지역 = input('지역 정보를 입력하시오.')
if not re.search('[^가-힣0-9]+', 지역): ** 한글이나 숫자로만 썼는지 확인
break
else:
print('문자와 숫자만 입력하세요.')
고객 = dict()
고객.setdefault('이름', 이름)
고객.setdefault('성별', 성별)
고객.setdefault('출생년도', 출생년도)
고객.setdefault('지역', 지역)
return 고객
def 입력(self, 고객정보, 위치):
print("┌---------------------------------------┐")
print("│ 고객 정보 입력 │")
print("└---------------------------------------┘")
고객 = self._입력()
고객정보.append(고객)
위치 = len(고객정보) - 1
return 위치
def 현재(self, 고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 현재 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > -1:
if 위치 >= len(고객정보) - 1:
위치 = len(고객정보) - 1
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('고객정보가 없습니다. 입력 후 조회 부탁드립니다.')
return 위치
def 이전(고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 이전 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 > 0:
위치 -= 1 #고객정보[위치-1] 위치 = 위치 - 1
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('첫 번째 위치입니다.')
return 위치
def 다음(self, 고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 다음 고객 정보 조회 │")
print("└----------------------------------------┘")
if 위치 < len(고객정보) - 1:
위치 += 1
print(위치 + 1,'번째 고객정보 : ',고객정보[위치])
else:
print('마지막 위치입니다.')
return 위치
def 수정(self, 고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 고객 정보 수정 │")
print("└----------------------------------------┘")
고객 = self._입력()
고객정보[위치] = 고객
def 삭제(self, 고객정보, 위치):
print("┌----------------------------------------┐")
print("│ 고객 정보 삭제 │")
print("└----------------------------------------┘")
del 고객정보[위치]
print(위치 + 1,'번째 고객정보가 삭제 되었습니다.')
def 저장(self, 고객정보):
print("┌----------------------------------------┐")
print("│ 고객 정보 저장 │")
print("└----------------------------------------┘")
with open('./customer.pickle', 'wb') as f:
pickle.dump(고객정보, f)
print('고객 정보가 저장되었습니다.')
def 종료(self, 고객정보):
print("┌----------------------------------------┐")
print("│ 프로그램 종료 │")
print("└----------------------------------------┘")
self.저장(고객정보)
os._exit(0)
def _메뉴(self):
**return** input("""
┌---------------------------------------------------------------------┐
│ 고객 관리 프로그램 │
│ │
│ I - 고객 정보 입력 │
│ C - 현재 고객 정보 조회 │
│ P - 이전 고객 정보 조회 │
│ N - 다음 고객 정보 조회 │
│ U - 고객 정보 수정 │
│ S - 고객 정보 저장 │
│ D - 고객 정보 삭제 │
│ Q - 프로그램 종료 │
└---------------------------------------------------------------------┘
===> """)
>> 사용자가 입력한 것을 return으로 반환하여 함수 종료 후 다음 과정 진행
def 메인(self):
while True:
메뉴 = _메뉴()
if 메뉴 == 'i':
self.위치 = self.입력(self.고객정보, self.위치)
elif 메뉴 == 'c':
self.위치 = self.현재(self.고객정보, self.위치)
elif 메뉴 == 'p':
self.위치 = self.이전(self.고객정보, self.위치)
elif 메뉴 == 'n':
self.위치 = self.다음(self.고객정보, self.위치)
elif 메뉴 == 'u':
self.수정(self.고객정보, self.위치)
elif 메뉴 == 'd':
self.삭제(self.고객정보, self.위치)
elif 메뉴 == 's':
self.저장(self.고객정보)
elif 메뉴 == 'q':
self.종료(self.고객정보)
else:
print("┌------------------------------------------┐")
print("│ 선택하신 메뉴가 없습니다. │")
print("└------------------------------------------┘")
if __name__ == '__main__':
customer = Customer()
customer.메인()
'프로그래밍 언어 > Python' 카테고리의 다른 글
내가 보려고 정리한 파이썬 함수: 정규표현식 (match() / search() / sub() / split()) (0) | 2024.02.16 |
---|---|
내가 보려고 정리한 파이썬 함수: type 종류 정리 (숫자형, 문자열, 리스트, 튜플, 딕셔너리) (0) | 2024.02.15 |
파이썬 Python 실습 :: 기본적인 파일 사용 정리 함수 (0) | 2024.01.17 |
파이썬 Python 실습 :: 클래스, 인스턴스 (0) | 2024.01.12 |
파이썬 Python 실습 :: 기본적인 함수 사용 정리 함수 (1) | 2024.01.11 |