Tracks
/
Python
Python
/
Übungen
/
Der Aufsatz der kleinen Schwester
Der Aufsatz der kleinen Schwester

Der Aufsatz der kleinen Schwester

Lernübung

Einführung

Die Klasse str bietet viele nützliche Methoden für die Arbeit mit Strings und deren Zusammensetzung. Dazu gehören Suchen, Bereinigen, Aufteilen, Umwandeln, Übersetzen und viele weitere Techniken.

Strings sind Sequenzen von Unicode-Codepunkten. Einzelne „Zeichen“ oder Codepunkte (Strings der Länge 1) lassen sich über eine 0-based index-Nummer von links oder eine -1-based index-Nummer von rechts ansprechen. Strings unterstützen alle üblichen Sequenzoperationen.

Du kannst sie mit der Syntax for item in <str> oder for index, item in enumerate(<str>) durchlaufen. Außerdem kannst du sie mit <str> + <other str> oder <str>.join(<iterable>) verketten.

Strings sind unveränderlich. Das bedeutet, der Wert eines str-Objekts im Speicher kann sich nicht ändern. Funktionen oder Methoden, die auf einem str arbeiten (wie die, die wir hier kennenlernen), geben eine neue instance dieses str-Objekts zurück, statt das ursprüngliche str zu verändern.

Im Folgenden findest du eine kleine Auswahl von Python-String-Methoden. Eine vollständige Liste findest du in der Klasse str in der Python-Dokumentation.

<str>.title() analysiert einen String und schreibt das erste „Zeichen“ jedes gefundenen „Worts“ groß. In Python hängt das stark vom verwendeten Sprach-Codec ab und davon, wie die jeweilige Sprache Wörter und Zeichen darstellt. Außerdem können für eine Sprache oder einen Zeichensatz Locale-Regeln gelten.

man_in_hat_th = 'ผู้ชายใส่หมวก'
man_in_hat_ru = 'мужчина в шляпе'
man_in_hat_ko = '모자를 쓴 남자'
man_in_hat_en = 'the man in the hat.'

>>> man_in_hat_th.title()
'ผู้ชายใส่หมวก'

>>> man_in_hat_ru.title()
'Мужчина В Шляпе'

>>> man_in_hat_ko.title()
'모자를 쓴 남자'

>> man_in_hat_en.title()
'The Man In The Hat.'

<str>.endswith(<suffix>) gibt True zurück, wenn der String mit <suffix> endet, andernfalls False.

>>> 'My heart breaks. 💔'.endswith('💔')
True

>>> 'cheerfulness'.endswith('ness')
True

# Punctuation is part of the string, so needs to be included in any endswith match.
>>> 'Do you want to 💃?'.endswith('💃')
False

>> 'The quick brown fox jumped over the lazy dog.'.endswith('dog')
False

<str>.strip(<chars>) gibt eine Kopie des str zurück, bei der führende und nachfolgende <chars> entfernt wurden. Die in <chars> angegebenen Codepunkte sind kein Präfix oder Suffix: alle Kombinationen der Codepunkte werden von beiden Enden des Strings entfernt. Wenn für <chars> nichts angegeben wird, werden alle Kombinationen von Whitespace-Codepunkten entfernt.

# This will remove "https://", because it can be formed from "/stph:". 
>>> 'https://unicode.org/emoji/'.strip('/stph:')
'unicode.org/emoji'

# Removal of all whitespace from both ends of the str.
>>> '   🐪🐪🐪🌟🐪🐪🐪   '.strip()
'🐪🐪🐪🌟🐪🐪🐪'

>>> justification = 'оправдание'
>>> justification.strip('еина')
'оправд'

# Prefix and suffix in one step.
>>> 'unaddressed'.strip('dnue')
'address'

>>> '  unaddressed  '.strip('dnue ')
'address'

<str>.replace(<substring>, <replacement substring>) gibt eine Kopie des Strings zurück, in der alle Vorkommen von <substring> durch <replacement substring> ersetzt wurden.

Das unten verwendete Zitat stammt aus The Hunting of the Snark von Lewis Carroll

# The Hunting of the Snark, by Lewis Carroll
>>> quote = '''
"Just the place for a Snark!" the Bellman cried,
   As he landed his crew with care;
Supporting each man on the top of the tide
   By a finger entwined in his hair.

"Just the place for a Snark! I have said it twice:
   That alone should encourage the crew.
Just the place for a Snark! I have said it thrice:
   What I tell you three times is true."
'''

>>> quote.replace('Snark', '🐲')
...
'\n"Just the place for a 🐲!" the Bellman cried,\n   As he landed his crew with care;\nSupporting each man on the top of the tide\n   By a finger entwined in his hair.\n\n"Just the place for a 🐲! I have said it twice:\n   That alone should encourage the crew.\nJust the place for a 🐲! I have said it thrice:\n   What I tell you three times is true."\n'

>>> 'bookkeeper'.replace('kk', 'k k')
'book keeper'

Anleitung

In dieser Übung hilfst du deiner kleinen Schwester, ihren Aufsatz für die Schule zu überarbeiten. Die Lehrkraft achtet auf korrekte Zeichensetzung, Grammatik und eine hervorragende Wortwahl.

Du hast vier Aufgaben, um Strings zu bereinigen und zu verändern.

1. Den Titel des Aufsatzes großschreiben

Jeder gute Aufsatz braucht einen korrekt formatierten Titel. Implementiere die Funktion capitalize_title(<title>), die einen Titel str als Parameter entgegennimmt und den ersten Buchstaben jedes Wortes großschreibt. Diese Funktion sollte einen str zurückgeben, in dem jedes Wort groß beginnt.

>>> capitalize_title("my hobbies")
"My Hobbies"

2. Prüfen, ob jeder Satz mit einem Punkt endet

Du möchtest sicherstellen, dass die Zeichensetzung im Aufsatz perfekt ist. Implementiere die Funktion check_sentence_ending(), die sentence als Parameter entgegennimmt. Diese Funktion sollte einen bool zurückgeben.

>>> check_sentence_ending("I like to hike, bake, and read.")
True

3. Leerzeichen bereinigen

Damit der Aufsatz professionell aussieht, müssen unnötige Leerzeichen entfernt werden. Implementiere die Funktion clean_up_spacing(), die sentence als Parameter entgegennimmt. Die Funktion sollte überflüssige Leerzeichen am Anfang und am Ende des Satzes entfernen und einen neuen, aktualisierten Satz str zurückgeben.

>>> clean_up_spacing(" I like to go on hikes with my dog.  ")
"I like to go on hikes with my dog."

4. Wörter durch ein Synonym ersetzen

Um den Aufsatz noch besser zu machen, kannst du einige Adjektive durch ihre Synonyme ersetzen. Schreibe die Funktion replace_word_choice(), die sentence, old_word und new_word als Parameter entgegennimmt. Diese Funktion sollte alle Vorkommen von old_word durch new_word ersetzen und einen neuen str mit dem aktualisierten Satz zurückgeben.

>>> replace_word_choice("I bake good cakes.", "good", "amazing")
"I bake amazing cakes."
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Python Exercism

Bereit, mit Der Aufsatz der kleinen Schwester zu starten?

Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.