Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите найти ошибку, пожалуйста

Паоло изучает русский язык: занимается по учебникам, читает книги, слушает музыку. Ему особенно понравилась книга «Преступление и наказание». Паоло решил найти самое длинное слово в этой книге, чтобы сравнить его с аналогом на своём языке.

Что нужно сделать
Напишите программу, которая получает на вход текст и находит длину самого длинного слова в нём. Слова в тексте разделяются одним пробелом.

Пример:

Введите текст: Меня зовут Пётр.
Самое длинное слово, букв: 5.

Введите текст: Меня зовут Василий
Самое длинное слово, 7 букв

text = input('Введите текст: ')
long_word = 0
count = 0
for symbol in text:
if symbol != ' ':
count += 1
else:
if count > long_word:
long_word = count
count = 0
print('Самое длинное слово из', long_word, 'букв')

я решила вот так, но если длинное слово вводится первым, то он его считает верно, а сели вторым и тд, то не считает. видит только первое слово. Не пойму где ошибка

По дате
По рейтингу
Аватар пользователя
Новичок

Охота велосипеды изобретать? А что эти ваши шикарные решения будут делать, если в тексте есть запятые, точки, восклицательные знаки и другая пунктуация? В книге "П и Н" этого добра хватает, ведь Фёдор Михайлович Достоевский, как-никак, ЕГЭшником не был, в отличие от большинства недоделанных программистов на этом ресурсе.

Эта реализация найдёт все слова, чем бы они ни были разделены:

1234
 from re import compile, findall
s = input()
words = compile('([-\w]+)').findall(s)
print(len(max(words, key = len))) 

Слова, включающие дефис ("как-никак", "во-первых" и др.), считаются одним словом.

Аватар пользователя
Знаток
123456789101112
 text = input('Введите текст: ') 
count = 0 
max = 0 
 
for i in text: 
  if i == ' ': 
    count = 0 
  else: 
    count += 1 
    if count > max: 
      max = count 
print(max) 
Аватар пользователя
Просветленный
1234567891011121314
 text = input('Введите текст: ') 
long_word = 0 
count = 0 
for symbol in text: 
    if symbol != ' ': 
        count += 1 
    else: 
        if count > long_word: 
            long_word = count 
        count = 0 
if count > long_word: 
    long_word = count 
print('Самое длинное слово из', long_word, 'букв') 
 

Теперь программа будет корректно работать даже если введенный текст не оканчивается на пробел.