Programmeren 9 - Strings als array's in Python

Strings in Python: Deze pagina
Vorige week hebben we array's in Flowgorithm behandeld: Een rij variabelen. Daar hebben we alleen integers, dus gehele getallen, bekeken.
We hebben een random rij gemaakt, de getallen op laten tellen, het gemiddelde berekend en de eerste 10 Fibonacci-getallen gegeven.
In Python bekijken we nu strings. En niet als hele woorden of zinnen, maar als een verzameling karakters, dus een array van karakters
1 / 16
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

In deze les zitten 16 slides, met interactieve quiz en tekstslides.

time-iconLesduur is: 50 min

Onderdelen in deze les

Strings in Python: Deze pagina
Vorige week hebben we array's in Flowgorithm behandeld: Een rij variabelen. Daar hebben we alleen integers, dus gehele getallen, bekeken.
We hebben een random rij gemaakt, de getallen op laten tellen, het gemiddelde berekend en de eerste 10 Fibonacci-getallen gegeven.
In Python bekijken we nu strings. En niet als hele woorden of zinnen, maar als een verzameling karakters, dus een array van karakters

Slide 1 - Tekstslide

Zelfstandig werken: 
Opdrachten op deze pagina
  1. De volgende letter
  2. Potjeslatijn
  3. The name game
Huiswerk: Maak van elke opdracht een .py-bestand met een duidelijke naam (bv in Notepad++ opslaan als .py-bestand) en  upload dit naar Showbie.

Slide 2 - Tekstslide

Waarom gaan we daar naar kijken en ermee werken?
O.a. zoekmachines zijn gebouwd om strings te analyseren.
Je gaat ontdekken hoe dit werkt en zelf een kleine zoekmachine bouwen: The needle in the haystack, oftewel: Coding Exercise: Substring Counting

Slide 3 - Tekstslide

Een string is:
  1. Een verzameling karakters, die genummerd zijn
  2. Elk karakter wordt intern omgezet naar een getal en zo opgeslagen
  3. Een woord is dan een rij getallen, genummerd van 0..lengte(woord)-1
  4. De lengte van een string S kun je krijgen door de functie len(S)

Slide 4 - Tekstslide

De positie van een bepaald karakter in een string, word gegeven door de "index". Dus als je string S hebt, een array, dan is S[index] het karakter op plek "index", waarbij 0 de 1e plek is.
Let op: een spatie is ook een karakter

Slide 5 - Tekstslide

Je maakt nu de opdracht "Laatste karakter".
Dan bekijk je de volgende opdracht: Lengte van een string en karakters: Bepaal eerst "droog" wat er geprint zal worden.

Waarom zou bij 0 begonnen moeten worden? Onze eigen Edsger Dijkstra, van het kortste-pad-algoritme schreef dit hierover

Slide 6 - Tekstslide

Substring: In Python kun je een substring krijgen door:

S[begin:eind]: Let op: de laatste index, die wergegeven wordt is eind-1

We bekijken het voorbeeld: Substrings

Waarom wil je substrings kunnen vinden? Bv. om in een woord een onderdeel te zoeken. Zoekmachines helpen bv. door een woord al aan te vullen, of door onderdelen van een woord te vinden.

Slide 7 - Tekstslide

Wat is de uitvoer hier? Je hebt de code:
mijnZin = "Ging de bel maar"
print(mijnZin[8:10])
A
be
B
bel
C
e b

Slide 8 - Quizvraag

Let dus op dat de beginindex wel meetelt, maar de eindindex niet. Daar gaat het vaak fout mee....

We gaan de oefening: String inkorten doen

Slide 9 - Tekstslide

Strings aan elkaar plakken: Concateneren
Met een simpele +

Bv. result = 'een' + 'twee'
print (result)
geeft: eentwee

We gaan heads & tails maken en bespreken. Hier krijg je even 5 minuten voor

Slide 10 - Tekstslide

We gaan de ASCII-tabel bekijken: Ieder karakter wordt intern omgezet naar een getal.
Wat is de ASCII-code voor je naam? Kies kleine of grote letters.


Slide 11 - Tekstslide

Maak de oefening: De volgende letter
Geef als invoer een hoofdletter en geef als uitvoer de volgende letter. Is dit een 'Z', dan moet de uitvoer 'A' worden.
Hiervoor moet je if...else gebruiken, dat kan als volgt:

print(........)) if ........ else .......

Bekijk mogelijkheden op w3schools. Indentation....

Slide 12 - Tekstslide

Kies nu 1 van de oefeningen: Potjeslatijn of The Name Game 

Slide 13 - Tekstslide

NameGame
Hoe pak je nu zoiets aan?
1. Begin NIET gelijk met coderen
2. Lees de opdracht goed. Hier staat alle informatie die je nodig hebt
3. Bekijk de tekst, die geprint moet worden, goed
4. Dus 3 keer de ingevoerde naam in zijn geheel
5. 3 keer met de eerste letter veranderd in b, f en m
6. En wat tekst eromheen
7. Behalve de ingevoerde naam, staat de tekst vast

Slide 14 - Tekstslide

Naar de code toe
1. Lees naam
2. Wat er op regel 1 geprint moet worden, kun je in een variabele stoppen, die je met een paar concatenaties samenstelt: Gebruik de + en de substringcode, zoals myString[1:6]. Controleer de grenzen: De 1e grens wordt meegenomen, de laatste niet
3. Dit kun je voor iedere regel herhalen. Je kunt steeds dezelfde variabele gebruiken, dat hoeft niet. Doe wat je zelf het duidelijkste vindt
4. Als je alles in een print-opdracht stopt, krijg je een paar ongewenste spaties

Slide 15 - Tekstslide

Vergelijk de volgende code:

regel1 = naam + ", " + naam + ", bo_b" + naam[1:len(naam)]
print(regel1)

Of:

regel1 = naam + ", " + naam + ", bo_b"
print(regel1, naam[1:len(naam)] )

Slide 16 - Tekstslide