Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/103: Рейтинг темы: голосов - 103, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9

Решение задачи по нахождению самого длинного слова в тексте

04.10.2021, 08:24. Показов 23209. Ответов 16

Студворк — интернет-сервис помощи студентам
Паоло изучает русский язык: занимается по учебникам, читает книги, слушает музыку. Особенно Паоло понравилась книга “Преступление и наказание”. И ему стало интересно, какое можно найти самое длинное слово в этой книге, чтобы потом сравнить его с аналогом на своём языке.

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

Пример:

Введите текст: Меня зовут Петр
Длина самого длинного слова: 5

Только с помощью FOR и IF
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2021, 08:24
Ответы с готовыми решениями:

Решение задачи по нахождению короткого и длинного слова, удаление слов на гласную букву
Всем привет! Знаю, что части этих задачей есть на форуме, но нужно чтоб всё было в одном коде. Помогите пожалуйста) В заданном...

Найти длину самого короткого слова и самого длинного слова в тексте
Дана символьная строка , содержащая текст , который заканчивается точкой. Найти длину самого короткого слова и самого длинного слова....

Определить порядковые номера самого длинного и самого короткого слова в тексте
Помогите с кодом, но нельзя использовать вектора Задан текст, надо определить порядковые номера самого длинного и самого короткого слова

16
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
04.10.2021, 08:27
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Python
1
max(text.split(), key=len)
1
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9
04.10.2021, 09:31  [ТС]
Вот таким макаром нужно
Python
1
2
3
4
5
6
7
8
9
10
11
12
string = input('Введите строку: ') 
count=0
result=0
for symbol in string:
  (  Вот здесь скорее всего пустое место для кода)          )
 
   if count > result:
       result = count 
       count = 0
   if count > result:
   result = count
print (result)
0
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
04.10.2021, 09:34
Цитата Сообщение от roal Посмотреть сообщение
Вот таким макаром нужно
ты имел ввиду НЕ нужно и никогда так не делать?
0
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9
04.10.2021, 09:36  [ТС]
Вот таким макаром нужно, вот код доработать нужно

Python
1
2
3
4
5
6
7
8
9
10
11
string = input('Введите строку: ') #ssbsss
count=0
result=0
for symbol in string:
  
    if count > result:
       result = count 
       count = 0
if count > result:
   result = count
print (result)
0
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
04.10.2021, 09:37
Цитата Сообщение от roal Посмотреть сообщение
Вот таким макаром нужно, вот код доработать нужно
кому нужно?
0
0 / 0 / 0
Регистрация: 11.09.2021
Сообщений: 9
04.10.2021, 09:39  [ТС]
Имел ввиду, что нужно вот таким способом решить

Добавлено через 53 секунды
Имел ввиду, что нужно таким способом решить, и используя только fоr и if
0
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
04.10.2021, 09:40
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

roal, ну на

Python
1
2
3
4
5
6
7
8
9
text = input('Введите текст: ').split()
max_len = 0
for word in text:
    word_len = 0
    for letter in word:
        word_len += 1
    if word_len > max_len:
        max_len = word_len
print(f'Длина самого длинного слова: {max_len}')
2
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
24.10.2022, 14:42
Добрый день. Я тоже сейчас прохожу этот тест в skillbox и ваш ответ оказался самым рабочим. Но вся проблема заключается в том, что тему разрезания строк на части мы еще не проходили и с функцией split я не знаком. А как можно эту задачу решить более топорным методом? В плане я не понимаю, как без разрезания считать до пробела и после. У меня уже башка кипит!
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.10.2022, 14:47
Python
1
2
3
4
5
6
7
8
9
10
text = input()
words = []
word = ''
for i in text:
    if i==' ':
        words.append(word)
        word = ''
        continue
    word += i
print(words)
1
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
24.10.2022, 15:27
Тоже все круто. Но вся проблема заключается в том, что кроме циклов for и while, ну и конечно переменных, мы пока ничего не проходили. Мне не сложно скопировать ваш ответ и послать куратору, но я хочу разобраться на том уровне на котором нахожусь сейчас. А то как то будет не по себе если при любом трудоустройстве посыплюсь
Тут просто получается так, что я не могу понять как мне это все раздельно посчитать.
Вот я написал, как это вижу я.

