Python - печатать только целые числа строки - PullRequest
0 голосов
/ 11 марта 2019

Итак, в качестве примера, скажем, что в программе есть только одна строка кода, и эта строка кода n = input(), и скажем, что пользователь ввел random123. Как сделать так, чтобы при печати n печатались только целые числа n или 123? Обратите внимание, что я хочу, чтобы это работало, даже если пользовательский ввод random123random456. Если пользовательский ввод IS «random123random456», я хочу, чтобы он напечатал 123456.

Ответы [ 3 ]

4 голосов
/ 11 марта 2019

Вы можете использовать выражение генератора с вызовом метода str.isdigit в качестве фильтра:

''.join(c for c in n if c.isdigit())
1 голос
/ 11 марта 2019

Другой быстрый способ - удалить любой нечисловой символ из строки с регулярными выражениями

Пример:

import re
test = "123string456"

result = re.sub('\D', '', test)

Здесь \ D означает любой символ, отличный от0 ... 9 Затем вы можете заменить его пустым символом

Некоторые результаты:

>>> import re
>>> re.sub('\D', '', 'random123random456')
'123456'
>>> re.sub('\D', '', 'random123')
'123'

С уважением

0 голосов
/ 11 марта 2019
test = "123string456"
output = str()
for each in test:
    try:
        n = int(each)
        output = "{}{}".format(output,n)
    except:
        pass

print(output)
...