본문 바로가기

Manual

파이썬, 체질량지수(BMI)와 정상체중 범위

Photo by Derek Finch unsplash.com

체질량지수는 체중을 신장의 제곱으로 나누어 비만도를 가늠하는 지수로 한국인의 경우 체질량 지수가 25 이상이면 비만으로 친다.(출처: 네이버 국어사전) 중요한 건강지표 중 하나인 체질량지수를 알아보고, 정상체중 범위를 알려주는 프로그램을 만들어보자.

 

1. 데이터 입력받기

2. 체질량지수(BMI) 계산

3. 체질량지수(BMI) 판정

4. 결과 출력

 


1. 데이터 입력받기

  • input() 문으로 데이터를 입력받아 변수로 저장한다. 

        대답을 입력할 변수 = input('질문할 말')

  • 몸무게와 키를 입력받을 변수의 이름을 각각 'weight', 'height'라 하자.
  • 둘 다 소수점이 나올 수 있으므로 float(실수형)로 지정한다. 
  • 다음 줄로 넘기기 위해 줄 바꿈 기호(\n)를 사용한다.
  • while() 문을 사용하여 입력받은 데이터를 확인하는 과정을 거친다.

        while( 조건 ) :
             실행할 명령

  • 여기서는 '1'을 입력할 때까지 키와 몸무게를 입력받는 과정을 반복한다.
ans = 0
while( ans !=1):
     print('==================== \n')
     print('몸무게를 kg 단위로 입력하세요.')
     weight=float(input('만약, 60.5 kg이면 "60.5"를 입력하고 Enter키를 누르세요. \n'))
     print('\n키를 cm 단위로 입력하세요.')
     height=float(input('만약, 1m 70cm이면 "170"를 입력하고 Enter키를 누르세요.\n'))
     print('\n === 몸무게는', weight, 'kg, 키는 ', height, 'cm가 입력 됩니다. ===' )
     ans=int(input('\n입력한 값이 정확하면 "1", 잘못 입력 되었으면 "2"를 입력하고 Enter 키를 누르세요.\n'))

 

2. 체질량지수(BMI) 계산

  • 체질량지수(BMI)는 kg 단위의 몸무게를 m 단위의 키의 제곱으로 나누어 계산한다.
  • cm 단위로 입력받은 키 data를 m 단위로 변환해 변수 HEIGHT에 저장한다.
  • 몸무게/(키*키)로 계산하여 변수 BMI에 저장한다. 
# 체질량지수 계산
HEIGHT=height/100      #키를 m단위로 변환
BMI=weight/(HEIGHT*HEIGHT)

 

3. 체질량지수(BMI) 판정

두산백과사전에 따르면, 16세 이상 모든 남녀에 대해 BMI 수치가 20 미만일 때를 저체중, 20~24일 때를 정상체중, 25~30일 때를 경도비만, 30 이상인 경우에는 비만으로 본다. 또한, 75세 이하 남성과 여성 모두에 대하여 이 지수가 높을수록 질병에 걸릴 확률과 사망할 확률이 높아진다고 하니 정상 체중을 유지하기 위해 노력할 필요가 있다. 체질량지수가 너무 작을 때도 문제가 되는데, 18 미만인 경우에는 여성의 경우 무월경이 시작될 수 있다고 한다.

  • if ~ elif ~ else 문을 이용한다.
  • 제일 먼저 BMI 값이 20 이하인 경우를 '저체중'으로 판정한다.
  • 20 이하인 경우가 제외되었으므로 24 이하인 경우를 '정상체중'으로 판정한다.
  • 같은 방법으로 30 미만인 경우 '경도비만'으로 판정한다.
  • 나머지는 30 이상인 경우이므로 '비만'으로 판정한다.
# BMI 판정 
if BMI < 20 :
     Judgment = '저체중'

elif BMI < 24 :
     Judgment = '정상체중'

elif BMI < 30 : 
     Judgment = '경도비만'

else:
    Judgment = '비만'
  • 정상체중 범위를 계산하여 알려주면 좋겠다.
# 정상 범위 계산 
BMI_min = 20*HEIGHT*HEIGHT # 정상체중 최저치 계산
BMI_max = 24*HEIGHT*HEIGHT   # 정상체중 최고치 계산

 

4. 결과 출력

print()를 이용하여 체질량지수 판정 결과를 화면에 출력되게 하자.

출력되는 부분이 쉽게 구분되도록 출력 전과 후에 선을 출력한다.

# 결과 출력
print('\n ========= Result ========= \n')
print(weight, 'kg ', height, 'cm 이면, '  )
print('당신의 체질량 지수는', format(BMI, '.2f'), '(으)로 ', Judgment, '이며, \n'  )
print('정상체중 범위는', format(BMI_min, '.2f'), 'kg 부터', format(BMI_max, '.2f'),'kg 사이 입니다.')
print(' ======================= \n\n')

《결과》

 

BMI.py
0.00MB


 

728x90