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.).