Bestimmen, ob eine Zahl eine ganze Zahl oder eine Dezimalzahl in Python ist

Geschäft

Bestimmen, ob eine Zahl eine ganze Zahl oder eine Dezimalzahl in Python ist.

Die folgenden Fälle werden mit Beispielcodes erläutert.

  • Bestimmt, ob eine Zahl eine Ganzzahl int oder eine Gleitkommazahl float ist:isinstance()
  • Bestimmt, ob eine Zahl vom Typ Float eine ganze Zahl ist (0 Dezimalstellen):float.is_integer()
  • Ermittelt, ob eine Zahlenfolge eine ganze Zahl ist

Um die ganzzahligen und dezimalen Werte einer Dezimalzahl zu erhalten, siehe den folgenden Artikel.

Im folgenden Artikel finden Sie Informationen darüber, wie Sie feststellen können, ob es sich bei einer Zeichenkette um eine Zahl (einschließlich chinesischer Ziffern usw.) und nicht um eine Ganzzahl oder eine Dezimalzahl handelt.

Bestimmt, ob eine Zahl ein Ganzzahl- oder ein Fließkommatyp ist: isinstance()

Der Typ eines Objekts kann mit der eingebauten Funktion type() ermittelt werden.

i = 100
f = 1.23

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

isinstance(object, type)
Diese eingebaute Funktion kann verwendet werden, um festzustellen, ob ein Objekt von einem bestimmten Typ ist. So kann z.B. festgestellt werden, ob eine Zahl ein Ganzzahl- oder Fließkommatyp ist.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

In diesem Fall wird nur der Typ beurteilt, d. h. es kann nicht beurteilt werden, ob ein Wert vom Typ float eine ganze Zahl (mit einem Dezimalpunkt von 0) ist oder nicht.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Bestimmt, ob eine Zahl vom Typ Float eine ganze Zahl ist (0 Dezimalstellen): float.is_integer()

Für den Typ float gibt es die Methode is_integer(), die true zurückgibt, wenn der Wert eine ganze Zahl ist, und false, wenn nicht.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Eine Funktion, die für eine ganze Zahl den Wert true liefert, kann beispielsweise wie folgt definiert werden Bei einer Zeichenkette wäre der Wert 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

Ermittelt, ob eine Zahlenfolge eine ganze Zahl ist

Wenn Sie feststellen wollen, dass eine Folge von ganzzahligen Ziffern auch eine ganze Zahl ist, sind die folgenden Funktionen möglich.

Bei Werten, die mit float() in den Typ float umgewandelt werden können, wird die Methode is_integer() nach der Umwandlung in float angewendet und das Ergebnis zurückgegeben.

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

Einzelheiten zur Umwandlung von Zeichenketten in Zahlen finden Sie im folgenden Artikel.

Im folgenden Artikel erfahren Sie, wie Sie feststellen können, ob eine Zeichenkette eine Zahl ist (einschließlich chinesischer Ziffern usw.).