비만도까지 구하는 프로그램을 만들었습디나
1
작성한 질문수 5
gender = input("성별을 입력하세요 (남/녀): ")
height = float(input("키를 입력하세요 (ex: 175): ")) / 100
weight = float(input("현재 체중을 입력하세요 (ex: 70): "))
def std_weight(gender, height):
if gender == "남":
return height * height * 22
elif gender == "녀":
return height * height * 21
return None
def bmi(weight, height):
return round(weight / (height * height), 1)
std_weight_value = std_weight(gender, height)
bmi_value = bmi(weight, height)
if bmi_value < 18.5:
result = "저체중"
elif bmi_value < 23:
result = "정상체중"
elif bmi_value < 25:
result = "과체중"
elif bmi_value < 30:
result = "1단계 비만"
elif bmi_value < 35:
result = "2단계 비만"
else:
result = "3단계 비만"
print("표준 체중:", std_weight_value)
print("BMI:", bmi_value)
print("판정:", result)
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 제리스님
작성하신 코드는 키와 체중을 float으로 변환하고, 키를 미터 단위로 바꾼 뒤 BMI를 계산하는 방식으로 정상적으로 동작합니다.
특히 input()으로 입력받은 값은 기본적으로 문자열이므로, 아래처럼 float()으로 변환한 부분이 중요합니다.
height = float(input("키를 입력하세요 (ex: 175): ")) / 100
weight = float(input("현재 체중을 입력하세요 (ex: 70): "))
또한 성별이 "남" 또는 "녀"가 아닌 경우 std_weight() 함수가 None을 반환하므로, 입력값을 제한하거나 예외 처리를 추가하면 더 안전합니다.
관련된 기존 답변은 다음 글을 참고해 주세요.
input으로 값을 입력받는 기능을 추가했는데 오류가 발생했습니다.
input()으로 입력한 값은 문자열이기 때문에 숫자 계산을 하려면 int() 또는 float()으로 형 변환해야 한다는 내용입니다. 제리스님의 코드에서는 이미 이 부분을 올바르게 처리하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
키보드 단축키 알려주세요!
0
39
1
python.add에 대해서
0
66
1
변수의 문자열 출력문에 대해서 질문이 있습니다.
0
81
1
quiz 8 오류 문제
0
119
1
str() 작성 위치
0
103
1
아나콘다
0
117
1
윈도우 설치 도와주세요
0
140
1
std_weight함수에서weight만return가능한가요?
0
104
1
오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.
0
87
1
설치해서 시작하는데 문제가 있습니다.
0
123
1
함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?
0
210
1
2장 환경설정 문의
0
144
1
스타크래프트 프로젝트
0
121
1
python 파일명.py 입력시 Python 출력
0
208
1
로드맵 질문있습니다!
0
146
2
오류
0
115
1
질문 있습니다.
0
116
1
블로그에 학습한 내용을 정리해도 괜찮을까요?
0
232
1
#퀴즈 3의 5번 질문
0
122
1
print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다
0
118
1
가변인자의 위치가 중요한가요?
0
123
1
vscode옛날 버전 설치
0
287
1
글자색상이 선생님처럼 안나옵니다
0
236
1
슬프네
0
196
1





