Werken met tekst · eindproject
Eindproject: Project: Bouw een interactieve tekstonderzoeker
Je kunt een string nu zien als gegevens met structuur, in plaats van één ondeelbaar bericht. In dit project breng je het hoofdstuk samen in een interactief programma dat tekst onderzoekt.
Het programma vraagt om tekst die niet leeg is, verwijdert de witruimte aan de randen, onderzoekt verschillende eigenschappen en drukt een overzicht af.
Invoer
Stel één vraag en sla de teruggegeven string op in original:
original = input("Enter a non-empty phrase: ")
De tekst mag aan het begin of einde spaties bevatten. Bewaar het oorspronkelijke antwoord, zodat het overzicht kan laten zien wat er is ingevoerd.
Dit project vereist bewust minstens één teken dat geen witruimte is, zoals een letter, cijfer of leesteken. Een leeg antwoord controleren en afhandelen vraagt om beslissingen en lussen. Die komen in latere hoofdstukken.
Verwerking
Maak deze zes waarden op basis van original:
| Variabele | Vereiste waarde |
|---|---|
cleaned | original zonder witruimte aan de randen |
character_count | de lengte van cleaned |
first_character | het eerste teken van cleaned |
last_character | het laatste teken van cleaned |
uppercase | een versie van cleaned in hoofdletters |
lowercase | een versie van cleaned in kleine letters |
Gebruik de stringbewerkingen uit dit hoofdstuk. Typ geen resultaten die maar voor één specifieke tekst werken.
Uitvoer
Druk een overzicht van acht regels af in deze vorm:
TEXT INSPECTOR
Original: [ Python Land ]
Cleaned: Python Land
Characters: 11
First character: P
Last character: d
Uppercase: PYTHON LAND
Lowercase: python land
De haken op de regel Original horen bij het overzicht. Ze maken de spaties aan de randen zichtbaar. Voeg geen haken toe aan de regel Cleaned.
Bouw het programma met tussencontroles
1. Verzamel en schoon op
Voer het programma uit met spaties rond een korte tekst. Druk original en cleaned tijdelijk tussen haken af, zodat je het verschil kunt zien.
2. Meet en gebruik indexen
Bereken het aantal tekens. Haal het eerste en laatste teken uit cleaned, niet uit de onbewerkte invoer.
3. Bewerk
Maak de strings in hoofdletters en kleine letters. Onthoud dat de methoden nieuwe waarden teruggeven. Ze veranderen cleaned niet.
4. Presenteer
Verwijder tijdelijke controles en druk met f-strings het volledige overzicht af.
Voordat je instuurt
Controleer of:
originalde waarde bevat dieinput()teruggeeft;cleanedafkomstig is van.strip();de lengte en de via indexen opgehaalde tekens uit
cleanedkomen;de versies in hoofdletters en kleine letters apart zijn opgeslagen;
het overzicht na de vraag de vereiste acht niet-lege regels bevat;
de regel Original zijn waarde tussen vierkante haken toont.
Als je abonnement Guided bevat, kun je Monty vragen:
Beoordeel mijn tekstonderzoeker in de volgorde invoer, verwerking, uitvoer. Controleer of elke afgeleide waarde uit de juiste string komt en wijs steeds één probleem aan.
Nadat het programma slaagt
Voer het programma uit met leestekens, hoofdletters en kleine letters door elkaar, of meerdere spaties tussen woorden. Kijk wat .strip() verandert en wat het laat staan.
Je hebt nu een precies model van strings als geordende, onveranderbare reeksen. Dat model helpt je om lijsten te begrijpen wanneer je hoofdstuk 6 bereikt. De verschillen tussen beide zijn daarbij net zo belangrijk.
Kijk ook wat je tekstonderzoeker nog niet kan. Het drukt voor elke geschikte tekst dezelfde acht soorten informatie af. Het kan geen extra bericht kiezen voor een lange tekst of een leeg antwoord afwijzen. In het volgende hoofdstuk leer je beslissingen waarmee een programma kiest welke instructies het uitvoert.
Opdracht
Bouw een interactieve tekstonderzoeker.
Sla de invoer op in
originalen verwijder de witruimte aan de randen voorcleaned.Bereken
character_countop basis vancleaned.Haal
first_characterenlast_characteruitcleaned.Maak de versies
uppercaseenlowercase.Druk het vereiste overzicht van acht regels af.
Gebruik de aangeleerde stringbewerkingen en druk het overzicht af met f-strings.
Voer tekst in met minstens één teken dat geen witruimte is. Witruimte aan de randen is toegestaan; een ongeschikt antwoord controleren en afhandelen komt in latere hoofdstukken.