Page 62 - Demo
P. 62

TI Python BootCamp Python VERDIEPING 2 ITERATIES & FUNCTIES
3. Input op maat
Met de statements try en except kunnen we de input specifiëren en vermijden dat we een error-boodschap krijgen bij hier invoeren van een verkeerd type.
In het volgende programma willen we de input beperken tot een geheel getal n tussen 0 en 5, 0 ≤ 𝑛 ≤ 5, en blijven vragen naar input tot de ingegeven waarde correct is.
while True:
¨¨getal=input("Getal n met 0 ≤ n ≤ 5: ")
¨¨try:
¨¨¨¨n=int(getal)
¨¨except ValueError:
¨¨¨¨print("VERKEERDE INPUT - Probeer opnieuw!") ¨¨¨¨continue
¨¨if n < 0 or n > 5:
¨¨¨¨print("BUITEN DE GRENZEN - Probeer opnieuw!") ¨¨¨¨continue
¨¨break
print("De waarde van het getal n =",n)
Het error-type, ValueError, kan ook hier weggelaten worden.
4. *args
Veronderstel dat we de BTW willen berekenen op som van de netto-prijs van een aantal producten: def btw1(a,b):
¨¨return sum((a,b))*0.21
Wat als we de btw op meer dan twee producten willen berekenen?
Een manier om dit te doen is het aantal argumenten te verhogen en een standaard waarde toe te kennen aan de argumenten.
def btw2(a=0,b=0,c=0,d=0,e=0): ¨¨return sum((a,b,c,d,e))*0.21
Het starten van een parameter van een functie met een asteriks, *, maakt het mogelijk voor de functie om een willekeurig aantal argumenten te gebruiken. De functie beschouwt de argumenten als een tuple.
def btw3(*args): ¨¨return sum(args)*0.21
5. Lambda
Lambda-uitdrukkingen zijn krachtige Python-tools die het toe laten om ad hoc anonieme functies te definiëren, zonder gebruik te maken van def. De structuur van lambda’s is één enkele uitdrukking en niet een blok statements.
De onderstaande functie square() ziet er in lambda-vorm als volgt uit:
     𝑓(𝑥) = 𝑥!
def square(n): ¨¨kwad=n**2 ¨¨return kwad
𝑥 ⟼ 𝑥!
lambda num : num**2
 © 2020 T3 Nederland – T3 Vlaanderen
2 www.t3nederland.nl – www.t3vlaanderen.be



































































   60   61   62   63   64