Я выполняю практическое упражнение, в котором я ввожу строку, и код должен найти первое появившееся число, а затем распечатать это число.
У меня есть один l oop, чтобы сначала проверить, есть ли вообще цифр и второй l oop, чтобы найти конец этого числа. Моя проблема в том, что второй l oop не знает, когда остановиться. Даже если число заканчивается, оно продолжается.
Вот весь соответствующий код, который у меня есть:
s = str(input("Input a string: "))
# counter to find digit's index
i = 0
while i < len(s) and not s[i].isdigit():
i += 1
# counter to find end of number's index
j = i
if i < len(s) and s[i].isdigit:
# find end of number, if any
while j < len(s) and s[j].isdigit:
j += 1
# i and j now indicate the starting and ending index of the number
full_number = s[i:j]
Если я ввожу 'hello 123 world', тогда full_number должен быть «123», но фактически возвращает «123 мира». Я совершенно не понимаю, почему, поскольку второе условие l oop не должно выполняться «миром».
Любая помощь приветствуется