text = input('Введите строку: ') # привет как твои дела
count = 0
count2 = 0
# Здесь я как бы должен ввести слово и поставить счетчики
for symbol in text:
if symbol != ' '
count += 1 # ну и само собой, змеюка считает все символы кроме пробела
Собственно вопрос заключается в том, как мне с циклами for это все представить и посчитать символы до пробела и после
Так вот на моем уровне я не могу пользоваться всеми теми фишечками, которые вы уже знаете. Я так думаю, что я до них еще доберусь. А мне нужно понять, что на моем уровне я делаю не так.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.10.2022, 15:33
Python
1
2
3
4
5
6
7
8
9
10
11
text = input()
maxx = 0
cnt = 0
for i in text:
    if i==' ':
       if cnt>maxx:
           maxx = cnt
       cnt = 0
       continue
    cnt += 1
print(maxx)
1
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
24.10.2022, 15:46
iSmokeJC, чуть поправлю.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
text = input()
maxx = 0
cnt = 0
for i in text:
    if i==' ':
       if cnt>maxx:
           maxx = cnt
       cnt = 0
       continue
    cnt += 1
if cnt > maxx:
    maxx = cnt
print(maxx)
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.10.2022, 15:51
Alexarh, согласен, ага
0
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
24.10.2022, 16:34
Теперь я обьясню что мне не понятно...

text = input()
maxx = 0
cnt = 0
for i in text:
if i==' ':
#ну тут все ясно, объявляем переменные, запускаем цикл for и спрашиваем видим ли мы в нем ' '
if cnt>maxx:
maxx = cnt
cnt = 0
# как я понимаю выше идет сравнение переменных maxx и cnt, но если я правильно понимаю, то нигде не сработал счетчик переменной и не понятно мне он должен был сработать до пробела или после. Короче для меня переменные maxx и cnt пока равны 0. Оттого и вопрос, что с чем я сейчас сравниваю?
continue
cnt += 1
# почему вдруг в счетчик cnt сейчас добавилось +1?
if cnt > maxx:
maxx = cnt
print(maxx)
# ну и логично что cnt сейчас будет больше чем maxx следовательно есть ли смысл его сейчас засовывать в maxx да еще и распечатывать? Не проще ли было распечатать cnt.


p.s.
Надеюсь ругаться не будете, но как было сказано в фильме Куравлева. Я не очень умный человек, но я думающий дурак. Я понять хочу, разобраться!
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
24.10.2022, 18:19
mr_price, давай начнем с кусков кода. вот самый основной который считает количество букв в слове
Python
1
2
for i in text:
    cnt += 1
теперь нам же нужно понять когда слово заканчивается и начинается другое. признаком окончания считаем пробел. для чего каждый символ сверяем с пробелом
Python
1
if i==' ':
и если символ пробел то сравниваем два значения. если предыдущее меньше то перезаписываем большим и обнуляем счетчик
Python
1
2
3
if cnt>maxx:
           maxx = cnt
       cnt = 0
нам же нужно новое слово считать символы с 0. continue для того что бы проскочить итерацию и не считать пробел за часть слова. ну и в конце когда посчитали длину последнего слова так как пробелов нет и цикл завершен то опять выбираем большее из двух значений
Python
1
2
3
if cnt > maxx:
    maxx = cnt
print(maxx)
1
0 / 0 / 0
Регистрация: 24.10.2022
Сообщений: 4
29.10.2022, 11:34
Прошу прощения, что не написал слова благодарности раньше. работал, на основной работе, даже ноут не открывал. А так спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2022, 11:34
Помогаю со студенческими работами здесь

Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте
Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте. С комментами)

Найти длину самого длинного, и самого короткого слова (в каком либо тексте) и поменять их местами
Найти длину самого длинного, и самого короткого слова (в каком либо тексте) и поменять их местами.

Поиск в тексте самого длинного слова
Напишите программу для поиска в тексте самого длинного слова.

Определить длину самого длинного слова тексте
Дан текст. Найти длину самого длинного слова

Найти длину самого длинного слова в тексте
Доброго времени суток) Такое задание: Найти длину самого длинного слова в тексте. У меня возникла проблема: при вводе более 3 слов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru