내가 한 방법은 다음과 같습니다.
inNumber = somenumber
inNumberint = int(inNumber)
if inNumber == inNumberint:
print "this number is an int"
else:
print "this number is a float"
그런 것.
더 좋은 방법이 있습니까?
답변
isinstance를 사용하십시오 .
>>> x = 12
>>> isinstance(x, int)
True
>>> y = 12.0
>>> isinstance(y, float)
True
그래서:
>>> if isinstance(x, int):
print 'x is a int!'
x is a int!
_편집하다:_
지적한 바와 같이, 긴 정수의 경우 위의 작동하지 않습니다. 따라서 다음을 수행해야합니다.
>>> x = 12L
>>> import numbers
>>> isinstance(x, numbers.Integral)
True
>>> isinstance(x, int)
False
답변
@ninjagecko의 답변이 가장 좋습니다.
이것은 또한 작동합니다 :
Python 2.x 용
isinstance(n, (int, long, float))
파이썬 3.x는 오래 가지 않습니다
isinstance(n, (int, float))
복소수에 대한 복소수 유형도 있습니다
답변
짧막 한 농담:
isinstance(yourNumber, numbers.Real)
이것은 몇 가지 문제를 피합니다.
>>> isinstance(99**10,int)
False
데모:
>>> import numbers
>>> someInt = 10
>>> someLongInt = 100000L
>>> someFloat = 0.5
>>> isinstance(someInt, numbers.Real)
True
>>> isinstance(someLongInt, numbers.Real)
True
>>> isinstance(someFloat, numbers.Real)
True
답변
허락을 구하는 것보다 용서를 구하는 것이 더 쉽습니다. 간단히 작업을 수행하십시오. 그것이 작동한다면, 물체는 수용 가능하고 적합하며 적절한 유형이었습니다. 작업이 작동하지 않으면 개체 유형이 적합하지 않은 것입니다. 유형을 아는 것은 거의 도움이되지 않습니다.
작업을 시도하고 작동하는지 확인하십시오.
inNumber = somenumber
try:
inNumberint = int(inNumber)
print "this number is an int"
except ValueError:
pass
try:
inNumberfloat = float(inNumber)
print "this number is a float"
except ValueError:
pass
답변
당신이 할 수있는 일은 type()
예제를 사용하는 것입니다 .
if type(inNumber) == int : print "This number is an int"
elif type(inNumber) == float : print "This number is a float"
답변
다음은 숫자가 정수인지 여부를 확인하는 코드이며 Python 2와 Python 3 모두에서 작동합니다.
import sys
if sys.version < '3':
integer_types = (int, long,)
else:
integer_types = (int,)
isinstance(yourNumber, integer_types) # returns True if it's an integer
isinstance(yourNumber, float) # returns True if it's a float
공지 사항 파이썬 2는 두 가지 유형을 가지고 int
와 long
파이썬 3 만 입력 반면, int
. 소스 .
숫자 float
가을 나타내는 숫자인지 확인하려면 다음을 int
수행하십시오.
(isinstance(yourNumber, float) and (yourNumber).is_integer()) # True for 3.0
int와 float을 구분할 필요가없고 어느 쪽이든 괜찮다면 ninjagecko의 대답은 갈 길입니다.
import numbers
isinstance(yourNumber, numbers.Real)
답변
이 솔루션은 어떻습니까?
if type(x) in (float, int):
# do whatever
else:
# do whatever