In questo programma sto cercando di fare, ho un'espressione (come "I = 23mm" o "H = 4V") e sto cercando di estrarre il 23 (o il 4) fuori di esso, in modo che io possa trasformarlo in un numero intero.Estrazione di un numero da una stringa di 1 parola
Il problema che continuo a subire è che poiché l'espressione che sto cercando di prendere i numeri è 1 parola, non posso usare split() o altro.
Un esempio che ho visto, ma il lavoro wouldnt era -
I="I=2.7A"
[int(s) for s in I.split() if s.isdigit()]
Questo wouldnt funziona perché ci vuole solo i numeri sono sono delimitati da spazi. Se c'era un numero nella parola int078vert, non lo estraeva. Inoltre, il mio non ha spazi da delimitare.
Ho provato uno che si presentava così,
re.findall("\d+.\d+", "Amps= 1.4 I")
ma non ha funzionato neanche, perché il numero che viene passato non è sempre 2 cifre. Potrebbe essere qualcosa come 5, o qualcosa come 13.6.
Quale codice devo scrivere così che se mi passa una stringa, come ad esempio
I="I=2.4A"
o
I="A=3V"
In modo che posso estrarre solo il numero di questa stringa? (e fare operazioni su di esso)? Non ci sono spazi o altri caratteri costanti che posso delimitare.
Sembra che tu sei cercando di risolvere questo per i numeri interi e decimali. Ogni stringa avrà sempre esattamente un numero? – yoozer8
Sì. Ogni stringa avrà sempre un numero, ma potrebbe avere più decimali per ottenere quel numero. – Kyle