들어가며
오늘 살펴볼 파이썬 에러코드는 아래 에러 코드 입니다.
ValueError: invalid literal for int() with base 10: '218060850477.326'
'ValueError: invalid literal for int() with base 10: '218060850477.326' 에서 '' 상에 묶여져 있는 숫자는 언제든지 바뀔 수 있습니다.
DATA TYPE
우선 위 에러코드를 알기전에 "DATA TYPE"이 뭔지 " 형변환" 이 뭔지 알고가야 합니다.
파이썬 뿐만아니라 대부분의 언어에서 변수를 나타내는 DATA TYPE ( 형 )을 가지고 있습니다. 해당 변수가 정수인지, 실수인지, 문자열인지, 또 다른 구조를 가지고 있는지를 뜻합니다.
또한 Python 에서는 아래와 같은 다양한 Data Types 을 가지고 있습니다.
형변환
특정 변수가 가지고 있는 "1.2" 라는 값이 있다고 합시다. 사용자는 이게 숫자인지, 문자열인지를 알아야 합니다. 문자 1.2 는 덧셈 뺄셈이 불가능하고, 숫자 1.2 는 덧셈 뺄셈이 가능하죠.
따라서 문자열 "1.2" 를 덧셈뺄셈등의 연산을 하기 위해서 숫자 "1.2" 로 변환하는 과정을 "형변환" 이라고 합니다.
파이썬 형변환
파이썬에서는 여러가지 형변환 함수를 제공하고 있는데, 대표적인 함수는 아래와 같습니다.
- str() : 문자열로 바꾸기
- int() : 정수로 바꾸기
- float() : 실수로 바꾸기
또한 int () 형변환 함수를 사용할때는 유념해야 할 점이 있습니다.
a ='1.2'
int(a)
이 예시를 실행하면 바로
'ValueError: invalid literal for int() with base 10:
에러가 발생합니다. int()는 정수문자열(interger string)과 실수만 인수로 받기 때문입니다.
에러
에러 코드는 아래 코드에서 발생하였습니다. "data['acc_trade_value']" 가 소수점으로 된 문자열이고, 이를 int () 로 변환하고자 할때, int 안의 인자가 실수와 , 정수 문자열이 아니기 때문에 발생합니다.
total_value = total_value + int ( data['acc_trade_value'] )
해결 방법
1) 소수점이 포함된 문자열을 정수로 형 변환을 하고 싶을 때, 먼저 float 으로 형변환을 한다.
2) float 으로 형변환한 실수를 다시 int 정수로 변환한다.
total_value = total_value + int ( float ( data['acc_trade_value'] ) )
'IT > Python' 카테고리의 다른 글
Python - asyncio 비동기 함수 코루틴에 대해서 알아보기 (5) | 2021.11.11 |
---|---|
Python Error - SSLCertVerificationError (6) | 2021.11.11 |
Python Error - Failed to establish a new connection: [WinError 10061] (3) | 2021.10.10 |
Python Error - UnicodeDecodeError : 'utf8' codec can't decode byte 0xeb in position 0 (16) | 2021.10.07 |
파이썬 크롤링 - 크롬화면 띄우지 않기 (10) | 2021.10.04 |
댓글