Programmeren en Wetenschappelijk Rekenen in Python
Wi1205AE I.A.M. Goddijn, Faculteit EWI
30 april 2014
Bijeenkomst 4
Onderwerpen
Functies en Modules Het maken van plots
Zelf functies maken
Vorm van een functie : def(. . . , . . . , . . . , . . . , . . .
| {z }
invoervariabelen ):
ingesprongen code
met meestal als laatste opdracht return uitvoervariabele of bijvoorbeeld return [ . . . , . . . , . . . , . . .
| {z }
uitvoervariabelen
] ←lijst
return ( . . . , . . . , . . . , . . .
| {z }
) ←‘tuple’
vb4-1a.py: illustratie van def, bepaling van een functiewaarde
f (x ) =
cos(x ) voor −π
2 ≤ x < 0 sin(x ) voor 0 ≤ x < π 2
1 voor π
2 ≤ x ≤ π
vb4-1b.py: def, bepaling van de grootste van drie getallen vb4-1c.py: def, bepaling van de grootste van drie getallen, nogmaals
vb4-2a.py: def, lokale en globale variabelen vb4-2b.py: def, lokale en globale variabelen vb4-2c.py: def, lokale en globale variabelen
vb4-3.py: def, meerdere functie files in ´e´en bestand, meerdere uitvoervariabelen
Het structureren van programma’s
Eerste mogelijkheid
Maak ´e´en folder voor je project.
Bewaar elke zelf gemaakte functie in een bestand met extensie py en geef dit dezelfde naam als de functie.
Importeer zo’n functie wanneer je die nodig hebt.
Is bijvoorbeeld een functie sumabs gemaakt, die is opgeslagen in het bestand sumabs.py importeer dit dan met de opdracht:
import sumabs
Tweede mogelijkheid, maak een eigen module
Maak een bestand aan tools.py met daarin opgeslagen de functie files sumabs en prodabs (zie vb4-4a.b).
Door in een derde bestand als eerste regel op te nemen (na commentaar):
from tools import sumabs of from tools import prodabs of
from tools import sumabs, prodabs of from tools import ∗ of
import tools of import tools as t
kan gebruik gemaakt worden van de functies sumabs en/of prodabs.
vb4-4a.py: het maken van een eigen module met functies vb4-4b.py: het maken van een eigen module met functies vb4-4c.py: het maken van een eigen module met data
Alles in ´ e´ en bestand?
De voordelen van ´e´en lang bestand:
Een programma is snel te maken, geen gedoe, en groeit op een natuurlijke manier.
De globale variabelen zijn beschikbaar voor elke functie.
De opdrachten Find/Search/Replace zijn gemakkelijk te gebruiken.
Een programma is eenvoudig om te ‘runnen’.
Doe dit voor:
Tijdelijke programma’s gemaakt om bijvoorbeeld een functie te testen.
Kleine programma’s/berekeningen.
Voor snelle klusjes
Voor programma’s die je niet van plan bent te delen met anderen of te hergebruiken.
Meerdere bestanden gebruiken?
De voordelen van het gebruiken van meerdere bestanden:
Grotere projecten zijn beter te organiseren.
Functies en datasets zijn eenvoudig te hergebruiken.
Programma’s die met anderen worden gedeeld zijn door hen makkelijker te begrijpen.
Nadeel:
De globale variabelen zijn niet altijd toegankelijk, er moet meer nagedacht worden over de structuur van een programma.
Het maken van plaatjes
Importeer eerst de module pyplot met de opdracht:
import matplotlib.pyplot as plt
Bepaal bijvoorbeeld de x -en y -co¨odinaten van een aantal punten op een kromme en sla ze op in de lijsten xlst en ylst.
Met de opdrachten:
plt.plot(xlst,ylst)
plt.show() # start interactieve plot window en het ‘runnen’ van het gemaakte bestand krijgen we nu de grafiek van de kromme te zien.
vb4-5a.py: plot, de grafiek van een eenvoudige kromme vb4-5b.py: plot, de grafiek van een functie en
aanpassingen daarvan
vb4-5c.py: plot, meerdere grafieken in ´e´en plaatje
Het maken van een aantal plaatjes in ´ e´ en window
Importeer eerst de module pyplot met de opdracht:
import matplotlib.pyplot as plt
Wanneer we 4 lijsten met x -co¨ordinaten hebben en vier lijsten met bijbehorende y -co¨ordinaten, zeg lstx k en lsty k voor k = 1, 2, 3 en 4 dan kunnen we met de opdrachten:
plt.subplot(221) plt.plot(lstx 1,lsty 1) plt.subplot(222) plt.plot(lstx 2,lsty 2) plt.subplot(223) plt.plot(lstx 3,lsty 3) plt.subplot(224) plt.plot(lstx 4,lsty 4) plt.show()
en het ‘runnen’ van het gemaakte bestand de grafieken van 4 krommen zien.
Heel veel informatie over het maken van plaatjes is te vinden op de website van Matplotlib. Kijk maar eens naar de
documentatie en de voorbeelden.
Echt een aanrader!
Zie: http://matplotlib.org/
Jacco Hoekstra:
Programming and Scientific Computing in Python (Version 3.10),
Artikelnummer: 0691770043.
David C. Lay:
Linear Algebra and Its Applications (fourth edition), Pearson (2013),
ISBN-13: 978-1-292-02055-6.
James Stewart:
Calculus, Early Transcedentals (seventh edition), Cengage Learning (2012),
ISBN-13: 978-0-538-49887-6.