Как найти число в строке на python?

Пользователь

от eryn.rodriguez , в категории: Python , год назад

Как найти число в строке на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от evgenycc , год назад

@eryn.rodriguez  Для получения числа из строки можно воспользоваться перебором каждого символа этой строки в цикле. Для примера, есть текст содержащий две цифры: "У Егора было 20 яблок. 3 из них он отдал Кате." Воспользуемся перебором:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
txt = "У Егора было 20 яблок. 3 из них он отдал Кате."

digits = []
num = ""
for x in txt:
    if x.isdigit():
        num += x
        continue
    elif not x.isdigit():
        if num:
            digits.append(num)
            num = ""
print(digits)


Таким образом на выходе мы получим список состоящий из двух цифр: ['20', '3']. Этот способ подойдет даже в том случае, если у вас строка не разбивается на отдельные слова, а цифры являются составной частью слова.

В том же случае, если у вас есть строка, которая явно разделена на слова пробелами, можно преобразовать ее в список с помощью split(), а далее проверить, является ли элемент списка числом:


1
2
3
4
5
6
7
8
9
txt = "У Егора было 20 яблок. 3 из них он отдал Кате."

digits = []

for x in txt.split():
    if x.isdigit():
        digits.append(x)

print(digits)

Пользователь

от jensen , 6 месяцев назад

@eryn.rodriguez 

Результат выполнения кода будет аналогичным предыдущему примеру: ['20', '3']. Оба этих способа позволяют найти числа в строке на Python.