Übergeben Sie Ihre Zeichenkette an diese Funktion:
def string_to_number(str):
if("." in str):
try:
res = float(str)
except:
res = str
elif(str.isdigit()):
res = int(str)
else:
res = str
return(res)
Es gibt int, float oder string zurück, je nachdem, was übergeben wurde.
Zeichenkette, die ein int ist
print(type(string_to_number("124")))
<class 'int'>
Zeichenkette, die ein Float ist
print(type(string_to_number("12.4")))
<class 'float'>
Zeichenkette, die eine Zeichenkette ist
print(type(string_to_number("hello")))
<class 'str'>
Zeichenkette, die wie ein Float aussieht
print(type(string_to_number("hel.lo")))
<class 'str'>
19 Stimmen
Generell gilt: Wenn Sie ein Objekt in Python haben und es umwandeln wollen, müssen Sie zu diese Art von Objekt, rufen Sie
type(my_object)
darauf. Das Ergebnis kann normalerweise als Funktion aufgerufen werden, um die Konvertierung durchzuführen. Zum Beispieltype(100)
führt zuint
so können Sie anrufenint(my_object)
zu versuchen, zu konvertierenmy_object
in eine ganze Zahl umgewandelt. Das funktioniert nicht immer, ist aber eine gute "erste Vermutung" beim Programmieren.6 Stimmen
int(x) if int(x) == float(x) else float(x)
5 Stimmen
@tcpaiva
ValueError: invalid literal for int() with base 10: '1.5'
.0 Stimmen
Int(x) if int(float(x)) == float(x) else float(x)