Language/Python

[ Python ] BMI 계산 프로그램

곽수진 2021. 9. 1. 23:05
반응형
사용자로부터 키(m 단위)와 몸무게(kg 단위)를 입력받아 BMI를 구하고 18.5 미만이면 저체중, 18.5~22.9 사이면 정상, 23~24.9 사이면 과체중 25~29.9 사이면 경도비만, 30 이상이면 고도비만임을 출력하는 프로그램을 작성해보자.

BMI = 몸무게(kg) / 키(m) X 키(m)

 

def getvalue():
    weight=float(input("몸무게 입력: "))
    height=float(input("키 입력: "))
    return weight, height

def bmifunc(weight, height):
    bmi = weight/(height*height)
    return bmi

def result_print(bmi):
    if bmi < 18.5:
        print("저체중입니다.")
    elif 18.5 <= bmi <= 22.9:
        print("정상입니다.")
    elif 23.0 <= bmi <= 24.9: 
        print("과체중입니다.")
    elif 25.0 <= bmi <= 29.9:
        print("경도비만입니다.")
    elif bmi >= 30.0:
        print("고도비만입니다.")

w, h = getvalue()
result_print(bmifunc(w,h))

▶️ getvalue() 사용자 정의 함수를 생성해 사용자로부터 몸무게와 키를 입력받음

def getvalue():
    weight=float(input("몸무게 입력: "))
    height=float(input("키 입력: "))
    return weight, height

▶️ bmifunc() 사용자 정의 함수를 생성해 BMI 계산하는 함수 생성

def bmifunc(weight, height):
    bmi = weight/(height*height)
    return bmi

▶️ result_print() 사용자 정의 함수를 생성해 매개변수로 bmi 값을 받고 사용자의 입력값에 따라 계산된 BMI 값을 토대로 결과를 출력함

def result_print(bmi):
    if bmi < 18.5:
        print("저체중입니다.")
    elif 18.5 <= bmi <= 22.9:
        print("정상입니다.")
    elif 23.0 <= bmi <= 24.9: 
        print("과체중입니다.")
    elif 25.0 <= bmi <= 29.9:
        print("경도비만입니다.")
    elif bmi >= 30.0:
        print("고도비만입니다.")

 

결과값 출력 모습

 

 

 

★ 결과값은 동일하지만 다른 코드로도 표현 가능 ★ 

def BMI(height, weight):
    result = weight / (height*height)
    return result

def result_print(result):
    if result < 18.5:
        print('저체중')
    elif result >=18.5 and result < 23:
        print('정상')
    elif result >= 23 and result < 25:
        print('과체중')
    elif result >= 25 and result < 30:
        print('경도비만')
    else:
        print('고도비만')

h = float(input("키를 m단위로 입력하세요: "))
w = float(input("몸무게를 kg단위로 입력하세요: "))

result = BMI(h, w)
result_print(result)

 

 

 


 

 

 

표준체중 백분율 방법으로 비만도를 계산해 표준체중이 200 이상이면 고도비만, 120~199는 비만, 111~120은 과체중, 90~110은 정상, 80~89는 저체중(경도의 영양불량), 70~79는 극심한 저체중(중증도의 영양불량), 69 미만은 극심한 영양불량임을 출력하는 프로그램을 작성해보자.

남자의 표준체중 = 키(m)^2 X 22


여자의 표준체중 = 키(m)^2 X 21

비만도(%표준체중) = (실제체중 / 표준체중) X 100

 

def BMI(height):
    if gender == '남성':
        avg_weight = (height**2) * 22
    elif gender == '여성':
        avg_weight = (height**2) * 21
    return avg_weight

def obesity(avg_weight, weight):
    result = (weight / avg_weight) * 100
    return result

def result_print(result):
    if result >= 200:
        print('고도비만')
    elif result >= 121 and result < 200:
        print('비만')
    elif result >= 111 and result < 121:
        print('과체중')
    elif result >= 90 and result < 111:
        print('정상')
    elif result >= 80 and result < 90:
        print('저체중(경도의 영양불량)')
    elif result >= 70 and result < 80:
        print('극심한 저체중(중증도의 영양불량)')
    elif result < 69:
        print('극심한 영양불량')

gender = input('성별을 입력하세요: ')
height = float(input('키를 입력하세요: '))
weight = float(input('몸무게를 입력하세요: '))

result = obesity(BMI(height), weight)
result_print(result)

▶️ BMI() 사용자 정의 함수를 생성해 height값을 매개변수로 받고 사용자가 입력한 성별에 따라 표준 체중을 계산

def BMI(height):
    if gender == '남성':
        avg_weight = (height**2) * 22
    elif gender == '여성':
        avg_weight = (height**2) * 21
    return avg_weight

▶️ obesity() 사용자 정의 함수를 생성해 avg_weight와 weight 값을 매개변수로 받고 비만도를 계산

def obesity(avg_weight, weight):
    result = (weight / avg_weight) * 100
    return result

▶️ result_print() 사용자 정의 함수를 생성해 result 값을 매개변수로 받고 계산에 따른 결과를 출력

def result_print(result):
    if result >= 200:
        print('고도비만')
    elif result >= 121 and result < 200:
        print('비만')
    elif result >= 111 and result < 121:
        print('과체중')
    elif result >= 90 and result < 111:
        print('정상')
    elif result >= 80 and result < 90:
        print('저체중(경도의 영양불량)')
    elif result >= 70 and result < 80:
        print('극심한 저체중(중증도의 영양불량)')
    elif result < 69:
        print('극심한 영양불량')

 

결과값 출력 모습

반응형