In diesem Programm versuche ich zu machen, ich habe einen Ausdruck (wie "I = 23mm" oder "H = 4V") und ich versuche, die 23 (oder die 4) daraus, so dass ich es in eine ganze Zahl verwandeln kann.Eine Zahl aus einer 1-Wort-Zeichenfolge extrahieren
Das Problem, mit dem ich fortfahre, ist, dass, da der Ausdruck, den ich versuche, die Zahlen aus 1 Wort zu nehmen, ich split() oder irgendetwas nicht verwenden kann.
Ein Beispiel, das ich sah, aber wouldnt Arbeit war -
I="I=2.7A"
[int(s) for s in I.split() if s.isdigit()]
Dies würde nicht funktionieren, weil es dauert nur die Zahlen werden durch Leerzeichen getrennt. Wenn es im Wort int078vert eine Zahl gäbe, würde sie es nicht extrahieren. Außerdem hat meine keine Leerzeichen zum Abgrenzen.
habe ich versucht, eine, die so aussah,
re.findall("\d+.\d+", "Amps= 1.4 I")
aber es hat nicht funktioniert entweder, weil die Zahl, die nicht immer übergeben werden 2-stellig ist. Es könnte etwa 5 oder etwas wie 13,6 sein.
Welcher Code muss ich so schreiben, dass, wenn ich übergeben Sie einen String, wie
I="I=2.4A"
oder
I="A=3V"
Damit ich nur die Nummer aus dieser Zeichenfolge extrahieren? (und Operationen darauf machen)? Es gibt keine Leerzeichen oder andere konstante Zeichen, die ich abgrenzen kann.
Es sieht aus wie Sie sind versuchen, dies für Integer und Dezimalzahlen zu lösen. Wird jede Saite immer genau eine Nummer haben? – yoozer8
Ja. Jede Zeichenfolge hat immer eine Zahl, aber möglicherweise mehrere Dezimalstellen, um diese Zahl zu bilden. – Kyle