• 1
    Entrée et sortie
    • Tâches
  • 2
    Conditions
    • Tâches
  • 3
    Boucle for
    • Tâches
  • 4
    Chaînes
    • Tâches
  • 5
    Boucle while
    • Tâches
  • 6
    Listes
    • Tâches
  • 7
    Tableaux 2D
    • Tâches
  • 8
    Dictionnaires
    • Tâches
  • 9
    Ensembles
    • Tâches
  • 10
    Fonctions et récursion
    • Tâches
  • к

Leçon 4. Lines

Difficulté :

Exercice«Concours»

💻 Python

Vous participez à un prestigieux concours littéraire. Le jury apprécie non seulement la profondeur de la pensée, mais aussi la richesse de la langue. Pour impressionner, vous avez décidé d'analyser votre essai et de trouver le mot le plus long et le plus court qu'il contient. Cela vous aidera à comprendre à quel point votre vocabulaire est diversifié.

tâche :
Écrivez un programme qui accepte une ligne de texte (votre essai) et trouve le mot le plus long et le plus court qu'il contient.

restrictions :

  1. mot   — Il s'agit de toute séquence de caractères séparée par des espaces.
  2. ponctuation :   Les signes de ponctuation au début ou à la fin du mot (.,!?;:) ne sont pas pris en compte. Par exemple, le mot "Bonjour!" doit être considéré comme "Bonjour".
  3. casse :   La comparaison des mots doit tenir compte de la casse. Les mots "mot" et "Mot" sont considérés comme différents.
  4. résolution des égalités :
    • Si plusieurs mots ont la même longueur maximale, le mot le plus long est considéré comme étant le premier dans l'ordre alphabétique.
    • Si plusieurs mots ont la même longueur minimale, le mot le plus court est considéré comme étant le premier dans l'ordre alphabétique.
  5. entrée vide : s'il n'y a aucun mot dans le texte (la ligne est vide ou ne contient que des espaces et des signes de ponctuation), le programme doit afficher le message "Aucun mot trouvé".

 

Format d entrée

Une ligne de texte (chaîne de caractères), qui peut contenir des mots, des espaces et des signes de ponctuation.

Format de sortie

Le mot le plus long du texte (chaîne). Sur la ligne suivante — Le mot le plus court du texte (chaîne).
Si les mots ne sont pas trouvés, une ligne "Mots non trouvés." (chaîne).

Exemple

Entrée

Bonjour, paix ! Voici un mot très, très long et un autre mot.

Sortie

Très, très
et

Indice

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Solution du développeur
# Заранее определяем строку со знаками препинания, которые нужно удалить
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)

🎉 Félicitations ! 🎉

Tu as brillamment résolu la tâche ! C était difficile, mais tu as trouvé la bonne solution. Tu es encore plus proche de maîtriser la programmation ! Continue ainsi.

AD

Publicité

red-snake blue-snake green-snake

Exécution de votre code...

Assistant IA

Bonjour ! Je suis ton assistant de programmation. Pose moi toutes tes questions sur Python — je peux t expliquer les fonctions, les méthodes et t aider avec la tâche en cours !