Geavanceerd Programmeren
in Python
Hoofdstuk 1: Comprenhensions
Les 1: De basis
Demo
Gewone lussen
In een gewone lus lopen we over de lijst.
words = ['I', 'love', 'programming']
output = []
for word in words:
uppercase_word = word.capitalize()
output.append(uppercase_word)
Gewone lussen
In een gewone lus lopen we over de lijst.
Dan doen we in de lus iets met ieder element.
words = ['I', 'love', 'programming']
output = []
for word in words:
uppercase_word = word.capitalize()
output.append(uppercase_word)
Gewone lussen
In een gewone lus lopen we over de lijst.
Dan doen we in de lus iets met ieder element.
We voegen het daarna aan een nieuwe lege lijst toe
words = ['I', 'love', 'programming']
output = []
for word in words:
uppercase_word = word.capitalize()
output.append(uppercase_word)
Gewone lussen
words = ['I', 'love', 'programming']
output = []
for word in words:
uppercase_word = word.capitalize()
output.append(uppercase_word)
De code 'klinkt' een beetje zo:
-
"for iedere 'w' in de lijst words, maak het met een hoofdletter, en stop het dan in de nieuwe lijst output"
Gewone lussen
words = ['I', 'love', 'programming']
output = []
for word in words:
uppercase_word = word.capitalize()
output.append(uppercase_word)
De code 'klinkt' een beetje zo:
-
"for iedere 'w' in de lijst words, maak het met een hoofdletter, en stop het dan in de nieuwe lijst output
In de nieuwe vorm, wordt het meer dit:
-
"output is een nieuwe lijst, gemaakt door hoofdletters te maken van ieder woord in words"
Gewone lussen
words = ['I', 'love', 'programming']
output = []
for word in words:
uppercase_word = word.capitalize()
output.append(uppercase_word)
words = ['I', 'love', 'programming']
output = [word.capitalize() for word in words]
De code 'klinkt' een beetje zo:
-
"for iedere 'w' in de lijst words, maak het met een hoofdletter, en stop het dan in de nieuwe lijst output"
-
In de nieuwe vorm, wordt het meer dit:
-
"output is een nieuwe lijst, gemaakt door hoofdletters te maken van ieder woord in words"
Demo
zelf aan de slag
zelf aan de slag
werk tot de gele postit!
vraag? roze postit!
Hoofdstuk 1: Comprenhensions
Les 2: Filters
Demo
Gewone lussen
- In een gewone lus lopen we over de lijst.
temperatures = [21, 10, 19, 20, 0, 31, 12]
above_20 = []
for t in temperatures:
if t > 20:
above_20.append(t)
Gewone lussen
- In een gewone lus lopen we over de lijst.
- Dan kijken er of het element aan de eis voldoet
temperatures = [21, 10, 19, 20, 0, 31, 12]
above_20 = []
for t in temperatures:
if t > 20:
above_20.append(t)
Gewone lussen
temperatures = [21, 10, 19, 20, 0, 31, 12]
above_20 = []
for t in temperatures:
if t > 20:
above_20.append(t)
De code 'klinkt' een beetje zo:
-
"voor iedere 't' in de lijst temperatures, kijk of t meer is dan 20, en zo ja stop het dan in de nieuwe lijst
Gewone lussen
temperatures = [21, 10, 19, 20, 0, 31, 12]
above_20 = []
for t in temperatures:
if t > 20:
above_20.append(t)
In de nieuwe vorm, wordt het meer dit:
-
"boven_20 is een nieuwe lijst, gemaakt met t's uit temperatures, als die boven de 20 zijn
De code 'klinkt' een beetje zo:
-
"voor iedere 't' in de lijst temperatures, kijk of t meer is dan 20, en zo ja stop het dan in de nieuwe lijst
boven_20 = [t for t in temperatures if t > 20]
Demo
zelf aan de slag
werk tot de gele postit!
zelf aan de slag
werk tot de gele postit!
vraag? roze postit!
Hoofdstuk 2: Recursie
Les 1: De basis
Demo
Met deze code kun je
alleen bestanden
printen die op .py
eindigen.
bestanden = ['verslag.docx', 'programma.py', 'code.py']
python_bestanden = []
for bestand in bestanden:
if extentie(bestand) == 'py':
python_bestanden.append(bestand)
Zoeken
Met deze code kun je
alleen bestanden
printen die op .py
eindigen.
Maar... Wat als de lijst ook mapjes (lijsten) met bestanden kan hebben?
bestanden = ['verslag.docx', 'programma.py', 'code.py']
python_bestanden = []
for bestand in bestanden:
if extentie(bestand) == 'py':
python_bestanden.append(bestand)
Zoeken
Demo
Er kunnen dus 2 dingen aan de hand zijn:
-
We kijken naar een tekst (bestand)
- We kijken naar een lijst
bestanden = [['verslag_Nl.docx', 'verslag_Du.docx'], 'verhaal.txt',
'coderklas.py', ['programma.py', 'code.py']]
Recursie!
Er kunnen dus 2 dingen aan de hand zijn:
-
We kijken naar een tekst (bestand)
- Wat doen we dan?
- We kijken naar een lijst
bestanden = [['verslag_Nl.docx', 'verslag_Du.docx'], 'verhaal.txt',
'coderklas.py', ['programma.py', 'code.py']]
Recursie!
Er kunnen dus 2 dingen aan de hand zijn:
-
We kijken naar een tekst (bestand)
- Wat doen we dan?
-
We kijken naar een lijst
- Wat doen we dan?
bestanden = [['verslag_Nl.docx', 'verslag_Du.docx'], 'verhaal.txt',
'coderklas.py', ['programma.py', 'code.py']]
Recursie!
Demo
zelf aan de slag
werk tot de gele postit!
vraag? roze postit!
Hoofdstuk 3:
Higher-order functions
Les 1: Lambdas
def plus_een(n):
return n + 1
print(plus_een(5))
Jullie kunnen al een functie maken.
Maar wist je dat je die functie ook in 1 regel kan maken?
functies in 1 regel!
def plus_een(n):
return n + 1
print(plus_een(5))
Jullie kunnen al een functie maken.
Maar wist je dat je die functie ook in 1 regel kan maken?
functies in 1 regel!
ook_plus_een = lambda n: n + 1
print(ook_plus_een(6))
demo
zelf aan de slag
werk tot de gele postit!
vraag? roze postit!
Hoofdstuk 3:
Higher-order functions
Les 2: Functies als argumenten
def circumference(r):
return 2 * math.pi * r
print(circumference(1))
c = circumference
print(c)
Jullie kunnen al een functie maken.
Maar wist je dat je een functie ook gewoon op kan slaan?
functies opslaan?
demo
def apply(f, a, b):
return(f(a,b))
def add(x, y):
return x + y
result = apply(add, 5, 6)
print(result)
Jullie kunnen al een functie maken.
Maar wist je dat je een functie ook gewoon op kan slaan?
En je kunt functies dan ook als invoer gebruiken voor andere functies!
functies opslaan?
demo
zelf aan de slag
werk tot de gele postit!
vraag? roze postit!
Metis-Codernight
By Felienne
Metis-Codernight
- 511