반응형
import time
prompt = '''
==================
1. 포인트 조회
2. 포인트 추가
3. 포인트 수정
7. 회원등록 (등록포인트:100)
0. 종료
===================
'''
# 변수선언/주화면 보여주기
menu = True
welcome_point = 100
dtPoint = {"01000000000": 100}
dtPoint_copy = dtPoint.copy()
last_add_point = 0
print(prompt)
# menu 선택
while menu != "0":
menu = input("메뉴를 선택하세요>> ")
if menu == "0":
break
elif menu == "1":
if not len(dtPoint):
print("# 포인트 데이터가 없습니다.", "\n")
continue
for tel, get_point in dtPoint.items():
print(f"{tel} 고객님의 보유 포인트 : {get_point}")
elif menu == "2":
tel = input(" 전화번호를 입력하세요 : ")
if len(tel) >= 10:
if dtPoint.get(tel) == None:
print("# 비회원으로 확인되어 회원 등록으로 넘어 갑니다 . ", "\n")
time.sleep(1)
if dtPoint.get(tel) == None:
dtPoint[tel] = welcome_point
print(f"# 회원 등록을 되었습니다. ")
print(f"# 등록 축하 포인트 : {dtPoint[tel]}point \n")
continue
else:
price = int(input(" 주문 금액을 입력하세요 : "))
newPoint = int(price*0.01)
last_add_point = newPoint
dtPoint[tel] = dtPoint.get(
tel) + newPoint # 수정 (기존 포인트에서 업데이트)
# 가장 마지막에 추가된 포인트만 계속 업데이트 !
dtPoint_copy.update({tel: newPoint})
print(
f"# {newPoint} point가 추가적립되어 현재 {dtPoint[tel]} point 입니다.", "\n")
else:
print("전화번호를 다시 한번 확인해 주세요 ! ")
elif menu == "3":
tel = input(" point 수정이 필요한 전화번호를 입력하세요 : ")
if dtPoint.get(tel):
print(f"{tel}님이 현재까지 보유중인 point : {dtPoint[tel]} ")
# 마지막으로 들어가 포인트 -> 수정하는게 맞는 거잖아
if dtPoint_copy.get(tel) == None:
print(f" 마지막 추가 point : 0 ")
else:
print(f" 마지막 추가 point : {dtPoint_copy.get(tel)} ")
# 마지막 추가 포인트 : copy -> update
change_point = int(input("수정할 포인트를 입력해주세요 : ")) # 0 입력 예외 처리
if change_point > 0:
dtPoint[tel] = dtPoint.get(
tel) - dtPoint_copy.get(tel) + change_point
print(
f"#기존 추가 된 {dtPoint_copy.get(tel)} point 입력하신 {change_point} point 로 수정되었습니다.", "\n")
dtPoint_copy.update({tel: change_point})
elif change_point == 0:
print(f"기존 포인트 {dtPoint.get(tel)} 유지됩니다.")
pass
else:
print("0 이상의 정확한 숫자를 입력하세요")
else:
print(f"# {tel}님은 등록되어 있지 않습니다. ", "\n")
elif menu == "7":
tel = input("전화번호를 입력하세요: ")
if len(tel) >= 10:
if dtPoint.get(tel) == None:
dtPoint[tel] = welcome_point
print(f"# 회원 등록을 되었습니다. ")
print(f"# 등록 축하 포인트 : {dtPoint[tel]}point \n")
else:
print(f"이미 회원이시네요!! {tel} 회원님의 포인트 : {dtPoint[tel]}")
else: # 번호가 인증 되면
print(f"정확한 연락처를 확인해주세요 : {tel} 잘못 입력하셨습니다.")
else:
print("잘못 입력했습니다. 다시 입력해주세요. \n")
print("\n다음에 또 이용해주세요.")
while 문으로 프로세스를 진행했고
연락처를 회원 고유값으로 사용을 해서
휴대폰 번호 입력 값에 대한 조건을 걸어 줬다.
반응형
1번 값을 통해 -> 회원 및 보유 포인트 조회
2번 값을 통해 -> 전화번호 미확인 시 자동 회원 가입 + 구매 금액을 입력하면 구매금액의 1%를 포인트로 적립해준다
-> 구매 마다 마지막 적립 포인트는 별도의 dictionary.update() 를 통해 보관을 한다.
3번 값을 통해 -> 고객 보유 포인트 + 마지막 추가된 포인트를 알려주고 변경 원하는 값을 입력 받아 -> 마지막 추가된 포인트 값을 수정해준다.
이외에 추가적인 예외 처리는 if 문을 통해 적용하였다.
==================
1. 포인트 조회
2. 포인트 추가
3. 포인트 수정
4. 포인트 사용
5. 포인트 저장
6. 포인트 갱신
(파일업로드)
7. 회원등록
(등록포인트:100)
0. 종료
===================
메뉴를 선택하세요>> 1
01000000000 고객님의 보유 포인트 : 100
메뉴를 선택하세요>> 2
전화번호를 입력하세요 : 0101111111
# 비회원으로 확인되어 회원 등록으로 넘어 갑니다 .
# 회원 등록을 되었습니다.
# 등록 축하 포인트 : 100point
메뉴를 선택하세요>> 2
전화번호를 입력하세요 : 01011111111
주문 금액을 입력하세요 : 3000
# 30 point가 추가적립되어 현재 130 point 입니다.
메뉴를 선택하세요>> 3
point 수정이 필요한 전화번호를 입력하세요 : 01096596509
01096596509님이 현재까지 보유중인 point : 130
마지막 추가 point : 30
수정할 포인트를 입력해주세요 : 50
#기존 추가 된 30 point 입력하신 50 point 로 수정되었습니다.
반응형
'Python' 카테고리의 다른 글
pip : 'pip' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. (0) | 2023.09.19 |
---|---|
PYTHON: 파이썬으로 Random 로또 번호 생성하기 (set 함수 사용) (0) | 2023.09.19 |
PYTHON -Pygame 똥피하기 게임을 손쉽게 만들어 보았습니다 코드 포함 (5) | 2023.05.17 |
PYTHON 알고리즘 - 표준 체중을 구하는 프로그램 코드 (0) | 2023.05.17 |
PYTHON - 프로그래머스 스쿨 문제 : 마라탕 (0) | 2023.04.06 |
PYTHON 문법 파이썬 정규표현식이 헷갈리면 이렇게 사용해 봅시다 (0) | 2023.04.03 |