• No results found

Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 mei 2014

N/A
N/A
Protected

Academic year: 2021

Share "Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 mei 2014"

Copied!
16
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Programmeren en Wetenschappelijk Rekenen in Python

Wi1205AE I.A.M. Goddijn, Faculteit EWI

22 mei 2014

(2)

Bijeenkomst 10

Onderwerpen

Tips met betrekking tot ”debuggen”

Type foutmeldingen

Object geori¨enteerd programmeren (On-)veranderlijk? Pas op!

(3)

Tips met betrekking tot “debuggen”

Het volgende programma bevat een fout:

importnumpy as np

importmatplotlib.pyplot as plt x =np.arange(−5., 5.01, 0.01) y 1 =np.sin(x )

y 2 = 0.5 plt.plot(x , y 1) plt.plot(x , y 2) plt.show( )

(4)
(5)

Het regelnummer (line 9) en het type fout (ValueError) zijn van belang.

(6)

En nu is de fout verbeterd:

importnumpy as np

importmatplotlib.pyplot as plt x =np.arange(−5., 5.01, 0.01) y 1 =np.sin(x )

y 2 = 0.5 + 0.0 ∗ x plt.plot(x , y 1) plt.plot(x , y 2) plt.show( )

Er zijn ook andere mogelijkheden om de fout te verbeteren.

(7)

Tips

Kleine fouten:

vergeten accolades, haakjes (let op de syntax kleur van de editor),

kijk of niet vergeten is een dubbel ‘is’-teken te gebruiken.

Accolades en haakjes: controleer de regel voor de foutmelding. Is die goed be¨eindigd?

Gebruik print opdrachten om in te zoomen op typefout.

Controleer de waarden van variabelen in de ‘shell’.

(8)

Spyder optie: interactie met ‘Shell’ na het ‘runnen’ van een programma

(9)

Type foutmeldingen

“Syntax fout”

Er zit een fout of fouten in de programmeercode.

“Runtime fout”

De “Runtime” is de tijd tussen het starten van een programma en het be¨eindigen van het programma . De melding “Runtime Error” zegt dus dat er iets fout is gelopen tijdens het werken van het programma.

(10)

“Logische fout”

De gedachtengang die ten grondslag ligt aan het programma is niet goed of niet goed geprogrammeerd waardoor er ongewenste resultaten worden verkregen.

Dergelijke fouten zijn soms moeilijk te vinden.

(11)

Object geori¨ enteerd programmeren (OOP)

Voorbeeld

(Pygame ge¨ımporteerd als pg)

Klasse (Class) Rect

Object shiprect = pg.Rect(x , y , w , h) Leden (Members) = data shiprect.centerx = 300

shiprect.centery = 300 Methode (method) = functies shiprect.move(dx , dy )

Voorbeeld (Python)

Klasse (Class) str

Object txt = ”TEST”

Methoden (methods) = functie txt.lower( )

(12)

Structuur van een klasse def . . . .

| {z }

naam klasse

:

declaraties

def init (self,. . . , . . . , . . . , . . . , . . . , . . .

| {z }

invoervariabelen

)

self. . . .

| {z }

naam lid

= . . . .

| {z }

variabele of waarde

self. . . .

| {z }

naam lid

= . . . .

| {z }

variabele of waarde

def . . . .

| {z }

naam methode

(self, . . . , . . . , . . .

| {z }

invoervariabelen

) of

def . . . (self)

(13)

Voorbeelden

vb-1, een klasse met betrekking tot werknemers vb-2, een regen van ballen

Opmerkingen

init heet de constructor en del heet de destructor van de klasse

De naam van een klasse begint vaak met een hoofdletter (Rect of Button bijvoorbeeld)

Een object heet een instantie (“instance”) van een klasse

(14)

Object geori¨enteerd programmeren is geen tentamenstof!!!

Wel moet een programma dat zo geschreven is gelezen en be- grepen kunnen worden.

(15)

(On-)veranderlijk

‘Integers’, ‘floats’,‘strings’ en ‘tuples’ zijn onveranderlijk (‘immutable’)

‘Lijsten’ en ‘objecten’ zijn veranderlijk (’mutable’) (het adres in het geheugen blijft behouden wanneer een wijziging wordt aangebracht)

vb-xhtml Pas op!

Tip: maak testprogramma’s op de volgende website:

http://www.pythontutor.com

(16)

(On-)veranderlijk

Opgave over het breken van een code

Ga door met de opdracht over de bisecrtiemethode/Project Euler

Bespreken diagnostische toets

Referenties

GERELATEERDE DOCUMENTEN

Zijn snelheid wordt steeds groter maar deze neemt steeds minder snel toe door de luchtwrijving.. We stellen een

vb-8.xhtml: arrays, elementen zoeken vb-9.xhtml: arrays, samenvoegen arrays vb-10.xhtml: arrays, inlezen arrays.. Tips bij

iedere tak heeft twee een klein beetje kortere zijtakken en deze takken hebben ook weer twee een klein beetje kotere zijtakken en..?. en dit gaat door totdat de takken te

Tkinter https://docs.python.org/2/library/tkinter.html vb-2.py: een dialoogscherm om bestanden mee te openen Spiro 1m extra.py: dialoogscherm met een mededeling, knoppen etc.

een lijst begint en eindigt met een rechte haak, de elementen van de lijst worden gescheiden door een

Is bijvoorbeeld een functie sumabs gemaakt, die is opgeslagen in het bestand sumabs.py importeer dit dan met de opdracht:..

Om het resultaat van een tekening of een plaatje vanuit het geheugen naar het scherm te kopi¨ eren wordt de functie flip bij de module display gebruikt. # Plaatje is klaar, laat zien

Gegeven zijn n massa’s ([kg ]) die bewegen in een plat vlak met een daarop werkende bekende kracht (zwaartekracht) ([N]) De massa’s zijn opgeslagen in een array m ([kg ]), de