Форум сайта python.su
Задачка
Дана строка символов. Признак конца строки - символ перехода на новую строку. Строка состоит из слов, которые отделены друг от друга пробелами. Вывести самое длинное слово и его порядковый номер.
Собственно, в чем вопрос. Устраиваюсь на работу, дали домашку из 4 задач и помимо этого нужно еще выучить кучу инфы связанной с бух. учетом и налогообложением. Принцип понимаю, но слишком много пробелов в знании, не успеваю все почерпнуть.
s = input()Так я найду самое длинное слово. Как теперь сюда внедрить подсчет символов этого самого длинного слова?
l = len(s)
m = 0
ind = 0
count = 0
for i in range(l):
if s != ‘ ’:
count += 1
else:
if count > m:
m = count
ind = i - count
count = 0
if count > m:
m = count
ind = i - count + 1
print(s)
Офлайн
>>> doc='''Дана строка символов. Признак конца строки - символ перехода на новую строку. Строка состоит из слов, которые отделены друг от друга пробелами. Вывести самое длинное слово и его порядковый номер. Собственно, в чем вопрос. Устраиваюсь на работу, дали домашку из 4 задач и помимо этого нужно еще выучить кучу инфы связанной с бух. учетом и налогообложением. Принцип понимаю, но слишком много пробелов в знании, не успеваю все почерпнуть. ''' >>> lst = [] >>> for i in doc.split('\n'): for j in i.split(): lst.append(j) >>> word = sorted(lst,key=lambda x: len(x))[-1] >>> print(word, lst.index(word)) налогообложением. 55 >>>
Онлайн
vic57Нормально так точка входит в слово при подсчёте. А при строке “да да да. да” она выдаст слово “да.”, потому что у него длина три.в чем вопрос. Устраиваюсьfor i in doc.split('\n'): for j in i.split(): lst.append(j) word = sorted(lst,key=lambda x: len(x))[-1]
>>> s = 'aa bbb cc dddd ee' >>> >>> max(enumerate(s.split(), 1), key=lambda i: len(i[1])) (4, 'dddd') >>>
Офлайн
ну методов много, можно через re почистить
>>> import re >>> lst = [i for i in re.split(r'[\n., ]',doc) if i] >>> sorted(lst,key=lambda x: len(x)) ['-', 'и', 'в', '4', 'и', 'с', 'и', 'в', 'на', 'из', 'от', 'на', 'из', 'но', 'не', 'его', 'чем', 'еще', 'бух', 'все', 'Дана', 'слов', 'друг', 'дали', 'кучу', 'инфы', 'конца', 'новую', 'друга', 'самое', 'слово', 'номер', 'задач', 'этого', 'нужно', 'много', 'строка', 'строки', 'символ', 'строку', 'Строка', 'вопрос', 'работу', 'помимо', 'учетом', 'знании', 'Признак', 'состоит', 'которые', 'Вывести', 'длинное', 'домашку', 'выучить', 'Принцип', 'понимаю', 'слишком', 'успеваю', 'символов', 'перехода', 'отделены', 'пробелов', 'пробелами', 'связанной', 'порядковый', 'Собственно', 'почерпнуть', 'Устраиваюсь', 'налогообложением']
Онлайн