연습문제 5-11에 오류가 있어 다음과 같이 정정한다.
잘못된 부분
사전에 정의되어 있지 않은 경우에는 **
None**을 반환한다.
교정
사전에 정의되어 있지 않은 경우에는 0을 반환한다.
수정하는 이유
None
을 반환하도록 하였는데, 문제를 풀려면 None
과 섭취량을 곱해야 한다. 그런데 None
은 곱셈을 지원하지 않으므로 오류가 발생한다.연습문제 5-10에서 정의한 식재료별_칼로리
사전을 활용해 칼로리를 계산하는 함수 칼로리()
를 정의하라. 이 함수는 음식의 종류와 섭취량을 매개변수에 전달받아 총 칼로리를 반환한다. 전달받은 음식이 식재료별_칼로리
사전에 정의되어 있지 않은 경우에는 0을 반환한다. 다음은 이 함수를 대화식 셸에서 실행한 예이다.
>>> 칼로리('돼지고기', 500)
1210.5
>>> 칼로리('소고기', 300)
0
코드
식재료별_칼로리 = {
'밀가루': 364.0 / 100,
'피망': 20.1 / 100,
'올리브': 115.0 / 100,
'돼지고기': 242.1 / 100,
}
def 칼로리(음식종류, 섭취량):
"""음식의 종류와 섭취량을 매개변수에 전달받아 총 칼로리를 반환한다."""
return 식재료별_칼로리.get(음식종류, 0) * 섭취량
# 함수의 동작 확인
print(칼로리('돼지고기', 500))
print(칼로리('소고기', 300))
실행 결과
1210.5
0