Determinarea dacă un număr este un întreg sau o zecimală în Python

Afaceri

Determinați dacă un număr este un număr întreg sau zecimal în Python.

Următoarele cazuri sunt explicate cu exemple de coduri.

  • Determină dacă un număr este un întreg int sau un float în virgulă mobilă:isinstance()
  • Determină dacă un număr de tip float este un număr întreg (0 zecimale):float.is_integer()
  • Determină dacă un șir de numere este un număr întreg

Pentru a obține valorile întregi și zecimale ale unui număr zecimal, consultați următorul articol.

A se vedea următorul articol pentru informații despre cum se determină dacă un șir de caractere este un număr (inclusiv cifre chinezești etc.) și nu dacă este un număr întreg sau zecimal.

Determină dacă un număr este de tip întreg sau cu virgulă mobilă: isinstance()

Tipul unui obiect poate fi obținut cu ajutorul funcției încorporate type().

i = 100
f = 1.23

print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>

isinstance(object, type)
Această funcție încorporată poate fi utilizată pentru a determina dacă un obiect este de un anumit tip. Aceasta poate fi utilizată pentru a determina dacă un număr este de tip întreg sau cu virgulă mobilă.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

În acest caz, acesta apreciază doar tipul, deci nu poate aprecia dacă o valoare de tip float este un număr întreg (cu virgulă 0) sau nu.

f_i = 100.0

print(type(f_i))
# <class 'float'>

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Determină dacă un număr de tip float este un număr întreg (0 zecimale): float.is_integer()

Metoda is_integer() este prevăzută pentru tipul float, care returnează true dacă valoarea este un număr întreg și false în caz contrar.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

De exemplu, o funcție care returnează true pentru un număr întreg poate fi definită după cum urmează Pe de altă parte, o funcție de tip string ar fi false.

def is_integer_num(n):
    if isinstance(n, int):
        return True
    if isinstance(n, float):
        return n.is_integer()
    return False

print(is_integer_num(100))
# True

print(is_integer_num(1.23))
# False

print(is_integer_num(100.0))
# True

print(is_integer_num('100'))
# False

Determină dacă un șir de numere este un număr întreg

Dacă doriți să determinați dacă un șir de cifre întregi este, de asemenea, un număr întreg, sunt posibile următoarele funcții.

Pentru valorile care pot fi convertite în tipul float cu float(), metoda is_integer() se aplică după conversia în float și se returnează rezultatul.

def is_integer(n):
    try:
        float(n)
    except ValueError:
        return False
    else:
        return float(n).is_integer()

print(is_integer(100))
# True

print(is_integer(100.0))
# True

print(is_integer(1.23))
# False

print(is_integer('100'))
# True

print(is_integer('100.0'))
# True

print(is_integer('1.23'))
# False

print(is_integer('string'))
# False

Consultați următorul articol pentru detalii privind conversia șirurilor de caractere în numere.

Consultați următorul articol pentru detalii privind determinarea dacă un șir de caractere este un număr (inclusiv cifrele chinezești etc.).