• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 4. строки

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Конкурс»

💻 Python
Вы участвуете в литературном конкурсе, где ценится богатство словарного запаса. Напишите программу, которая подсчитывает количество уникальных слов в тексте и определяет, богатый ли словарный запас (уникальных слов больше половины от общего числа).

Формат ввода

Одна строка текста (string), которая может содержать слова, пробелы и знаки препинания.

Формат Вывода

Самое длинное слово из текста (string). На следующей строке — самое короткое слово из текста (string).
Если слова не найдены, выводится одна строка "Слова не найдены." (string).

Пример

Ввод

Привет, мир! Это очень-очень длинное слово и ещё одно слово.

Вывод

очень-очень
и

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Заранее определяем строку со знаками препинания, которые нужно удалить
punctuation = '.,!?:;-"()\''

# Получаем строку текста от пользователя
text = input()

# Преобразуем весь текст в нижний регистр для регистронезависимого сравнения
# и разбиваем его на отдельные слова по пробелам
raw_words = text.lower().split()

# Создаем пустой список для хранения очищенных слов
cleaned_words = []

# Используем цикл for для перебора каждого "сырого" слова
for raw_word in raw_words:
    # Удаляем знаки препинания с начала и конца каждого слова
    word = raw_word.strip(punctuation)
    # Если после очистки слово не стало пустым, добавляем его в наш список
    if word:
        cleaned_words.append(word)

# Проверяем, нашлись ли в тексте какие-либо слова
if not cleaned_words:
    # Если список пуст, выводим соответствующее сообщение
    print("Слова не найдены.")
else:
    # Инициализируем самое длинное и самое короткое слово первым словом из списка
    longest_word = cleaned_words[0]
    shortest_word = cleaned_words[0]

    # Начинаем цикл со второго элемента, так как первый уже взят за основу
    for word in cleaned_words[1:]:
        # Условие для поиска самого длинного слова
        # Оно становится новым самым длинным, если его длина больше
        # ИЛИ если длины равны, но оно по алфавиту идет раньше
        if len(word) > len(longest_word) or (len(word) == len(longest_word) and word < longest_word):
            longest_word = word
        
        # Условие для поиска самого короткого слова
        # Оно становится новым самым коротким, если его длина меньше
        # ИЛИ если длины равны, но оно по алфавиту идет раньше
        if len(word) < len(shortest_word) or (len(word) == len(shortest_word) and word < shortest_word):
            shortest_word = word

    # Выводим найденное самое длинное слово
    print(longest_word)
    # Выводим найденное самое короткое слово на новой строке
    print(shortest_word)

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, объяснить то, что тебе не понятно, а также о текущей задаче!