Werken met tekst · oefening
Handige stringmethoden
In de les over wat er onder de motorkap gebeurt, leerde je dat een methode een functie is die bij een object hoort. Stringobjecten bieden veel methoden. Met een klein groepje daarvan kun je veel alledaagse tekst opschonen.
message = "Hello"
loud_message = message.upper()
print(loud_message)
De uitvoer is HELLO.
Je roept een methode aan op een waarde
De aanroep message.upper() heeft vertrouwde onderdelen:
messageverwijst naar de string waarop de bewerking wordt uitgevoerd.De punt verbindt die string met een van zijn methoden.
upperis de naam van de methode.De haakjes roepen de methode aan.
De string in hoofdletters is de teruggegeven waarde.
Je kunt de teruggegeven waarde van een methode opslaan met een toewijzing, net als bij input(), type() of len().
Verander hoofdletters en kleine letters
.upper() geeft een versie in hoofdletters terug:
print("Python Land".upper())
.lower() geeft een versie in kleine letters terug:
print("Python Land".lower())
Deze methoden werken op letters. Spaties, cijfers en gewone leestekens blijven staan.
Verwijder witruimte aan de randen
.strip() verwijdert witruimte, zoals spaties, tabs en regeleinden, aan het begin en einde van een string:
De vierkante haken maken de spaties aan de randen zichtbaar in de uitvoer.
.strip() verwijdert geen spaties midden in de tekst. "Python Land".strip() blijft "Python Land".
Deze methode is vooral handig bij gebruikersinvoer die ergens vandaan is gekopieerd of per ongeluk extra spaties bevat.
Koppel methoden als het ene resultaat naar de volgende gaat
De methoden in deze les geven strings terug. Op elke teruggegeven waarde kun je dus weer een stringmethode aanroepen. Dat heet method chaining, oftewel methoden aan elkaar koppelen.
Python verwerkt de gekoppelde expressie in stappen:
raw_answer.strip()geeft"OUTDOOR"terug zonder de spaties aan de randen..lower()wordt aangeroepen op die teruggegeven string en levert"outdoor"op.De uiteindelijke string wordt toegewezen aan
clean_answer.
Methoden koppelen is handig als elke stap kort is en de gecombineerde expressie goed leesbaar blijft. Gebruik afzonderlijke variabelen als je een tussenwaarde wilt bekijken of opnieuw wilt gebruiken.
Wat drukt dit programma af?
raw = " Hello "
print(raw.strip().upper())Schoon een titel op en zet hem in hoofdletters
De beginwaarde bevat aan beide kanten spaties.
Vervang de tijdelijke waarden, zodat:
clean_titlehet resultaat is van.strip()opraw_title;loud_titlehet resultaat is van.upper()opclean_title.
De uitvoer moet zijn:
[Python Land]
PYTHON LAND
Laat raw_title ongewijzigd. Sla elke teruggegeven string op in de variabele die hem beschrijft.
Opdracht
Gebruik .strip() om clean_title te maken. Gebruik daarna .upper() op clean_title om loud_title te maken.
Zorg voor deze uitvoer:
[Python Land]
PYTHON LAND