Python: Prüfen, ob eine Zeichenkette eine Zahl ist
Das folgende Beispiel erstellt eine benutzerdefinierte Funktionis_number(), um zu ermitteln, ob eine Zeichenkette eine Zahl ist:
Beispiel (Python 3.0+)
# -*- coding: UTF-8 -*-
# Dateiname : test.py
# Autor: www.example.com
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
# Strings und Zahlen testen
print(is_number('foo')) # False
print(is_number('1')) # True
print(is_number('1.3')) # True
print(is_number('-1.37')) # True
print(is_number('1e3')) # True
# Unicode testen
# Arabisch 5
print(is_number('٥')) # True
# Thai 2
print(is_number('๒')) # True
# Chinesische Zahlzeichen
print(is_number('four')) # True
# Copyright-Symbol
print(is_number('©')) # False
Wir können dazu auch eingebettete if-Anweisungen verwenden:
Das Ausführen des obigen Codes erzeugt die Ausgabe:
False True True True True True True True False
Weitere Methoden
Python isdigit() Die Methode prüft, ob die Zeichenkette nur aus Ziffern besteht.
Python isnumeric() Die Methode prüft, ob die Zeichenkette nur aus Ziffern besteht. Diese Methode ist nur für Unicode-Objekte.
Andere Erweiterungen
Python3-Beispiele