lesson 1: getting startedcourse.cs.ru.nl/pythonvo/docs/sheets/python sheets... · informatica...
TRANSCRIPT
Python
Informatica
Renske Smetsers
Planning komende tijd
Iteraties: FOR loop en (geneste)lijsten Herhaling lijsten Herhaling for-loop
Na deze les kun je: For-loop te gebruiken om lijst te doorlopen Uitleggen dat een geneste lijst een lijst van lijsten is een geneste for loop maken en gebruiken
Lijsten Een "list" (Engelse woord voor "lijst") is een geordende
verzameling van data elementen
Voorbeelden:namenLijst = [“Ben”, “Piet”, “Charlie”, “Dan”, “Edward”] leeftijdenLijst = [5, 14, 8, 12, 9] cijferLijst = [8.0, 5.6, 6.0, 8.1 ]
In Python mag je van alles in een lijst stoppen, ook gemengd (bv. getallen en strings) Bv. rommeltje = [3, “banana”, ‘$’, “Hello World!”]
Index van een lijst Elk element in een lijst heeft een index (positie). Tellen begint altijd bij 0 Lijst eindigt bij index van lengte -1 hier: len(fruits)-1
Toekennenvan waardenaan een lijst:
De lijst:
Hoe een lijst in de computer
eruit ziet:
Lijsten kun je aanpassen Waarden toekennen:
fruitlist = ["appel", "banaan"] Iets toevoegen aan lijst → lijst wordt langer
fruitlist += ["kers"] #voegt "kers" toe achteraan lijst
Iets in een lijst aanpassen#vervangt element op positie 0 (dus appel) met aardbeifruitlist [0] = [“aardbei"]
Iets uit lijst verwijderen → lijst wordt korterfruitlist.remove( "banaan" ) #verwijdert eerste voorkomen
[ “appel”, “banaan”, “kers” ]
[ “aardbei”, “banaan”, “kers” ]
[ “appel”, “banaan”]
[ “aardbei”, “kers” ]
Standaard List functies
Bepaal de grootste getal uit de lijst:max( numlist ) # levert 243 op
Bepaal de som van getallen in de lijst:sum( numlist ) # levert 257 op
Bepaal de lengte van de lijst:len ( numlist ) # levert 4 op
Controleer of getal 999 in de lijst zit 999 in numlist # levert False op
Tel hoe vaak getal 1 voorkomtnumlist.count( 1 ) # levert 2 op
Lijst sorterennumlist.sort() # sorteert lijst: [1,1,12,243]
numlist = [12, 1, 243, 1]
Bepaalde en onbepaalde herhaling While-loop: Onbepaalde herhaling:
Zolang … herhaal Aantal keren herhalen afhankelijk van een
voorwaarde Zorg dat while-loop eindigt! Voorkom oneindige
loop!
For-loop: Bepaalde (of tellende) herhaling: Herhaal x keer Aantal herhalingen vooraf precies bekend Voorbeeld 6 keer
Wat is handig om een lijst te doorlopen?
Lijst doorlopen met een for loopOpdracht:Druk alle getallen in mijn lijst af: favNumbers = [ -4, 0, 11, 42 ]
Code:
favNumbers = [ -4, 0, 11, 42]
for getal in favNumbers:print( favNumbers[getal] )
Lijst doorlopen en aanpassenStel je wilt je cijferLijst opleuken:
… elk cijfer een puntje hoger.
StrategieVoor elk cijfer in cijferLijst:
pak het cijfer en tel daar 1 bij op
Print de lijst
cijferLijst = [8.0, 5.5, 2.3, 4.6, 6.1, 5.6]
Lijst doorlopen en aanpassen
Een oplossing:
cijferLijst = [8.0, 5.5, 2.3, 4.6, 6.1, 5.6]
for cijfer in cijferLijst:cijferLijst[cijfer] += 1 #cijfer ophogen met 1
print( cijferLijst )
StrategieVoor elk cijfer in cijferLijst:
pak het cijfer en tel daar 1 bij op
Print de lijst
Vermenigvuldigingstabel maken Schrijf een programma dat de tafel van
vermenigvuldiging van het 12 afdrukt, voor de getallen 1 tot en met 10:
1 * 12 = 122 * 12 = 24..10 * 12 = 120
Ga naar Hoofdstuk 7b - Iteraties: For-loopAfsluitende opgave 7.10
# Tafel van vermenigvuldiging (met een for loop)
tafel = 12 for teller in range (1, 11):
antwoord = teller*tafelprint( teller, "*", tafel, "=", antwoord )
Strategie:tafel wordt 12Voor elk teller tussen 1 en 11:
antwoord wordt teller*tafelprint: teller*tafel = antwoord
Heb je die af? Probeer dan:Afsluitende opgave 7.11
Vermenigvuldigingstabellen maken En als je nu ook nog alle tafels t/m 12 wilt afdrukken1*1 = 1 1*2=2 … 1*12 =122*1 = 2 2*2=4 … 2*12=24.. … … …10*1=10 10*2=20 … 10*12=120
Strategie voor 1 tafel:
tafel wordt 12Voor elk teller tussen 1 en 11:
antwoord wordt teller*tafelprint: teller*tafel = antwoord
Strategie voor 10 tafels:
Voor elk tafel tussen 1 en 13:Voor elk teller tussen 1 en 11:
antwoord wordt teller*tafelprint: teller*tafel = antwoord
Vermenigvuldigingstabellen maken
Voor 1 tafel:
En als je nu ook nog alle tafels t/m 12 wilt afdrukken1*1 = 1 1*2=2 … 1*12 =122*1 = 2 2*2=4 … 2*12=24.. … … …10*1=10 10*2=20 … 10*12=120
Maar nu uitbreiden dat ook de tafel doortelt van 1 t/m 12 (of 1 tot 13) Ga naar Hoofdstuk 7b - Iteraties: For-loop. Afsluitende opgave 7.11
# Tafel van vermenigvuldiging (met een for loop)
tafel = 12 for teller in range (1, 11):
antwoord = teller*tafelprint( teller, "*", tafel, "=", antwoord )
# Tafels van 12 t/m 10for tafel in range (1, 13):
for teller in range (1, 11): antwoord = teller*tafelprint(teller, "*", tafel, "=", antwoord)
print()
Strategie voor 10 tafels:Voor elk tafel tussen 1 en 13:
Voor elk teller tussen 1 en 11:antwoord wordt teller*tafelprint: teller*tafel = antwoord
Geneste for loop – loop in een loop Ook als je bijvoorbeeld coördinaten wilt afdrukken
Resultaat:
for x in range(5): for y in range(5):
print(x,y)
4 04 14 24 34 4
1 01 11 21 31 4
…0 00 10 20 30 4
Geneste lijsten (lijsten in lijsten)
brood = [“volkoren”, “bruin”, “wit”]
voorraadAH = [ brood, fruit ]
fruit = [“mango”, “peer”]
Je hebt een lijst:
En nog een lijst:
Die kun je samen nog een lijst van maken:
voorraadAH = [[“volkoren”, “bruin”, “wit”],[“mango”, “peer”] ]
Oftewel:
BitParity unplugged
Afbeeldingen digitaal opgeslagen
rij1 = [1,0,1,0,1]
afbeelding = [ [1,0,1,0,1],[1,1,1,1,1],[1,1,1,1,1],[0,1,1,1,0],[1,0,0,0,1] ]
Afbeeldingen digitaal opgeslagen
afbeelding = [ [1,0,1,0,1],[1,1,1,1,1],[1,1,1,1,1],[0,1,1,1,0],[0,0,0,0,0] ]
Algoritmevoor elke rij:
voor elke bitje:tel op bij totaal
controleer of totaal even is
Hoe doorloop je alle bits om de fout te vinden?
for loop
for loop
Afbeeldingen digitaal opgeslagen
afbeelding = [ [1,0,1,0,1],[1,1,1,1,1],[1,1,1,1,1],[0,1,1,1,0],[0,0,0,0,0] ]
Algoritmevoor elke rij:
voor elke bitje:tel op bij totaal
controleer of totaal even is
Hoe doorloop je alle bits om de fout te vinden?
for rij in range(5):for bit in range(5):totaal += afbeelding[rij][bit]
Afbeeldingen digitaal opgeslagen
afbeelding = [ [1,0,1,0,1],[1,1,1,1,1],[1,1,1,1,1],[0,1,1,1,0],[0,0,0,0,0] ]
Hoe pas je de foutieve bit aan?
afbeelding[4][2] = 1
Rij 4Bit 2
afbeelding = [ [1,0,1,0,1],[1,1,1,1,1],[1,1,1,1,1],[0,1,1,1,0],[0,0,1,0,0] ]
Voorbeeld met boter-kaas-eierenBord_leeg = [ ["-","-","-"],
["-","-","-"], ["-","-","-"] ]
bord_met_zetten = [ ["X","-",“O"],["-",“-","-"], [“X","-","-"] ]
Lijsten van lijsten - afdrukken Hoe druk je nu zo’n geneste lijst af?
Voor elk element in elk rij druk je het af Dus.. Doorloop elke rij en druk elk kolom-element af
for rij in range(5):for bit in range(5):
print( bericht[rij][bit] )
Succes Succes met de voorbereiding van de toets Direct na de toets mag je op de computer verder met
de opdrachten Hoe eerder je de opdrachten af hebt, hoe eerder je aan
je PO kunt werken: spelletje Zeeslag