반응형
안녕하세요 한주현입니다.
오늘은 파이썬 형변환에서 발생하는 오류인
ValueError: invalid literal for int() with base 10: '4.3'
에 대하여 알아보겠습니다.
파이썬에서는 형변환이 간단합니다.
문자형으로 바꿀 때는 str()
정수형으로 바꿀 때는 int()
실수형으로 바꿀 때는 float()
를 각각 사용합니다.
문자열을 정수로 변환
1 2 3 | >>> a = '10' >>> int(a) 10 | cs |
문자열을 실수로 변환
1 2 3 | >>> b = '4.3' >>> float(b) 4.3 | cs |
정수를 문자열로 변환
1 2 3 | >>> c = 7 >>> str(c) '7' | cs |
실수를 문자열로 변환
1 2 3 | >>> d = 2.71 >>> str(d) '2.71' | cs |
문제 상황
ValueError: invalid literal for int() with base 10: '4.3'
문자열을 정수로 바꾸려고 int함수를 사용하였는데,
아래와 같이 ValueError 가 발생하였습니다.
1 2 3 4 5 | >>> e = '4.3' >>> int(e) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '4.3' | cs |
어떻게 된 일일까요??
해결 방법
int 함수는 정수문자열(interger string, "3.14" 과 같은), 실수(float, 6.02)를 인자로 받기를 기대합니다만
예시와 같이 실수문자열(float string)은 넣게 되면 ValueError 가 나게 됩니다.
그렇다면 어떻게 하면 정수로 바꿀 수 있을까요?
먼저 바꾸려는 실수문자열을 float함수를 사용하여 실수로 바꿉니다.
그 다음 실수를 int함수를 사용하여 정수로 바꾸면 됩니다.
1 2 3 4 5 | >>> e = '2.71' >>> float(e) 2.71 >>> int(float(e)) 2 | cs |
소수점부분이 잘려나가서 정수만 남게 되었군요 ㅎㅎ
반올림의 개념이 아닌 정수부분만 남게 된것에 주목해주세요!
오늘의 포스팅이 여러분들께 도움이 되셨으면 좋겠네요
그럼 다음 시간에 만나요!
반응형
'컴퓨터 > Python' 카테고리의 다른 글
[파이썬] 파이썬 에러 NameError: name 'xrange' is not defined : range vs. xrange 차이점 (4) | 2017.11.02 |
---|---|
[파이썬] 파이썬 에러 KeyError - 두 가지 해결 방법 (2) | 2017.11.02 |
[파이썬] 파이썬 에러 SyntaxError: Missing parentheses in call to 'print' (4) | 2017.11.01 |
[파이썬] 파이썬 에러 IndentationError: expected an indented block (0) | 2017.11.01 |
[파이썬] 파이썬 에러 IndexError: list index out of range (0) | 2017.11.01 |
댓글