Python OverflowError:Python Int가 너무 커서 C Long으로 변환할 수 없습니다.

Manav Narula 2023년6월21일
  1. Python에서 OverflowError: Python int too large to convert to C long
  2. Python에서 OverflowError: Python int too large to convert to C long 수정
Python OverflowError:Python Int가 너무 커서 C Long으로 변환할 수 없습니다.

이 튜토리얼은 Python에서 OverflowError: python int too large to convert to c long 오류를 보여줍니다.

Python에서 OverflowError: Python int too large to convert to C long

산술 결과가 주어진 데이터 유형 제한을 초과하면 Python에서 OverflowError가 발생합니다. 주어진 범위보다 큰 정수 값으로 연산을 시도하기 때문에 이 지정된 오류가 발생합니다.

암호:

import numpy as np

arr = np.zeros((1, 2), dtype=int)
a = [6580225610007]
arr[0] = a

출력:

OverflowError: Python int too large to convert to C long

위의 예는 int 유형의 배열을 만듭니다. int 유형 범위보다 큰 정수를 포함하는 목록을 저장하려고 합니다.

최대 크기는 sys 라이브러리의 상수를 사용하여 확인할 수도 있습니다. 이 상수는 sys.maxsize로 사용할 수 있습니다.

Python에서 OverflowError: Python int too large to convert to C long 수정

이 오류를 방지하려면 int 유형과 함께 사용할 수 있는 최대 범위를 염두에 두어야 합니다. 특히 numpy 배열과 관련된 이 예제에는 수정 사항이 있습니다.

int 유형은 C 언어의 long int 유형과 동일하며 Python 3에서 변경되었으며 int 유형은 임의 정밀도 유형으로 변환되었습니다.

그러나 numpy 라이브러리는 Python 2에서 선언된 대로 여전히 이를 사용합니다. long int는 일반적으로 플랫폼에 따라 다르지만 Windows의 경우 항상 32비트입니다.

이 오류를 수정하기 위해 플랫폼에 종속되지 않은 다른 유형을 사용할 수 있습니다. 가장 일반적인 대안은 np.int64 유형이며 dtype 매개변수를 사용하여 배열에 지정합니다.

암호:

import numpy as np

arr = np.zeros((1, 2), dtype=np.int64)
a = [6580225610007]
arr[0] = a
print(arr)

출력:

[[6580225610007 6580225610007]]

위의 예는 대체 유형을 사용하여 오류가 해결되었음을 보여줍니다.

또 다른 방법은 tryexcept 블록을 사용하는 것입니다. 이 두 블록은 Python에서 예외를 해결하는 데 사용됩니다.

try 블록에서 예외가 발생하면 except 블록의 코드가 실행됩니다.

암호:

import numpy as np

arr = np.zeros((1, 2), dtype=int)
a = [6580225610007]
try:
    arr[0] = a
except:
    print("Error in code")

출력:

Error in code

위의 예는 tryexcept 블록을 사용하여 오류를 방지합니다. 이것은 주어진 오류에 대한 수정이 아니라 이를 해결하기 위한 방법임을 기억하십시오.

작가: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

관련 문장 - Python Error