# =========================================================================== # 입력 변수.
menu_count = [20, 20, 20, 20]
menu_price = [1000, 1000, 1000, 1000]
menu_name = ['a', 'b', 'c', 'd']
# =========================================================================== #
charge = 0
index_check = 0
decimal = '0 1 2 3 4 5 6 7 8 9'.split()
menu_number = str(list(range(1, len(menu_count) + 1))).replace(',', '').replace('[', '').replace(']', '').split()
menu_number.append(str(len(menu_count) + 1))
menu_number.append(str(len(menu_count) + 2))
menu_number.append(str(len(menu_count) + 3))
money = None
choose_number = None
while True: # 버튼을 누르는 작업 종료 후 메뉴 계속 불러오기.
# =========================================================================== # 메뉴 선택 화면 출력 모듈.
print(f'\nmoney left: {charge}\n')
print('index juice count price')
while True:
print(f'[{index_check + 1:^3}] [{menu_name[index_check]:^3}] [{menu_count[index_check]:>3}] [{menu_price[index_check]:>5}]')
if index_check == len(menu_count) - 1:
break
index_check += 1
print(f'\n[{index_check + 2:^3}] charge\n[{index_check + 3:^3}] exit\n[{index_check + 4:^3}] power off\n')
index_check = 0
# =========================================================================== #
choose_number = input('choose the number of list: ')
if choose_number not in menu_number: # 메뉴 번호를 잘못 입력했을 때.
print('please input right number')
elif int(choose_number) <= len(menu_number) - 3: # 음료수 번호 입력.
if menu_count[int(choose_number) - 1] > 0: # 음료수 번호를 입력했는데 잔량이 있을 경우.
if charge >= menu_price[int(choose_number) - 1]: # 음료수 번호를 입력하고 잔량이 있고 잔액이 충분할 경우.
charge -= menu_price[int(choose_number) - 1] # 잔액 차감.
menu_count[int(choose_number) - 1] -= 1 # 잔량 차감.
print(f'thank you for buying {menu_name[int(choose_number) - 1]}')
else: # 음료수 번호를 입력하고 잔량이 있고 잔액이 부족할 경우.
print('there is insufficient charge. please charge the money')
else: # 음료수 번호를 입력했는데 잔량이 없을 경우.
print('there is no products')
elif int(choose_number) == len(menu_number) - 2: # 충전 버튼을 눌렀을 경우.
# =========================================================================== # 음이 아닌 임의의 정수 입력 모듈.
while True:
money = input('input your money: ')
index_check = 0
if money == '': pass
else:
while money[index_check] in decimal:
if index_check == len(money) - 1:
break
index_check += 1
if index_check == len(money) - 1 and money[index_check] in decimal:
break
print('please input right number\n')
index_check = 0
# =========================================================================== #
charge += int(money) # 잔액 추가.
elif int(choose_number) == len(menu_number) - 1: # 반환 버튼을 눌렀을 경우.
print(f'take your money: {charge}')
charge = 0 # 잔액 초기화.
elif int(choose_number) == len(menu_number) - 0: # 프로그램 종료 버튼을 눌렀을 경우.
print('program finished\n')
break
자판기에서 주스 꺼낼 때 돈 충전하는거랑 주스 부족하면 못뽑는거 코딩해봄
튜플이나 for 조건문이나 다른 함수 쓰면 더 간결하게 나타냈을거 같은데
while 조건문 까지 배우고 자판기 문제 만들어 본거라
어렵다... 알고리즘 직접 짜서 만드는거 처음이라 다듬는데 2일인가 3일 걸림
잘했어