Καθορισμός αν ένας αριθμός είναι ακέραιος ή δεκαδικός στην Python

Επιχείρηση

Προσδιορίστε αν ένας αριθμός είναι ακέραιος ή δεκαδικός στην Python.

Οι ακόλουθες περιπτώσεις επεξηγούνται με παραδείγματα κωδικών.

  • Καθορίζει αν ένας αριθμός είναι ακέραιος int ή float κινητής υποδιαστολής.:isinstance()
  • Καθορίζει αν ένας αριθμός τύπου float είναι ακέραιος (0 δεκαδικά ψηφία):float.is_integer()
  • Προσδιορίζει αν μια συμβολοσειρά αριθμών είναι ακέραιος αριθμός

Για να λάβετε τις ακέραιες και δεκαδικές τιμές ενός δεκαδικού αριθμού, ανατρέξτε στο ακόλουθο άρθρο.

Ανατρέξτε στο ακόλουθο άρθρο για πληροφορίες σχετικά με τον προσδιορισμό του αν μια συμβολοσειρά είναι αριθμός (συμπεριλαμβανομένων των κινεζικών αριθμών κ.λπ.) και όχι αν είναι ακέραιος ή δεκαδικός αριθμός.

Καθορίζει αν ένας αριθμός είναι ακέραιος ή κινητής υποδιαστολής: isinstance()

Ο τύπος ενός αντικειμένου μπορεί να ληφθεί με την ενσωματωμένη συνάρτηση type().

i = 100
f = 1.23

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

isinstance(object, type)
Αυτή η ενσωματωμένη συνάρτηση μπορεί να χρησιμοποιηθεί για να προσδιοριστεί αν ένα αντικείμενο είναι συγκεκριμένου τύπου. Μπορεί να χρησιμοποιηθεί για να προσδιοριστεί αν ένας αριθμός είναι ακέραιος ή τύπου κινητής υποδιαστολής.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

Στην περίπτωση αυτή, κρίνει μόνο τον τύπο, οπότε δεν μπορεί να κρίνει αν μια τιμή τύπου float είναι ακέραιος (με δεκαδικό σημείο 0) ή όχι.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Καθορίζει αν ένας αριθμός τύπου float είναι ακέραιος (0 δεκαδικά ψηφία): float.is_integer()

Η μέθοδος is_integer() παρέχεται για τον τύπο float, η οποία επιστρέφει true αν η τιμή είναι ακέραιος και false διαφορετικά.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Για παράδειγμα, μια συνάρτηση που επιστρέφει true για έναν ακέραιο αριθμό μπορεί να οριστεί ως εξής Από την άλλη πλευρά, ένας τύπος συμβολοσειράς θα ήταν 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

Προσδιορίζει αν μια συμβολοσειρά αριθμών είναι ακέραιος αριθμός

Αν θέλετε να προσδιορίσετε ότι μια συμβολοσειρά ακέραιων ψηφίων είναι επίσης ακέραιος αριθμός, είναι δυνατές οι ακόλουθες συναρτήσεις.

Για τιμές που μπορούν να μετατραπούν σε τύπο float με τη μέθοδο float(), η μέθοδος is_integer() εφαρμόζεται μετά τη μετατροπή σε float και επιστρέφεται το αποτέλεσμα.

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

Ανατρέξτε στο ακόλουθο άρθρο για λεπτομέρειες σχετικά με τη μετατροπή συμβολοσειρών σε αριθμούς.

Ανατρέξτε στο ακόλουθο άρθρο για λεπτομέρειες σχετικά με τον προσδιορισμό του κατά πόσον μια συμβολοσειρά είναι αριθμός (συμπεριλαμβανομένων των κινεζικών αριθμών κ.λπ.).