-
Wie kann ich eine
str
afloat
?"545.2222" 545.2222
-
Wie kann ich eine
str
aint
?"31" 31
Damit erhalten Sie ein Float-Objekt, wenn Ihre Zeichenkette zufällig "0" oder "0.0" ist, und nicht das int-Objekt, das es für andere gültige Zahlen gibt.
Wie kann ich eine str
a float
?
"545.2222" 545.2222
Wie kann ich eine str
a int
?
"31" 31
El YAML Parser kann Ihnen helfen, herauszufinden, welchen Datentyp Ihre Zeichenkette hat. verwenden yaml.load()
und dann können Sie mit type(result)
um den Typ zu prüfen:
>>> import yaml
>>> a = "545.2222"
>>> result = yaml.load(a)
>>> result
545.22220000000004
>>> type(result)
<type 'float'>
>>> b = "31"
>>> result = yaml.load(b)
>>> result
31
>>> type(result)
<type 'int'>
>>> c = "HI"
>>> result = yaml.load(c)
>>> result
'HI'
>>> type(result)
<type 'str'>
Dies ist eine großartige Antwort (oder json
oder was auch immer Sie bevorzugen): Wir alle wissen, dass eine korrekte Umwandlung nicht trivial ist. Finden Sie also eine weit verbreitete Bibliothek, die dies für Sie erledigt :)
JSON kann sehr gut funktionieren, löst aber nur einen TypeError aus, wenn ein String übergeben wird, so dass eine benutzerdefinierte Behandlung oder Vorabprüfung erforderlich ist, um einige Versuche zu vermeiden. Wie ich einige Regexp: stackoverflow.com/a/69790897/1236083
Warum sollten Sie in Ihrem except
Abschnitt, wenn Sie dort nichts tun? float() würde für Sie erhöhen.
Sie haben Recht, ich denke, ich kopiert und fügen Sie aus einer Funktionalität, die ich war die Erhöhung einer bestimmten Ausnahme. wird bearbeiten.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
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)