GURU/PYTHON & HTML
[PYTHON Unit 9: 함수 심화] starbucks
myejinni
2022. 1. 10. 18:18
menu1 = "아메리카노"
menu2 = "카페 라떼"
price1 = 4500
price2 = 5000
tall = 0
grande = 500
venti = 1000
total_price = 0
print("===== 2022 Starbucks Menu =====")
print("1. %s : %d원" % (menu1, price1))
print("2. %s : %d원\n" % (menu2, price2))
print("사이즈 : Tall + %d원, Grande + %d원, Venti +%d원" %(tall, grande,venti))
print("===============================")
menu = (int(input("메뉴를 선택해주세요: ")))
if menu==1:
print("%s를 선택하셨습니다." %menu1)
total_price += price1
elif menu==2:
print("%s를 선택하셨습니다." %menu2)
total_price += price2
else: #잘못 입력
print("잘못 입력하셨습니다.")
print("현재 주문 금액 : %d\n" %total_price)
size = (int(input("사이즈를 선택해주세요(1. Tall 2.Grande 3.Venti): ")))
if size==1: #Tall
total_price += tall
elif size==2: #Grande
total_price += grande
elif size==3: #Venti
total_price += venti
else: #잘못 입력
print("잘못 입력하셨습니다.")
print("현재 주문 금액: %d" %total_price)
cash = (int(input("현금을 넣어주세요: ")))
change = cash - total_price
print("잔돈 %d원 입니다. 안녕히 가십시오." %change)
구현한 코드의 실행결과는 위와 같다.
위 코드에서 구현된 각각의 기능을 모듈화시켜 함수로 분리해 보았다.
2. 함수 활용
def showMenu():
print("===== 2022 Starbucks Menu =====")
print("1. %s : %d원" % (menu1, price1))
print("2. %s : %d원\n" % (menu2, price2))
print("사이즈 : Tall + %d원, Grande + %d원, Venti +%d원" %(tall, grande,venti))
print("===============================")
def selectMenu():
global total_price
menu = int(input("메뉴를 선택해주세요:"))
if menu==1:
print("%s를 선택하셨습니다." %menu1)
total_price += price1
elif menu==2:
print("%s를 선택하셨습니다." %menu2)
total_price += price2
else: #잘못 입력
print("잘못 입력하셨습니다.")
print("현재 주문 금액 : %d\n" %total_price)
def selectSize():
global total_price
size = (int(input("사이즈를 선택해주세요(1. Tall 2.Grande 3.Venti): ")))
if size==1: #Tall
total_price += tall
elif size==2: #Grande
total_price += grande
elif size==3: #Venti
total_price += venti
else: #잘못 입력
print("잘못 입력하셨습니다.")
print("현재 주문 금액: %d" %total_price)
def payment():
cash = (int(input("현금을 넣어주세요: ")))
change = cash - total_price
print("잔돈 %d원 입니다. 안녕히 가십시오." %change)
if __name__=="__main__": #메인
menu1 = "아메리카노"
menu2 = "카페라떼"
price1 = 4500
price2 = 5000
tall = 0
grande = 500
venti = 1000
total_price = 0
showMenu()
selectMenu()
selectSize()
payment()
함수를 통해 각 기능을 나누어 구현한 코드의 실행결과는 위와 같다.
이전과 실행결과는 동일하지만 코드가 보다 깔끔해졌다.
3. 루프 돌면서 주문 받기
def showMenu():
print("===== 2022 Starbucks Menu =====")
print("0. 주문종료")
print("1. %s : %d원" % (menu1, price1))
print("2. %s : %d원\n" % (menu2, price2))
print("사이즈 : Tall + %d원, Grande + %d원, Venti +%d원" %(tall, grande,venti))
print("===============================")
def selectMenu():
global total_price
global breakFlag
menu = int(input("메뉴를 선택해주세요:"))
if menu==1:
print("%s를 선택하셨습니다." %menu1)
total_price += price1
elif menu==2:
print("%s를 선택하셨습니다." %menu2)
total_price += price2
elif menu==0: #주문종료
print("주문을 종료합니다.")
breakFlag=True
else: #잘못 입력
print("잘못 입력하셨습니다.")
print("현재 주문 금액 : %d\n" %total_price)
def selectSize():
global total_price
size = (int(input("사이즈를 선택해주세요(1. Tall 2.Grande 3.Venti): ")))
if size==1: #Tall
total_price += tall
elif size==2: #Grande
total_price += grande
elif size==3: #Venti
total_price += venti
else: #잘못 입력
print("잘못 입력하셨습니다.")
print("현재 주문 금액: %d" %total_price)
def payment():
cash = (int(input("현금을 넣어주세요: ")))
change = cash - total_price
print("잔돈 %d원 입니다. 안녕히 가십시오." %change)
if __name__=="__main__": #메인
menu1 = "아메리카노"
menu2 = "카페라떼"
price1 = 4500
price2 = 5000
tall = 0
grande = 500
venti = 1000
total_price = 0
breakFlag = False
while True:
showMenu()
selectMenu()
if breakFlag ==True: # flag 확인 시 true값 가지면 break
break
selectSize()
payment()
4.
def showMenu():
print("===== 2022 Starbucks Menu =====")
print("0. 주문종료")
print("1. %s : %d원" % (menu1, price1))
print("2. %s : %d원\n" % (menu2, price2))
print("사이즈 : Tall + %d원, Grande + %d원, Venti +%d원" %(tall, grande,venti))
print("===============================")
def selectMenu():
global coffee
global breakFlag
menu = int(input("메뉴를 선택해주세요:"))
if menu==1:
print("%s를 선택하셨습니다." %menu1)
coffee += price1
elif menu==2:
print("%s를 선택하셨습니다." %menu2)
coffee += price2
elif menu==0: #주문종료
print("주문을 종료합니다.")
breakFlag = True
else: #잘못 입력
print("잘못 입력하셨습니다.")
def selectSize():
global coffee
global total_price
global continueFlag
size = (int(input("사이즈를 선택해주세요(1. Tall 2.Grande 3.Venti): ")))
if size==1: #Tall
coffee += tall
total_price += coffee
elif size==2: #Grande
coffee += grande
total_price += coffee
elif size==3: #Venti
coffee += venti
total_price += coffee
else: #잘못 입력
print("잘못 입력하셨습니다.")
continueFlag = True
print("현재 주문 금액: %d\n" %total_price)
def payment():
cash = (int(input("현금을 넣어주세요: ")))
change = cash - total_price
print("잔돈 %d원 입니다. 안녕히 가십시오." %change)
if __name__=="__main__": #메인
menu1 = "아메리카노"
menu2 = "카페라떼"
price1 = 4500
price2 = 5000
tall = 0
grande = 500
venti = 1000
total_price = 0
breakFlag = False
while True:
continueFlag = False
coffee = 0 #음료 단가+사이즈 추가금액
showMenu()
selectMenu()
if breakFlag == True: # flag 확인 시 true값 가지면 break
break
if continueFlag == True: #잘못 입력 시 메뉴 다시 보여줌
continue
selectSize()
payment()