2013-11-18 4 views
-3

Итак, я пишу программу, которая должна проверять мою строку для чисел и возвращать только первое число в строке (как int).
Есть ли метод, который проверяет строки для чисел?
И если да, то как я могу убедиться, что он вернет только первый?

Например, эта строка «Эта строка содержит число 456, а также 5 и 34» должен вернуть только 456.Проверьте мою строку на цифры. Python

+0

Я думаю, вы хотите использовать регулярное выражение здесь. – NWard

+0

Это звучит как проблема домашней работы и простая в этом. – rdodev

+0

Что, если строка была «test123 456», она вернет 123 или 456? – MxyL

ответ

0
def get_first_num(text): 
    words = text.split() 

    for word in words: 
     if word.isdigit(): 
      return word 


print get_first_num('This string contains numbers 456 but also 5 and 34') 

вернется 456

2

Использование регулярных выражений:

import re 
s = "sdasdas 12313 dsada 9" 
m = re.search(r'\d+', s) 
print m.group() 

Если вы не хотите, чтобы соответствовать слова, имеющие цифры в пределах:

m = re.search(r'(?<!\d)\d+(?!\d)', s) 
+0

Возможно, вам потребуется проверить, что номер не является частью строки (например: «test123 456» не должен возвращать 123, а вместо этого - 456). Но это потребует уточнения ОП. – MxyL

0

надеюсь, что это поможет ...

s = "sdasdas 12313 dsada 9 dsgrdfgd" 
for _ in s.split(): 
    if _.isdigit(): 
     print int(_[:1]) 
+0

он будет печатать целые числа из строки, если он найден. –

Смежные вопросы