Programming Language/Python

[Python] ValueError: invalid literal for int() with base 10: '1.70

LeeJaeJun 2023. 12. 29. 10:19
728x90
반응형
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean

height = int(input())
weight = int(input())

BMI = weight / (height * height)

if BMI < 18.5:
	print("저체중")
elif BMI < 23:
	print("정상")
elif BMI < 25:
	print("과체중")
elif BMI < 30:
	print("경도비만")
elif BMI < 35:
	print("중도비만")
else:
	print("고도비만")

height에 1.70을 입력하니 ValueError: invalid literal for int() with base 10: '1.70' 에러가 나타났습니다.

input은 문자형으로 데이터를 입력받습니다. 우리가 입력한 값은 1.70이라는 실수형 값으로 저장된 것이 아니라 "1.70"이라는 문자형 값입니다.

 실수형을 int로 변환하면 문제없이 코드가 돌아가지만 문자형일 경우 int함수가 받을 수 있는 값이 아니기 때문에 에러가 발생합니다.

따라서 실수형 데이터를 입력할 것이라면 int()로 정수형 데이터 변환을 하는 것이 아니라 float()으로 실수형 데이터 변환을 해주어야 합니다.

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean

height = float(input())
weight = float(input())

BMI = weight / (height * height)

if BMI < 18.5:
	print("저체중")
elif BMI < 23:
	print("정상")
elif BMI < 25:
	print("과체중")
elif BMI < 30:
	print("경도비만")
elif BMI < 35:
	print("중도비만")
else:
	print("고도비만")
728x90
반응형