본문 바로가기

Python 기본 문법

[파이썬] BMI(체질량 지수) 계산기 프로그래밍

반응형

 

안녕하세요.

파이썬을 공부하는

가정의학과 전문의

닥터 배도사입니다. 

 

오늘은 파이썬을 이용하여

BMI를 계산하고

정상, 과체중, 비만 유무를 판정하는 

프로그램을 만들어 보겠습니다. 

 

BMI란 체질량 지수를 말하며

키와 몸무게를 바탕으로

비만 유무를 판정하는 지수가 되겠습니다.  

 

 

제가 파이썬 코드를 작성해본 

BMI를 구하고

비만 유무를 판정하는 프로그램은

위 그림과 같습니다. 

 

그럼 프로그램 코드를

구간별로 자세히 알아보겠습니다. 

 

# BMI를 구하는 함수를 정의한다.
# BMI를 구하는 공식: height/(weight **2)
# 이때 height의 단위는 cm, weight의 단위는 kg 이다.

def BMI_calc(a, b):
    return int(a/(b ** 2))

 

먼저 BMI를 구하는 함수를 정의합니다. 

BMI를 구하는 공식은 "키/몸무게^2" 입니다. 

즉, 키를 몸무게의 제곱으로 나눈 값입니다. 

 

여기서 단위가 중요한데요.

키의 단위는 m,

몸무게의 단위는 kg입니다. 

 

def BMI_calc(a, b):
    return int(a/(b ** 2))

 

BMI 를 계산하는

BMI_calc라는 함수를 정의합니다. 

 

BMI_calc 함수는

a, b라는 변수를 넣으면

a를 b의 제곱으로 나누어 줍니다. 

그리고 이 값을 정수형으로 바꾼 값을 

반환해 줍니다. 

 

BMI_calc 함수에

변수 a에는 키,

변수 b에는 몸무게를 넣어 주면

BMI가 계산됩니다. 

 

# 자신의 키와 몸무게를 입력하고 BMI를 구해 줍니다. 

weight = int(input("몸무게를 입력하세요(단위 kg):"))
height = int(input("키를 입력하세요:(단위 cm):"))
height_m = height/100

BMI = BMI_calc(weight, height_m)

 

자신의 몸무게와 키를 입력하기 위한

input 구문을 작성해 줍니다. 

 

weight = int(input("몸무게를 입력하세요(단위 kg):"))
height = int(input("키를 입력하세요:(단위 cm):"))
height_m = height/100

 

키와 몸무게를 정수형으로

int() 처리해 줍니다. 

 

이 때 키의 단위가 중요합니다. 

우리가 보통 키를 cm 단위로 생각을 합니다. 

하지만 BMI를 구할 때는 m 단위를 쓰기 때문에

cm로 입력한 키를 100으로 나누어m 단위로 바꾸어 줍니다. 

 

height_m = height/100

 

입력받은 키와 몸무게를 바탕으로

앞서 정의한 BMI_calc 함수를 이용하여

BMI를 계산하고 이 값을 

BMI라는 변수에 할당합니다.  

 

BMI = BMI_calc(weight, height_m)

 

# BMI 결과에 따라 비만 유무를 판정한다.
# BMI ≥23 kg/㎡: 과체중, BMI ≥25 kg/㎡: 비만, BMI ≥30 kg/㎡: 고도비만

if BMI>= 23 and BMI< 25 :
    BMI_result = "과체중"
elif BMI>= 25 and BMI< 30:
    BMI_result = "비만"
elif BMI>= 30:
    BMI_result = "고도비만"
else:
    BMI_result = "정상"

 

BMI 결과에 따라 비만 유무를 판정합니다.

BMI에 따른 비만 유무 판정 기준은 다음과 같습니다. 
(BMI ≥23 kg/㎡: 과체중, BMI ≥25 kg/㎡: 비만, BMI ≥30 kg/㎡: 고도비만)

 

이를 위해 if 구문을 사용합니다. 

 

if BMI>= 23 and BMI< 25 :
    BMI_result = "과체중"

 

만약 계산한 BMI가 23이상 25 미만이라면

BMI_result에 '과체중' 이라는 값을 할당합니다. 

 

나머지 기준도 if 구문을 사용하여 작성해 줍니다. 

 

# 결과를 출력한다.

print("당신의 BMI는 %d 입니다." %BMI)
print("당신은 %s 입니다." %BMI_result)

 

결과를 출력합니다. 

 

키와 몸무게를 이용해 계산한 BMI는 

BMI 라는 변수에 할당하였고

 

BMI에 따른 비만 유무 판정은

if 구문을 이용하여

BMI_result 변수에 할당하였습니다. 

 

결과를 다음과 같이 출력해 줍니다. 

 

print("당신의 BMI는 %d 입니다." %BMI)
print("당신은 %s 입니다." %BMI_result)

 

 

이 프로그램을 실행해 보았습니다. 

제 키는 173cm, 몸무게는 70kg입니다. 

이를 입력창에 입력하면

다음과 같은 결과가 나옵니다. 

 

저의 BMI는 23이고 과체중에 속하네요.

 

지금까지 파이썬을 이용하여

BMI를 구하는 프로그램을 만들어 보았습니다. 

 

제가 처음으로 만들어본 

프로그램이라 기분이 좋습니다. 

 

비록 간단한 프로그램이지만

앞으로 계속 발전해 나가리라고 믿습니다. 

 

여러분들도 

도전해 보세요~

반응형