lesson 1: getting startedcourse.cs.ru.nl/pythonvo/docs/sheets/python sheets... · informatica...

24
Python Informatica Renske Smetsers

Upload: others

Post on 22-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

Python

Informatica

Renske Smetsers

Page 2: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

Planning komende tijd

Page 3: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 4: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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!”]

Page 5: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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:

Page 6: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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” ]

Page 7: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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]

Page 8: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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?

Page 9: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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] )

Page 10: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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]

Page 11: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 12: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 13: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 14: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 15: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 16: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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:

Page 17: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

BitParity unplugged

Page 18: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 19: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 20: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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]

Page 21: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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

Page 22: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

Voorbeeld met boter-kaas-eierenBord_leeg = [ ["-","-","-"],

["-","-","-"], ["-","-","-"] ]

bord_met_zetten = [ ["X","-",“O"],["-",“-","-"], [“X","-","-"] ]

Page 23: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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] )

Page 24: Lesson 1: Getting Startedcourse.cs.ru.nl/pythonVO/docs/sheets/Python sheets... · Informatica Renske Smetsers. Planning komende tijd. Iteraties: FOR loop en (geneste)lijsten ... Lesson

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