W tym programie, który próbuję wykonać, mam wyrażenie (takie jak "I = 23 mm" lub "H = 4V") i próbuję wyodrębnić 23 (lub 4) z niego, dzięki czemu mogę przekształcić go w liczbę całkowitą.Wyodrębnianie liczby z ciągu 1-słownego
Problem, który napotykam, polega na tym, że ponieważ wyrażenie, z którego próbuję usunąć liczby, jest 1 słowem, nie mogę użyć polecenia split() ani niczego.
Jednym z przykładów widziałem, ale nie byłby to praca -
I="I=2.7A"
[int(s) for s in I.split() if s.isdigit()]
byłby to działa, ponieważ trwa tylko numery te są rozdzielane spacjami. Jeśli w słowie int078vert znajduje się liczba, to nie wyodrębni go. Ponadto, moje nie ma spacji, aby ograniczyć.
Próbowałem jednego, który wyglądał tak,
re.findall("\d+.\d+", "Amps= 1.4 I")
ale nie działać albo, ponieważ liczba, która jest przekazywana nie zawsze jest to 2 cyfry. Może to być coś w rodzaju 5 lub coś w rodzaju 13.6.
Jaki kod muszę pisać tak, że jeśli mijam łańcuch, taki jak
I="I=2.4A"
lub
I="A=3V"
Tak, że można wyodrębnić tylko liczby z tego ciągu? (i robić na nim operacje)? Nie ma spacji ani innych stałych znaków, które można ograniczyć.
Wygląda na to jesteś próbuje rozwiązać ten problem dla liczb całkowitych i dziesiętnych. Czy każdy ciąg ma zawsze dokładnie jeden numer? – yoozer8
Tak. Każdy ciąg ma zawsze 1 numer, ale może mieć wiele miejsc dziesiętnych, aby ten numer. – Kyle