반응형
사용자로부터 키(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('극심한 영양불량')
반응형
'Language > Python' 카테고리의 다른 글
[ Python ] n각형을 그리는 함수 작성 프로그램 (0) | 2021.09.01 |
---|---|
[ Python ] 환전 계산기 프로그램 (0) | 2021.09.01 |
[ Python ] 랜덤값 합/평균 출력 프로그램 (0) | 2021.09.01 |
[ Python ] 함수 개념 정리 (0) | 2021.09.01 |
[ Python ] 주사위 2개 같은 숫자 나오기 게임 프로그램 (0) | 2021.09.01 |