Python - 자판기 Level 1

닉네임유저·2023년 8월 10일
0

Python - Vending_machine

목록 보기
1/5
post-thumbnail

👉 기본적인 메뉴 선택 및 가격 차감 기능만 구현


📌 기본적인 for,if, while 문만을 사용


💎 자판기 그림 및 로직

    1. (자판기가) 메뉴를 보여줍니다.
    1. 현금을 투입합니다.
    1. 메뉴를 선택합니다.
    1. 선택한 메뉴와 가격이 일치하는 인덱스 값을 찾습니다.
    1. 현금을 투입한 가격과 메뉴의 인덱스가 일치하는 가격을 찾아서 해당 가격 만큼 차감합니다.
    1. 잔금이 남으면 , 저장되고 , 계속해서 계산을 합니다.
    1. 메뉴를 선택할때 '0'을 입력하게 되면 , 종료하고 거스름돈을 배출합니다.

📌 if 문으로 같은 인덱스 값을 찾아서 계산을 할 때

menus = ['물','오렌지 주스','콜라','사이다']
price = [1000,2000,3000,2500]

balance = 0

for i in range(len(menus)):
    print(f'{i + 1}. {menus[i]} : {price[i]}')

while True:

    try:
        money = int(input('현금을 넣어주세요 : '))

        balance += money

        if money < 0:
            print('입력이 잘못되셨습니다.')
            continue

        menu = input('메뉴를 입력하세요 (문자로), 0을 입력하시면 종료 : ')

        if menu == '0':
            print(f'종료합니다 이용해주셔서 감사합니다. 잔금은 : {balance} 입니다. ')
            break

        menu_idx = menus.index(menu) # 인덱스값
        select_price = price[menu_idx]

        if balance < select_price:
            print(f'잔액부족, 현금 반환 : {balance} ')
            print('감사')
            break
        else:
            balance -= select_price
            print(f'물품 : {menu} 을 선택, 잔금 : {balance}')
            continue
    except ValueError:
        print('입력이 잘못되었음')

📌 For 문으로 인덱스 값을 검색해서 찾아낼 때

menus = ['물','오렌지 주스','콜라','사이다']
price = [1000,2000,3000,2500]

balance = 0 # 잔금 변수 입력하기

# 첫 선택 메뉴 화면 보여주기

for i in range(len(menus)):
    print(f'{i + 1}. {menus[i]} : {price[i]}')

# 동전 넣고 계산
while True:

    money = int(input('현금을 넣어주세요 : ')) # 현금 변수 입력

    select_menu = input('메뉴룰 입력해 주세요 : ') # 메뉴 변수 입력

    balance += money

    if select_menu == '0':
        print(f'종료합니다 이용해주셔서 감사합니다. 거스름돈 잔액은 : {balance} 입니다.')

    select_price = 0  # 선택한 가격을 저장할 변수

    for i in range(len(menus)):
        if menus[i] == select_menu:
            select_price = price[i] # 인덱스값이 일치 할 경우 price 가격도 일치하게 됨

    if select_price > balance:
        print('구매 가격이 충분하지 않습니다.')
    elif select_price == 0:
        print('입력하신 메뉴가 있지 않습니다.')
        continue
    else:
        balance -= select_price
        print(f'구매하신 제품 : {select_menu} , 해당 가격은 : {select_price} 입니다. 거스름돈은 {balance} 입니다.')
profile
이것저것 다해보는 개발자

2개의 댓글

comment-user-thumbnail
2023년 8월 10일

유익한 글이었습니다.

1개의 답글