데이터 꿈나무
[Python] 층수에 따라 음식값 받는 프로그램 본문
안녕하세요~ 이번 포스팅은 층수에 따라 음식값을 다르게 받도록 하는 프로그램을 작성해보려고 해요~!
다른 방법들도 많겠지만, 제가 짠 코드를 한번 설명해드리려고 합니다!
재미있게 봐주세요:)
문제
학교 앞에 새로운 배달 식당이 문을 열었습니다.
이 식당은 음식값을 집의 층수에 따라 구분해서 받는다고 합니다.
디음 표를 기반으로 층수에 따른 가격을 산정해야 합니다. 주문자가 집 호수를 입력하면 몇 층인지를 판단하여 가격을 출력하세요. 예를 들어 101호는 1층, 1502호는 15층으로 계산합니다.
| 1~5층 | 기본가격 4000원 |
| 6~10층 | 10% 추가 |
| 11층~15층 | 20% 추가 |
| 16층~20층 | 30% 추가 |
| 21층 이상 | 주문 거부 |
코드
price_basic = 4000 # 기본가격
price_10 = price_basic + (price_basic * 0.1)
price_20 = price_basic + (price_basic * 0.2)
price_30 = price_basic + (price_basic * 0.3)
우선 기본 가격과 10%, 20%, 30% 추가한 가격을 각각의 변수에 넣어줍니다.
user = input("집 호수를 숫자만 입력하세요.")
그리고 사용자로부터 집 호수를 입력받습니다.
아래에서 슬라이스를 이용하여 호수의 층수가 1자리(ex.9층)인지, 2자리(ex.15층)인지 구분할 것이기 때문에 문자형으로 입력받도록 해줍니다.
입력받은 수를 user 변수에 저장해줍니다.
if len(user) < 4: # 해당 호수가 3자리인 경우
num = int(user[:1])
elif len(user) < 5: # 해당 호수가 4자리인 경우
num = int(user[:2])
만약 입력받은 호수가 총 3자리인 경우, 슬라이스를 이용해 입력받은 값의 첫번째 수만 뽑아서 int를 통해 수치형으로 변환시켜 줍니다. 그리고 변수 num에 저장해줍니다.
예를 들어, 사용자가 903을 입력한 경우 맨 앞자리 문자 9만 뽑아내서 이것을 숫자 9로 변환시켜 준 것입니다.
그게 아니라 입력받은 호수가 4자리인 경우, 똑같이 슬라이스를 이용하여 이번엔 두번째 문자까지 뽑아내줍니다. 그리고 수치형으로 바꿔준 후 변수 num에 저장해줍니다.
예를 들어, 사용자가 1502를 입력한 경우 문자 15를 뽑아내서 이것을 숫자 15로 변환시켜 준 것입니다.
if (num >= 1) and (num <=5):
print("해당 호수의 음식 가격은 {}원입니다.".format(price_basic))
elif (num >= 6) and (num <= 10):
print("해당 호수는 10% 추가가 되어 {}원입니다.".format(price_10))
elif (num >= 11) and (num <= 15):
print("해당 호수는 20% 추가되어 {}원입니다.".format(price_20))
elif (num >= 16) and (num <= 20):
print("해당 호수는 30% 추가되어 {}원입니다.".format(price_30))
else:
print("층수가 너무 높아요. 주문을 거부합니다.")
그리고 조건문과 논리 연산자를 이용해서 입력받은 숫자가 1이상 5이하인 경우(1층~5층), 해당 호수의 음식 가격은 기본 가격을 출력합니다.
그게 아니라면 6이상 10이하인 경우(6층~10층), 기본가격에서 10% 추가된 음식 가격을 출력합니다.
그게 아니라면 11이상 15이하인 경우(11층~15층), 기본가격에서 20% 추가된 음식 가격을 출력합니다.
그게 아니라면 16이상 20이하인 경우(16층~20층), 기본가격에서 30% 추가된 음식 가격을 출력합니다.
그리고 21층 이상인 경우, 층수가 너무 높다는 메시지와 함께 주문을 거부합니다.
출력 결과
● 1~5층 출력 결과

● 6~10층 출력 결과

● 11~15층 출력 결과

● 16~20층 출력 결과

● 21층 이상 출력 결과

어떠셨나요? 재밌지 않나요?ㅎㅎ 처음에는 조금 헷갈릴 수 있는데 생각하다보면 금방 코드 짜실 수 있을 거예요~!
지금까지 긴 글 읽어주셔서 감사합니다!!

'Language > Python' 카테고리의 다른 글
| [Python] 람다(lambda)함수 이해하기 (0) | 2023.01.30 |
|---|---|
| [Python] 원하는 숫자를 입력 받아 1부터 그 수까지를 리스트로 만들고, 원소들의 합을 구하는 프로그램 (0) | 2023.01.30 |
| [Python] 컴퓨터와 주사위 놀이하기 (2) | 2023.01.26 |
| [Python] 리스트 연습_개인의 할 일 목록을 관리하는 프로그램(list, append, remove) (0) | 2023.01.02 |
| [Python] 숫자 맞추기 게임(random, for문, if문) (0) | 2023.01.01 |