Diese Antwort enthält eine schrittweise Anleitung mit Beispielfunktionen zum Auffinden der Zeichenfolge:
- Positive ganze Zahl
- Positiv / Negativ - Ganzzahl / Float
- Wie verwerfe ich "NaN" -Strings (keine Zahlen), während ich nach Zahlen suche?
Überprüfen Sie, ob die Zeichenfolge eine positive Ganzzahl ist
Sie können verwenden str.isdigit()
, um zu überprüfen, ob die angegebene Zeichenfolge eine positive Ganzzahl ist.
Beispielergebnisse:
# For digit
>>> '1'.isdigit()
True
>>> '1'.isalpha()
False
Überprüfen Sie, ob der String positiv / negativ ist - Ganzzahl / Gleitkomma
str.isdigit()
Gibt zurück, False
wenn die Zeichenfolge eine negative Zahl oder eine Gleitkommazahl ist. Zum Beispiel:
# returns `False` for float
>>> '123.3'.isdigit()
False
# returns `False` for negative number
>>> '-123'.isdigit()
False
Wenn Sie auch nach negativen Ganzzahlenfloat
suchen möchten, können Sie eine benutzerdefinierte Funktion schreiben, um Folgendes zu überprüfen:
def is_number(n):
try:
float(n) # Type-casting the string to `float`.
# If string is not a valid `float`,
# it'll raise `ValueError` exception
except ValueError:
return False
return True
Probelauf:
>>> is_number('123') # positive integer number
True
>>> is_number('123.4') # positive float number
True
>>> is_number('-123') # negative integer number
True
>>> is_number('-123.4') # negative `float` number
True
>>> is_number('abc') # `False` for "some random" string
False
Verwerfen Sie "NaN" -Strings (keine Zahlen), während Sie nach Zahlen suchen
Die obigen Funktionen werden True
für die Zeichenfolge "NAN" (keine Zahl) zurückgegeben, da es sich bei Python um einen gültigen Float handelt, der darstellt, dass es sich nicht um eine Zahl handelt. Zum Beispiel:
>>> is_number('NaN')
True
Um zu überprüfen, ob die Nummer "NaN" ist, können Sie Folgendes verwenden math.isnan()
:
>>> import math
>>> nan_num = float('nan')
>>> math.isnan(nan_num)
True
Wenn Sie keine zusätzliche Bibliothek importieren möchten, um dies zu überprüfen, können Sie sie einfach überprüfen, indem Sie sie mit sich selbst vergleichen ==
. Python kehrt zurück, False
wenn nan
float mit sich selbst verglichen wird. Zum Beispiel:
# `nan_num` variable is taken from above example
>>> nan_num == nan_num
False
Daher oben Funktion is_number
kann zurückkehren werden aktualisiert False
für"NaN"
wie:
def is_number(n):
is_number = True
try:
num = float(n)
# check for "nan" floats
is_number = num == num # or use `math.isnan(num)`
except ValueError:
is_number = False
return is_number
Probelauf:
>>> is_number('Nan') # not a number "Nan" string
False
>>> is_number('nan') # not a number string "nan" with all lower cased
False
>>> is_number('123') # positive integer
True
>>> is_number('-123') # negative integer
True
>>> is_number('-1.12') # negative `float`
True
>>> is_number('abc') # "some random" string
False
PS: Jede Operation für jede Prüfung in Abhängigkeit von der Art der Nummer bringt zusätzlichen Aufwand mit sich. Wählen Sie die is_number
Funktionsversion, die Ihren Anforderungen entspricht.