Skip to content
파이썬
2021.09.09 21:56

파이썬 오류모음(에러모음)

조회 수 90 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

파이썬 키움증권 오류모음

 

 

 

 

TypeError: list indices must be integers or slices, not str

1.png

 

2.png

 

 


hoga_temp = self.hoga_stock_dict[self.hoga_x[index]]

 

list형에 숫자를 넣는게 아니라 문자를 넣어야 한다.

 


 

ValueError: invalid literal for int() with base 10: ' '
 

이러한 에러가 나는 이유

1 2 3 4와 같이 값 사이에 공백이 있는 입력을 받았는데 공백을 int로 형변환 하면 생긴다.

input이나 sys.stdin.readline()으로 입력 받으면

list = [1, ' ', 2, ' ', 3, ' ', 4] 이런식으로 리스트에 값이 들어갈 것이다.

for i in range(n):

  int(list[i])

이렇게 되면 에러가 뜰 것이다. 1은 str형이라 int형으로 변환이  가능하지만, ' '은 공백이라 매칭되는 int형 값이 나올 수 없다.

 

sys.stdin.readline().split(' ') 이렇게 split()을 써서 공백을 기준으로 분리해야한다.



 

 

 

ValueError: invalid literal for int() with base 10: '' 오류

현재가 for문으로 여러개의 데이터 조회중에 갑자기 나타난 오류??? 뭘까?

Traceback (most recent call last):

  File "연습장.py", line 362, in tr_slot

    trvalue = abs(int(trvalue.strip()))    =>>>   int(float(e))

ValueError: invalid literal for int() with base 10: ''

 

H:\python\kiwoomapi\anaconda3\키움증권>

 

 

 해결 방법

 

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

 

소수점부분이 잘려나가서 정수만 남게 되었군요 ㅎㅎ

반올림의 개념이 아닌 정수부분만 남게 된것에 주목해주세요!



출처: https://korbillgates.tistory.com/94 [생물정보학자의 블로그]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

로그인 후 댓글쓰기가 가능합니다.

?

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소