Информатика, вопрос задал 2SAnastasiAS2 , 2 года назад

Написать программу в питоне
плиииз

Приложения:

merkkaa: они могут переплетаться в тексте? например чи22сло или только по отдельности?
2SAnastasiAS2: честно говоря не знаю, препод ничего не говорил, можете сделаать 3 варианта
2SAnastasiAS2: желательно с объяснениями))) плиз

Ответы на вопрос

Ответил rinatmuxekto86
0

s=''

strnum=''

count=0

s=input()

for sym in s:

   if sym.isdigit():

       strnum+=sym

   elif strnum:

       num=int(strnum)

       if num>9 and num<100:

           count+=1

       strnum=''

if s[-1].isdigit():

   num=int(strnum)

   if num>9 and num<100:

       count+=1

print(count)

Разберём этот код:

Переменная s будет хранить в себе текст, который введёт пользователь

strnum - будем в неё сохранять цифры, которые будут нам попадаться в тексте и идти подряд

count - счётчик, в котором мы будем сохранять кол-во наших чисел

s=input() - пользователь вводит текст

for sym in s: - проверяем абсолютно каждый символ в тексте по очереди

if sym.isdigit(): - если наша буква является цифрой (метод isdigit именно это и проверяет), то мы прибавляем этот символ к нашей строке strnum

elif strnum - эта строка развнозначна строке elif strnum!='' , т.е., если наша строка не пустая и нам попалась не цифра, то:

num-int(strnum) - переменная num будет получать найденные числа, причём мы преобразовываем их в формат целых чисел (по умолчанию в тексте все цифры считаются просто символами)

проверяем, получившееся число будет двузначным или нет. Если да, увеличиваем счётчик count.

И не забываем очищать нашу строку, ведь мы нашли число и отработали с ним, теперь пора искать следующее.

В нашей программе есть одна проблема: если последний символ будет цифрой, то мы не будем учитывать его, что не есть хорошо, поэтому в самом конце мы выполняем доп проверку:

if s[-1].isdigit(): - если последняя цифра (индекс -1 проверяет именно последний символ), то проверяем то, что осталось в самом конце в нашей переменной strnum

Новые вопросы