• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 4. Lines

难度:

任务«竞赛»

💻 Python

你参加了一场 prestigious 的文学比赛。评委不仅欣赏思想的深度,也看重语言的丰富性。为了给人留下深刻印象,你决定分析你的文章,找出其中最长和最短的单词。这将帮助你了解你的词汇多样性。

任务:
编写一个程序,接受一行文本(你的文章),并找出其中最长和最短的单词。

限制条件:

  1. 单词   — 是由空格分隔的任何字符序列。
  2. 标点符号:   单词开头或结尾的标点符号(如 .,!?;:- 符号)应被忽略。
  3. 大小写:   单词比较应区分大小写。例如,Hello 和 hello 被视为不同。
  4. 平局处理:
    • 如果有多个单词具有相同的最大长度,则按字母顺序排在最前面的单词被视为最长单词。
    • 如果有多个单词具有相同的最小长度,则按字母顺序排在最前面的单词被视为最短单词。
  5. 空输入: 如果文本中没有单词(行为空或仅由空格和标点符号组成),程序应显示消息 "No words found."。

 

输入格式

一行文本(字符串),可能包含单词、空格和标点符号。

输出格式

文本中最长的单词(字符串)。下一行——文本中最短的单词(字符串)。
如果未找到单词,则输出一行“未找到单词。”(字符串)。

示例

输入

你好,和平!这是一个非常非常长的单词和另一个单词。

输出

非常,非常
和

提示

There will be no clue here, decide for yourself!

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

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!