어떤 상점에서는 상품을 한꺼번에 많이 구매하면 다음과 같이 상품 가격을 할인해 준다.
이 쇼핑몰에서 구매할 상품 개수를 입력받아, 총 지불해야 할 가격을 계산하 는 함수 price()
를 정의하라. 함수를 정의한 후에는 이 함수에 여러 상품 개수를 입력하여 결과가 올바른지 확인해 보라.
코드
def price(number_of_products):
"""구매할 상품의 수를 입력받아 가격의 합을 계산한다.
한꺼번에 많은 양을 구매하면 할인이 적용된다."""
if number_of_products < 10:
return number_of_products * 100
elif number_of_products < 30:
return number_of_products * 95
elif number_of_products < 100:
return number_of_products * 90
else:
return number_of_products * 85
# 함수의 동작 확인
print(price(5))
print(price(10))
print(price(15))
print(price(30))
print(price(50))
print(price(100))
실행 결과
500
950
1425
2700
4500
8500
10 <= number_of_products < 30
이다. 그런데, 앞서 첫번째 조건 number_of_products < 10
을 검사한 상태이기 때문에, 두번째 조건 number_of_products < 30
을 검사할 때는 이미 number_of_products
10 미만이 아닐 것이다. 따라서 답안에서는 두 번째 조건에서 not number_of_products < 10
, 즉 10 <= number_of_products
는 굳이 명시하지 않았다. 하지만 여러분의 답안에서 조건을 똑같이 명시했더라도 틀리거나 나쁜 답인 건 아니다.