• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 4. Lines

Schwierigkeit:

Aufgabe«Wettbewerb»

💻 Python

Sie nehmen an einem prestigeträchtigen Literaturwettbewerb teil. Die Jury schätzt nicht nur die Tiefe des Gedankens, sondern auch den Wortreichtum der Sprache. Um zu beeindrucken, haben Sie beschlossen, Ihren Aufsatz zu analysieren und das längste und kürzeste Wort darin zu finden. Dies wird Ihnen helfen zu verstehen, wie vielfältig Ihr Wortschatz ist.

Aufgabe:
Schreiben Sie ein Programm, das eine Textzeile (Ihren Aufsatz) entgegennimmt und das längste und kürzeste Wort darin findet.

Einschränkungen:

  1. Wort & nbsp; & mdash; Dies ist jede Zeichenfolge, die durch Leerzeichen getrennt ist.
  2. Interpunktion: & nbsp; Satzzeichen am Anfang oder am Ende des Wortes (.,!?;: ) sollten entfernt werden. Wenn nach dem Entfernen der Satzzeichen das Wort leer ist, wird es nicht berücksichtigt.
  3. Groß-/Kleinschreibung: & nbsp; Der Vergleich von Wörtern sollte groß-/kleinsschreibungsabhängig sein. Wörter in unterschiedlicher Schreibweise gelten als unterschiedlich.
  4. Auflösung von Gleichständen:
    • Wenn mehrere Wörter die gleiche maximale Länge haben, gilt dasjenige als das längste, das alphabetisch zuerst kommt.
    • Wenn mehrere Wörter die gleiche minimale Länge haben, gilt dasjenige als das kürzeste, das alphabetisch zuerst kommt.
  5. Leere Eingabe: Wenn der Text keine Wörter enthält (die Zeile ist leer oder besteht nur aus Leerzeichen und Satzzeichen), soll das Programm die Meldung "Keine Wörter gefunden" ausgeben.

& nbsp;

Eingabeformat

Eine Textzeile (Zeichenkette), die Wörter, Leerzeichen und Satzzeichen enthalten kann.

Ausgabeformat

Das längste Wort aus dem Text (String). In der nächsten Zeile — das kürzeste Wort aus dem Text (String).
Wenn keine Wörter gefunden werden, eine Zeile "Wörter wurden nicht gefunden." (String).

Beispiel

Eingabe

Hallo, Frieden! Dies ist ein sehr, sehr langes Wort und ein weiteres Wort.

Ausgabe

Sehr, sehr
und

Hinweis

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
Entwicklerlösung
# Заранее определяем строку со знаками препинания, которые нужно удалить
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)

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!