# =========================================================================== # 입력 변수.
menu_count = [20202020]
menu_price = [1000100010001000]
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(1len(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일 걸림