티스토리 뷰

지금까지 배운 내용을 복습하기 위한 퀴즈를 드리겠습니다. 직접 한 번 풀어보시고 나서 정답을 확인해주세요.

Quiz) 표준 체중을 구하는 프로그램을 작성하시오

* 표준 체중 : 각 개인의 키에 적당한 체중

 

(성별에 따른 공식)

 남자 : 키(m) * 키(m) * 22

 여자 : 키(m) * 키(m) * 21

 

조건1 : 표준 체중은 별도의 함수 내에서 계산

        * 함수명 : std_weight 

        * 전달값 : 키(height), 성별(gender)

조건2 : 표준 체중은 소수점 둘째자리까지 표시

 

(출력 예제)
175cm 남자의 표준 체중은 67.38kg 입니다.

 

▼ 해설 보기

더보기

표준 체중을 계산하는 함수를 먼저 정의하겠습니다.

조건1에 제시된 대로 함수명을 std_weight 라고 적고 키(height)와 성별(gender) 정보를 전달값으로 적습니다. 계산을 쉽게 하기 위해 키는 미터(m) 단위로 받는다고 가정하고, 함께 전달받은 성별정보를 확인하여 남자와 여자일 때의 공식을 퀴즈 본문에 적힌 대로 그대로 적용합니다. 그리고 함수를 호출하는 곳으로 표준 체중을 반환해주기 위해 return 처리를 해주면 되겠네요.

def std_weight(height, gender): # 키 m 단위 (실수), 성별 "남자" / "여자"
    if gender == "남자":
        return height * height * 22
    else:
        return height * height * 21

 

이제 이 함수를 호출하기 위해 다음 코드를 더 적어줍니다. 지금 시점에서는 조건2의 소수점 반올림 처리는 생각하지 않기로 하죠. cm 단위로 되어 있는 키를 m 단위로 변환하기 위해서 함수 호출 시 height 변수에서 100 을 나눈 값을 전달값으로 사용한다는 점만 주의하면 되겠네요.

height = 175 # cm 단위
gender = "남자"
weight = std_weight(height / 100, gender) # cm 단위인 키를 m 단위로 변환
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다.".format(height, gender, weight))

 

코드를 실행해보면 다음과 같이 결과를 확인할 수 있습니다.

키 175cm 남자의 표준 체중은 67.375kg 입니다.

이제 조건2 를 처리해볼까요?

우리가 앞에서 숫자 처리 함수를 공부할 때 반올림을 해주는 round() 라는 함수를 배웠습니다. 이 함수로 std_weight() 호출 부분을 감싸주면 첫 번째 전달값인 표준 체중 결과를 두 번째 전달값인 2 에 의해서 소수점 둘째자리까지 반올림한 결과를 확인할 수 있습니다. 

height = 175 # cm 단위
gender = "남자"
# weight = std_weight(height / 100, gender)
weight = round(std_weight(height / 100, gender), 2) # 소수점 둘째자리까지 반올림
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다.".format(height, gender, weight))

 

다시 실행해보면 이번에는 반올림까지 되어서 결과가 나오는 것을 확인할 수 있습니다.

키 175cm 남자의 표준 체중은 67.38kg 입니다.

 

완성된 전체 코드입니다.

def std_weight(height, gender): # 키 m 단위 (실수), 성별 "남자" / "여자"
    if gender == "남자":
        return height * height * 22
    else:
        return height * height * 21

height = 175 # cm 단위
gender = "남자"
weight = round(std_weight(height / 100, gender), 2) # 소수점 둘째자리까지 반올림
print("키 {0}cm {1}의 표준 체중은 {2}kg 입니다.".format(height, gender, weight))

 

이번 퀴즈만 완벽히 이해하시면 함수의 대부분을 파악하는 것과 같습니다. 아주 중요한 내용이니 만약 스스로 완성을 못하셨다면 해설을 보신 후에 내용을 이해하시고, 이해하신 내용을 바탕으로 처음부터 다시 코드를 작성해보는 연습을 하시면 여러분의 실력 향상에 큰 도움이 될 거라 생각합니다.

 

단, 절대 코드를 외우려고 하시면 안되며 이해를 하셔야 합니다. 그 과정에서 해설에 제시된 코드와 일부 다르게 작성한다고 해도 동작만 잘 한다면 아무런 상관이 없습니다. 스스로 이해하신 내용을 코드로 표현한다는 것이 무엇보다 중요하니까요.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함