В этой программе, которую я пытаюсь сделать, у меня есть выражение (например, «I = 23mm» или «H = 4V»), и я пытаюсь извлечь 23 (или 4), чтобы я мог превратить его в целое число.Извлечение числа из строки из 1 слова
Проблема, с которой я сталкиваюсь, заключается в том, что, поскольку выражение, которое я пытаюсь извлечь из номера, - это одно слово, я не могу использовать split() или что-то еще.
Один пример, который я видел, но не работал бы был -
I="I=2.7A"
[int(s) for s in I.split() if s.isdigit()]
Это не работал бы потому, что она принимает только цифры разделяются пробелами. Если в слове int078vert было число, оно не извлекло бы его. Кроме того, у меня нет пробелов для разграничения.
Я попробовал один, который выглядел так,
re.findall("\d+.\d+", "Amps= 1.4 I")
, но оно не сработало, потому что число, которое передается не всегда 2 цифры. Это может быть что-то вроде 5 или что-то вроде 13.6.
Какой код нужно ли мне писать так, что если я передать строку, такую как
I="I=2.4A"
или
I="A=3V"
Так что я могу извлечь только номер из этой строки? (и делать операции на нем)? Нет пробелов или других постоянных символов, которые я могу ограничить.
Похоже, вы пытаясь решить это как для целых, так и десятичных чисел. Будет ли каждая строка всегда иметь ровно одно число? – yoozer8
Да. Каждая строка всегда будет иметь 1 номер, но может иметь несколько десятичных знаков, чтобы сделать это число. – Kyle