TypeError 수정: Python에서 'float' 개체를 정수로 해석할 수 없음

Rana Hasnain Khan 2023년10월10일
TypeError 수정: Python에서 'float' 개체를 정수로 해석할 수 없음

TypeError: 'float' object cannot be interpreted as an integer 오류가 발생하는 이유와 이를 Python에서 해결하는 방법을 소개합니다.

Python에서 TypeError: 'float' 개체를 정수로 해석할 수 없음 수정

Python은 과학 컴퓨팅, 데이터 분석 및 기계 학습을 포함하여 많은 분야에서 널리 사용되는 프로그래밍 언어입니다. Python의 가장 일반적인 데이터 유형 중 하나는 float라고도 하는 부동 소수점 숫자입니다.

그러나 Python에서 float 데이터 유형으로 작업할 때 float를 정수로 해석할 수 없다는 점을 기억하는 것이 중요합니다.

이 기사에서는 이러한 제한의 이유와 Python에서 float 및 정수 개체로 작업하는 방법을 살펴보겠습니다. 먼저 float와 정수의 차이점을 이해하는 것부터 시작하겠습니다.

정수는 소수점이 없는 정수이고 float는 소수점이나 분수가 있는 숫자입니다.

예를 들어 숫자 7은 정수이고 8.0은 float입니다. 마찬가지로 9.6도 float입니다.

두 데이터 유형 모두 숫자를 나타내지만 Python에서 상호 교환할 수 없습니다. 서로 해석될 때마다 오류가 발생할 수 있습니다.

예를 들어, 아래와 같이 정수를 포함해야 하지만 대신 float가 있는 변수가 있습니다.

x = 3.5
for a in range(x):
    print(a)

아래와 같이 오류가 발생합니다.

typeerror 예

예제에서 볼 수 있듯이 Python의 변수 유형은 할당된 값에 따라 자동으로 결정됩니다. 예를 들어 변수 x에 3을 할당하면 정수 데이터 유형이 됩니다. 반면 변수 y에 3.5를 할당하면 아래와 같이 float 데이터 유형이 됩니다.

x = 3
y = 3.5
print(type(x))
print(type(y))

위 코드의 출력은 아래와 같습니다.

Python의 변수 데이터 유형

Python에서 이 오류를 제거하는 두 가지 가능한 솔루션이 있습니다. 첫 번째 솔루션은 정수가 필요한 정수 데이터 유형을 항상 전달하도록 하는 것입니다.

다른 데이터 유형을 int로 변환하는 Python int()의 내장 메서드를 사용하여 쉽게 수행할 수 있습니다.

아래와 같이 float 변수를 int() 메서드에 전달하는 예를 들어 보겠습니다.

x = 3.5
y = int(x)
for i in range(y):
    print(i)

위 코드의 출력은 아래와 같습니다.

float 객체의 첫 번째 솔루션은 Python에서 정수로 해석할 수 없습니다.

위의 솔루션에서 알 수 있듯이 int()라는 간단한 메서드를 사용하여 모든 데이터 유형을 정수로 쉽게 변환할 수 있습니다. 이 오류에 대한 또 다른 해결책은 math.floor() 또는 math.ceil() 기능을 사용하는 것입니다.

먼저 이러한 기능을 사용하려면 math 라이브러리를 프로젝트로 가져와야 합니다.

math 라이브러리는 Python과 함께 설치된 Python의 표준 라이브러리입니다. 코드의 수학 가져오기 줄에서 오류가 발생하는 경우 다음 명령을 사용하여 쉽게 설치할 수 있습니다.

pip install math

라이브러리가 설치되면 다음 코드 줄을 사용하여 프로젝트로 가져올 수 있습니다.

import math

솔루션으로 이동하기 전에 이 예제에서 사용할 두 함수인 math.floor()math.ceil()에 대해 약간의 세부 정보를 아는 것이 중요합니다. math.floor() 함수는 주어진 부동 소수점 숫자를 제공된 숫자보다 작거나 같은 가장 가까운 정수로 내림하는 데 사용됩니다.

math.ceil() 함수는 주어진 부동 소수점 숫자를 제공된 숫자보다 크거나 같은 가장 가까운 정수로 반올림하는 데 사용됩니다. 필요에 따라 위의 기능을 사용할 수 있습니다.

이러한 기능의 예는 아래에 나와 있습니다.

import math

x = 3.7
floor_fun = math.floor(x)
ceil_fun = math.ceil(x)
print("The floor function will return: ")
print(floor_fun)
print("The ceil function will return: ")
print(ceil_fun)

위 코드의 출력은 아래와 같습니다.

float 객체의 두 번째 솔루션은 Python에서 정수로 해석할 수 없습니다.

예제에서 볼 수 있듯이 math.floor() 함수는 숫자를 내림합니다. 반면 math.ceil() 함수는 숫자를 가장 가까운 정수로 반올림합니다.

결론적으로 Python에서 float 객체를 정수로 사용하려고 할 때마다 TypeError: 'float' 객체는 정수로 해석할 수 없습니다.가 발생합니다. 이 오류를 방지하려면 코드에 사용된 데이터 유형을 염두에 두고 필요에 따라 적절하게 변환하는 것이 중요합니다.

math 라이브러리는 부동 소수점 숫자를 가장 가까운 정수로 반올림하는 math.floor()math.ceil()과 같은 유용한 함수를 제공합니다. 이러한 문제를 인식하고 적절한 방법을 활용함으로써 일반적인 오류를 방지하고 코드가 원활하게 실행되도록 할 수 있습니다.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

관련 문장 - Python Error