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
next
Slide 1: Slide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4-6

This lesson contains 16 slides, with interactive quiz and text slides.

time-iconLesson duration is: 50 min

Items in this lesson

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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 - Quiz

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 - Slide

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 - Slide

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 - Slide

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 - Slide

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

Slide 13 - Slide

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 - Slide

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 - Slide

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 - Slide