반응형
체질량지수는 체중을 신장의 제곱으로 나누어 비만도를 가늠하는 지수로 한국인의 경우 체질량 지수가 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') |
《결과》
728x90
'Manuals > 파이썬' 카테고리의 다른 글
파이썬 tkinter, TOEIC 단어 암기 프로그램 (0) | 2023.04.14 |
---|---|
파이썬 pandas, 액셀 파일 사용 (0) | 2023.04.03 |
파이썬 GUI, tkinter를 이용한 시간 관리 프로그램 (1) | 2023.03.24 |
파이썬 turtle, 함수 사용 꽃 그리기 (1) | 2023.03.22 |
파이썬 tkinter, 냉동식품 관리(1) (0) | 2023.03.11 |