python matplotlib 사용법 - 변수가 정수인지 아닌지 확인





15 Answers

지금까지 제안 된 모든 대답은 double (파이썬의 실수는 실제로 두 배입니다) 또한 정수가 될 수 있다는 사실을 놓치고있는 것 같습니다 (소수점 뒤에 아무 것도없는 경우). 이것을 확인하기 위해 double에 내장 된 is_integer() 메서드를 사용합니다.

예 (for 회 돌이에서 매 x 번째 무언가를하기) :

for index in range(y): 
    # do something
    if (index/x.).is_integer():
        # do something special

편집하다:

이 메서드를 호출하기 전에 항상 float로 변환 할 수 있습니다. 세 가지 가능성 :

>>> float(5).is_integer()
True
>>> float(5.1).is_integer()
False
>>> float(5.0).is_integer()
True

그렇지 않으면 Agostino가 말한 것처럼 이것이 int인지 먼저 확인할 수 있습니다.

def is_int(val):
    if type(val) == int:
        return True
    else:
        if val.is_integer():
            return True
        else:
            return False
python

변수가 정수인지 어떻게 확인합니까?




>>> isinstance(3, int)
True

자세한 내용은 here 를 참조 here .

int 와 같은 속성을 찾는 경우에는 이것이 도움이되지 않습니다. 이 경우에는 long 확인하고 싶을 수도 있습니다.

>>> isinstance(3L, (long, int))
True

이 종류의 검사를 파이썬 소스의 배열 / 인덱스 유형에 대해 보았지만 C 외부에서 볼 수는 없다고 생각합니다.

토큰 그래서 답장 : 당신은 그 유형을 확인해야합니까? 처리 할 수없는 유형을 전달하지 않거나 잠재적 인 코드 재사용자를 능가하려고 시도하지 마십시오. 함수에 int를 전달하지 않는 좋은 이유가있을 수 있습니다.




다음과 같은 것을 시도해보십시오.

if x%1 == 0: 



모든 소프트웨어에서 사용하는 간단한 방법은 이것입니다. 변수가 숫자로 구성되었는지 확인합니다.

test = input("Enter some text here: ")
if test.isdigit() == True:
   print("This is a number.")
else:
   print("This is not a number.")



여기에 관련 질문을 찾았습니다.

Python 개발자는 유형을 확인하지 않고 유형별 작업을 수행하고 TypeError 예외를 catch하는 것을 선호합니다. 그러나 당신이 유형을 모르는 경우에 당신은 뒤에 오는 것있다.

>>> i = 12345
>>> type(i)
<type 'int'>
>>> type(i) is int
True



확인하려는 값이 아래에 표시된 정수로 캐스팅 된 것과 동일한 지 확인하는 것이 가장 좋은 이유는 무엇입니까?

def isInt(val):
    return val == int(val)



다음은 정수를 결정하는 간단한 예제입니다.

def is_int(x):
    print round(x),
    if x == round(x):
        print 'True',
    else:
        print 'False'

is_int(7.0)   # True
is_int(7.5)   # False
is_int(-1)    # True    



Python 버전 (2.x vs 3.x)을 고려하지 않으려면 six ( PyPI )를 사용하고 integer_types 속성을 사용하십시오.

import six

if isinstance(obj, six.integer_types):
    print('obj is an integer!')

six (매우 가벼운 단일 파일 모듈) 내에서이 작업을 수행하는 것입니다.

import sys
PY3 = sys.version_info[0] == 3

if PY3:
    integer_types = int,
else:
    integer_types = (int, long)



이를 수행하는 간단한 방법은 1로 나누기에서 나머지가 0인지 아닌지 직접 확인하는 것입니다.

if this_variable % 1 == 0:
    list.append(this_variable)
else:
    print 'Not an Integer!'



같은 numpy 수표의 존재에 ..

isinstance(var, numbers.Integral)

.. (천천히) 또는 ..

isinstance(var, (int, long, np.integer))

.. np.int8 , np.uint16 , ...과 같은 모든 유형 변형과 일치시키기 위해

(PY3에서 long 떨어짐)

어디에서든지 어떤 정수형 객체를 인식하는 것은 까다로운 추측 게임입니다. 확인 중

var & 0 == 0 

진실과 비 예외를위한 좋은 내기일지도 모르다. 마찬가지로, 부호있는 정수 유형을 독점적으로 검사 :

var ^ -1 ==  -var - 1



#!/usr/bin/env python

import re

def is_int(x):

    if(isinstance(x,(int,long))):

        return True
    matchObj = re.match(r'^-?\d+\.(\d+)',str(x))

        if matchObj:

        x = matchObj.group(1)

        if int(x)-0==0:

            return True

     return False

print is_int(6)

print is_int(1.0)

print is_int(1.1)

print is_int(0.1)

print is_int(-956.0)



문자열로 주어진 정수와 정수를 확인하려고하는보다 일반적인 접근법은 다음과 같습니다.

def isInt(anyNumberOrString):
    try:
        int(anyNumberOrString) #to check float and int use "float(anyNumberOrString)"
        return True
    except ValueError :
        return False

isInt("A") #False
isInt("5") #True
isInt(8) #True
isInt("5.88") #False *see comment above on how to make this True



유형 검사를 수행하는 또 다른 옵션이 있습니다.

예 :

  n = 14
  if type(n)==int:
  return "this is an int"



x = n ** (1.0 / m) 인 경우를 생각해 보자. 여기서 n = 10 ** 5, m = 5이다. 파이썬에서 x는 부동 소수점 산술 연산 때문에 정수가 아닌 10.000000000000002가됩니다.

그래서 나는

if str(float(x)).endswith('.0'): print "It's an integer."

이 코드로 테스트했습니다 :

for a in range(2,100):
    for b in range(2,100):
        x = (a**b)**(1.0/b)
        print a,b, x, str(float(x)).endswith('.0')

모든 a와 b에 대해 True를 출력합니다.




숫자가 정수인지를 확인할 수 있습니다. 예 : 7.0

def is_int(x):
    if x - round(x) == 0 :
        return True
    else:
        return False



Related


Tags

python