isnumeric()
Unterstützung für verschiedene numeral systems in Unicode-Strings erweitert. In Amerika und Europa wird Hindu-Arabic numeral system verwendet, die ausZiffern besteht.
Die Hindu-arabischen Ziffern werden vom Unicode auch als europäische Ziffern bezeichnet.
Das sind andere Zahlensysteme zur Verfügung, wie:
- römischen Ziffern
- Altgriechisch Ziffern
- Tamil Ziffern
- Japaneese Ziffern
- Chineese Ziffern
- koreanischen Ziffern
Mehr Informationen über Zahlensysteme sind hier zu finden: wikiwand.com/en/Numerals_in_Unicode#/Numerals_by_script
Unicode subscript
, superscript
und fractions
sind auch gültig Ziffern durch die isnumeric()
Funktion betrachtet.
Sie können die IsNumeric() Funktion unten, um zu überprüfen, ob eine Zeichenfolge eine Nicht-Unicode-Nummer ist.
l = ['abc' + chr(255), 'abc', '123', '45a6', '78b', u"\u2155", '123.4', u'\u2161', u'\u2168']
def isnumeric(s):
'''Returns True for all non-unicode numbers'''
try:
s = s.decode('utf-8')
except:
return False
try:
float(s)
return True
except:
return False
for i in l:
print i, 'isnumeric:', isnumeric(i)
print '--------------------'
print u'\u2169', 'isnumeric', u'\u2169'.isnumeric()
print u'\u2165', 'isnumeric', u'\u2165'.isnumeric()
Edit: Ich werde diesen Beitrag aktualisieren, sobald ich genug Ruf haben mehr als 2 Links zu dieser Antwort hinzuzufügen.
String 'a' kann float-Werte enthalten, daher kann ich isdigit nicht verwenden. – user1050619
u'1.5'.isnumeric() = False, benutze isdigit oder schreibe deine eigene Funktion. –