if문과 for, while 반복문을 활용해 간단한 주문 프로그램 만들기
설명
Python의 조건문과 반복문을 활용하면 실제 음식점의 주문 시스템과 비슷한 프로그램을 만들어볼 수 있습니다. 메뉴를 보여주고 사용자의 주문을 받은 뒤, 주문을 계속 추가하거나 종료하는 과정을 if, for, while문으로 구현해보겠습니다.
메뉴판 만들기
먼저 간단한 메뉴판을 만들어보겠습니다.
menu = ["김밥", "라면", "돈까스", "김치볶음밥"]
price = [3000, 4000, 7000, 6000]
for i in range(len(menu)):
print(i + 1, menu[i], price[i], "원")
실행하면 다음과 같은 메뉴판이 만들어집니다.
1 김밥 3000원2 라면 4000원3 돈까스 7000원4 김치볶음밥 6000원
여기서 for문은 메뉴의 개수만큼 반복하면서 메뉴판을 출력합니다.
if문으로 메뉴 선택하기
사용자가 메뉴 번호를 입력하면 if문으로 어떤 메뉴를 선택했는지 확인할 수 있습니다.
choice = int(input("메뉴 번호를 선택하세요: "))
if choice == 1:
print("김밥을 선택했습니다.")
elif choice == 2:
print("라면을 선택했습니다.")
elif choice == 3:
print("돈까스를 선택했습니다.")
elif choice == 4:
print("김치볶음밥을 선택했습니다.")
else:
print("잘못된 메뉴입니다.")
이처럼 if, elif, else를 이용하면 사용자의 선택에 따라 다른 결과를 실행할 수 있습니다.
while문으로 계속 주문받기
음식점에서는 메뉴 하나를 주문했다고 프로그램이 끝나면 안 됩니다.
여러 메뉴를 주문할 수 있도록 while문을 사용합니다.
total = 0
while True:
choice = int(input("메뉴 번호를 선택하세요: "))
if choice == 1:
total += 3000
print("김밥을 주문했습니다.")
elif choice == 2:
total += 4000
print("라면을 주문했습니다.")
elif choice == 3:
total += 7000
print("돈까스를 주문했습니다.")
elif choice == 4:
total += 6000
print("김치볶음밥을 주문했습니다.")
elif choice == 0:
break
else:
print("잘못된 메뉴입니다.")
사용자가 0을 입력하면 break가 실행되면서 주문이 종료됩니다.
주문 금액 계산하기
주문이 끝나면 지금까지 주문한 금액을 출력할 수 있습니다.
print("주문이 완료되었습니다.")
print("총 주문 금액:", total, "원")
예를 들어 김밥과 라면을 주문했다면 다음과 같이 출력됩니다.
김밥을 주문했습니다.
라면을 주문했습니다.
주문이 완료되었습니다.
총 주문 금액: 7000 원
완성된 주문 프로그램
menu = ["김밥", "라면", "돈까스", "김치볶음밥"]
price = [3000, 4000, 7000, 6000]
total = 0
while True:
print("\n=== 메뉴판 ===")
for i in range(len(menu)):
print(i + 1, menu[i], price[i], "원")
print("0. 주문 완료")
choice = int(input("메뉴 번호를 선택하세요: "))
if choice == 0:
break
elif 1 <= choice <= len(menu):
total += price[choice - 1]
print(menu[choice - 1], "을(를) 주문했습니다.")
else:
print("잘못된 메뉴 번호입니다.")
print("\n주문이 완료되었습니다.")
print("총 주문 금액:", total, "원")
이제 메뉴를 여러 번 선택할 수 있고, 0을 입력하면 주문이 종료됩니다.
코드에서 사용한 문법 정리
| 문법 | 역할 |
|---|---|
if | 주문 완료 여부와 메뉴 번호 확인 |
elif | 메뉴 번호가 올바른지 확인 |
else | 잘못된 입력 처리 |
for | 메뉴판 출력 |
while | 주문을 계속 받기 |
break | 주문 종료 |
list | 메뉴와 가격 저장 |
+= | 주문 금액 누적 |
이번 예제에서는 각각의 문법이 하나의 프로그램 안에서 자연스럽게 연결되어 있습니다.
직접 추가해볼 기능
기본 주문 프로그램을 완성했다면 다음 기능을 추가해보세요.
- 메뉴별 주문 수량 표시하기
- 주문 내역을 마지막에 출력하기
- 메뉴를 직접 추가하거나 삭제하기
- 10,000원 이상 주문하면 할인 적용하기
- 음료 메뉴 추가하기
- 주문 취소 기능 만들기
예를 들어 10,000원 이상 주문했을 때 할인을 적용하려면 if문을 추가할 수 있습니다.
if total >= 10000:
total = total - 1000
print("1000원 할인이 적용되었습니다.")
조건문 하나만 추가해도 프로그램에 새로운 기능을 만들 수 있습니다.
마무리
이번 메뉴판 주문 프로그램에서는 지금까지 배운 Python 문법을 실제 프로그램처럼 활용해봤습니다.
for문으로 메뉴판을 출력하고, while문으로 계속 주문을 받으며, if, elif, else로 사용자의 선택을 처리했습니다.
여기에 break를 사용해 주문을 종료하고 +=를 이용해 주문 금액까지 계산했습니다.
단순한 문법 연습에서 한 단계 더 나아가 실제로 사용할 수 있는 작은 프로그램을 만들어보는 것이 Python을 익히는 데 큰 도움이 됩니다.