A Python Crash Course

Maat: px
Weergave met pagina beginnen:

Download "A Python Crash Course"

Transcriptie

1 A Python Crash Course Dr. A.A.N. Ridder 12 september 2016 Samenvatting In dit document staan puntsgewijs een aantal kenmerken van de syntaxis van Python 2 (en veranderingen in Python 3) voor de cursus Numerical Methods in periode 2.1 van het EOR bachelor programma aan de VU. Inhoudsopgave 1 Python Opstarten Een Python Programma Uitvoeren Een Voorbeeldprogramma Python 2 versus Python Data Types Mutable versus Immutable Variabelen Types Integers Floats Strings Slicing Lists List Functies Meest Voorkomende Operaties Tussen Numerieke Types (int,long,float,complex) Tussen Serie Types (string,list,tuple) Vergelijkingen en Boolean Operaties Voorwaardelijke en Iteratie Blokken if... elif... else for while try... except Functies Globale Variabelen Recursie en Iteratie

2 8 Classes 19 9 Numerieke Methoden in Python 19 1 Python Opstarten Hier staat het voor de Python(x,y) distributie voor Windows, maar andere distributies en andere operating systemen (OS X, Linux) zijn bijna gelijk. Er zijn verschillende mogelijkheden. Python interpreter voor eenvoudige commando s en kleine programma s. Je krijgt een Windows console waarin je achter de prompt >>> één regelige commando s intikt. Vergelijkbaar met het Command Window van Matlab. IPython (interactieve Python): meer geavanceerd dan de interpreter. Bv, zogeheten magic functions kun je uitvoeren. Verder ook gebruik voor voor eenvoudige commando s en kleine programma s. De prompts worden genummerd, beginnend met In [1]. IPython QtConsole: zelfde als IPython. 2

3 IPython Notebook (Jupyter): je werkt in een web browser omgeving. Je kunt hierin documenten opstellen die tekst, Python-code en Python output integreert. Vergelijkbaar met de notebook van Mathematica. Spyder (Scientific Python Development EnviRonment): volledig geïntegreerde omgeving met een editor, object en variabele inspectie, files overzicht, console (Python, Ipython), foutaangeving, debugging,... Vergelijkbaar met Matlab IDE. 3

4 Idle (Python s Integrated DeveLopment Environment): een vereenvoudigde omgeving met minder functionaliteiten als Spyder. 1.1 Een Python Programma Uitvoeren Je schrijft Pythoncode bijna altijd in programma s die je wilt bewaren. Een Python programma wordt geschreven in een tekstbestand met behulp van een standaard teksteditor (Notepad, Wordpad), of met een programmeurs-editor (Notepad++, vim/gvim, jedit, Komodo Edit,...), of in de editor van Ipython Notebook, of in de editor van Spyder. Dat bestand bewaar je met extensie.py. Bijvoorbeeld het onderstaande is het bestand hello.py. # First Python program : hello. py from future import print_function print ( Hello, world. ) 4

5 Daarna wil je het programma uitvoeren. Pythoncode wordt niet gecompileerd, maar direct geïnterpreteerd en uitgevoerd. Dat kan ook weer op verschillende manieren. Je moet zorgen dat het current working directory dezelfde is als waarin je het bestand bewaard hebt. Als voorbeeld doen we het hier voor hello.py dat in h:\documents\nm\src staat. In een Windows shell: gebruik het cd commando om naar de juiste directory te gaan. Tik achter de prompt python hello.py. Voorbeeld met Windows PowerShell: PS H:\ > cd h:\ Documents \nm\src PS H:\ Documents \nm\src > python hello.py Hello, world. Python interpreter: >>> import os >>> os. getcwd () # controleer de huidige werkdirectory C :\\ Python27 >>> os. chdir ( h :\\ Documents \\ nm \\ src ) >>> os. getcwd () H :\\ Documents \\ nm \\ src >>> >>> execfile ( hello.py ) # voert hello.py uit Hello, world. IPython: In [ 1]: % pwd # controleer de huidige werkdirectory Out [1]: u C :\\ Users \\ arr600 In [2]: %cd h :\\ Documents \\ nm \\ src H:\ documents \nm\src In [3]: run hello.py Hello, world. IPython QtConsole: idem als IPython. IPython Notebook (Jupyter): begin een New Notebook. Ga daarin hetzelfde te werk als bij IPython. NB: Om een commando uit te laten voeren moet je de toetsen <shift> en <enter> tegelijk doen. Spyder: gebruik de knoppen om de working directory te veranderen en ga naar het menu item run of druk op de groen driehoekspijl. Idle: idem als de interpreter. Of, nadat je de working directory goed hebt, gebruik menu item open om het Python bestand te openen en gebruik dan menu item run module. 5

6 2 Een Voorbeeldprogramma Eerst een voorbeelprogramma om enige kenmerken van Python toe te lichten. Het programma berekent Fibonacci getallen. Het bestand waarin de code staat heet fib.py. De regelnummers zijn er voor het gemak bijgezet, maar die staan natuurlijk niet in het programma. 1 # Second Python program : fib. py 2 from future import print_function, division 3 from timeit import default_timer as timer 4 5 # berekent n- de Fibonacci getal 6 def fib (n): 7 a,b = 0,1 8 for i in xrange (n): 9 a,b = b,a+b 10 return a # print de eerst n Fibonacci getallen 13 # efficiente methode 14 def fibprinteff (n): 15 a,b = 0,1 16 print ( F( 0 ) =, a) 17 for i in xrange (1,n): 18 a,b = b,a+b 19 print ("F(", i, ") = ", a) print de eerst n Fibonacci getallen 23 minder efficiente methode def fibprintineff ( n): 26 for i in xrange (n): 27 print ( F(, i, ) =, fib (i)) def main (): # hoofd functie 30 k = int ( input ( Geef aan of je een enkele Fibonacci getal \ 31 wil berekenen (1) of meer getallen ( 2): )) 32 if k == 1: 33 n = int ( input (" Geef n (n-de Fibonacci getal ): ")) 34 print ( F(,n, ) =, fib (n)) 35 else : 36 n = int ( input (" Geef aantal n: ")) 37 tijdstart = timer () 38 fibprinteff ( n) 39 tijdeind = timer () 40 print (" Rekentijd efficiente methode = ",\ 41 tijdeind - tijdstart ) 42 print (" ") 43 6

7 44 tijdstart = timer () 45 fibprintineff ( n) 46 tijdeind = timer () 47 print (" Rekentijd inefficiente methode = ",\ 48 tijdeind - tijdstart ) if name == " main ": 51 main () # aanroep hoofdfunctie Regels 1,5,12,13,29,50: Alle tekst na het hekje-teken (#) wordt gezien als commentaar. NB: geldt per regel. Regels 21-24: meerregelige commentaar zet je tussen drievoudige aanhalingstekens (quotes). Regels 2-3: zie sectie 2.1. Regels 6-10: een blok van je eigen gedefinieerde functie, genaamd fib, met input argument een integer n. De functie voert het n-de Fibonacci uit (return). Functies worden gedefinieerd door def, zie regels 5,14,25,29. Geen begin en end of beginaccolade ({) en eindaccolade (}) om begin en eind van de code van de functie aan te geven, maar inspringen met een gelijk aantal spaties (standaard is 4 spaties). Regels 8-9: een blok van een for opdracht. Dit is een blok binnen het functie-blok, en dan moet je verder inspringen. Zie ook regels (for blok), regels (if else blok). Een dubbele punt (:) aan het einde van de regel die een blok aankondigt, zie bv regels 6,8,32,35. Python herkent einde van een blok opdrachten doordat de code verder gaat met minder indentatie. Zie bv regels 10,14,25,29,35,50 Regels hoeven niet te worden afgeslotem met een puntkomma (;) Het type van een variabele hoeft niet gedefinieerd te worden! Python herkent die zelf. Regel 7: verkorte korte notatie voor de toewijzingen a=0 en b=1. Zie ook regel 9. Regels 16,19: strings komen met enkele quotes ( string ) of met dubbele quotes ( string ). Geen verschil. Regel 30: het slash-teken aan het eind van een regel betekent dat het commando doorgaat op de volgende regel. Zie ook regels 40,47. Regels 37,39,44,46: timer is een Python functie om de rekentijd van de uitvoering uit te rekenen. Je moet de module aangeven waarin die functie zit (zie regel 3). Meestal gebruik je dit niet. 7

8 2.1 Python 2 versus Python 3 Een aantal belangrijke verschillen tussen Python 2 en Python 3 zijn print. In Python 2 is print een trefwoord (keyword), dus moet je schrijven print String die je wilt printen In Python 3 is print een built-in functie, en dan wordt het print ( String die je wilt printen ) Om in Python 2 dezelfde functionaliteit te krijgen zet je bovenaan het programma from future import print_function division. In Python 2 is deling van 2 integers weer een integer (eventueel door afronding naar beneden). Python 3 converteert automatisch naar floating point getal (double) indien deling niet als integer uitkomt: 9/5 wordt 1 in Python 2 en wordt 1.8 in Python 3. Ook hier heeft de Python 3 functionaliteit de voorkeur, door from future import division range en xrange. xrange wordt in Python 2 gebruikt om een rij getallen te genereren, zie regels 8,17,26: xrange(5) genereert 0, 1,..., 4 en xrange(1,5) genereert 1,..., 4. In Python 3 is deze built-in functie vervangen door range. Heb je Python 3 code die je door Python 2 laat interpreteren, dan moet je overal range vervangen door xrange. Maar eenvoudiger is aan je (Python 3) code toe te voegen try : xrange except : xrange = range Python 3 kent geen type long meer. 3 Data Types Tabel 1: Belangrijste types. type voorbeelden eigenschap integer ( int ) 4352, 345 immutable real ( float ) , 5.0 immutable complex j immutable boolean ( bool ) False, True immutable string ( str ) hallo, who immutable NoneType None immutable list [2, 6, 9.8, hallo ], mutable tuple (2, 6, 9.8, hallo ), immutable dictionary ( dict ) { Jan :25, Marie :22} mutable set set([1,4, fas,3.7,1,4, aas ]) mutable 8

9 Python 2 heeft daarnaast nog het type long integer ( long ), aangegeven door L achter het getal te zetten: 355L, -59L, etc. 3.1 Mutable versus Immutable Een immutable variabele kan niet deels gewijgigd worden, natuurlijk wel de (hele) variabele. Voorbeeld: >>> x = morgen # string >>> print (x [0]) m >>> x [0] = z Traceback ( most recent call l as t): File "<stdin >", line 1, in <module > TypeError : str object does not support item as signment >>> >>> x = goede + x # x wordt in zijn geheel gewijzigd >>> print (x) goedemorgen Bij een mutable variabele kan dat wel: >>> x = [1,2,3,4] # list >>> x [2] = -1 >>> print (x) [1, 2, -1, 4] Let op dat bij mutable variabele een toewijzing geen kopie creëert, en dus hebben veranderingen bij beide effect (dit heet variables are passed by reference). Voorbeeld (merk ook het verschil tussen x += en x = x +): >>> x = [1,2,3,4] >>> y = x >>> x [2] = -1 >>> print (y) [1, 2, -1, 4] >>> x += [5,6] >>> print (y) [1, 2, -1, 4, 5, 6] >>> x = x + [7,8] >>> print (y) [1, 2, -1, 4, 5, 6] >>> print (x) [1, 2, -1, 4, 5, 6, 7, 8] Om het memory management beter te zien, kun je de functie id() gebruiken die het adres in het geheugen retourneert: >>> x = 2 >>> y = x >>> id(x),id(y) ( , ) 9

10 >>> x = 3 >>> id(x),id(y) ( , ) >>> x = [2] >>> y = x >>> id(x),id(y) ( , ) >>> x [0] = 3 # adres van x blijft hetzelfde >>> id(x),id(y) ( , ) >>> x = [3] # x krijgt een ander adres >>> id(x),id(y) ( , ) 4 Variabelen 4.1 Types Tabel 1 geeft een overzicht van de belangrijkste types in Python. Volledige informatie krijg je bv in de interpreter door >>> help ( types ) Zoals al eerder gezegd, variabele type hoef je niet te declareren (zoals wel in Java, C, C++, Ox). Dat Python het type herkent kun je nagaan met de functie type(): >>> x =1; print ( type (x)) <type int > >>> x =1.; print ( type (x)) <type float > >>> x =1+1 j; print ( type (x)) <type complex > >>> x =[2,5.0, morgen ]; print ( type (x)) <type list > >>> x =2**10; print ( type (x)) <type int > >>> x =2**1000; print ( type (x)) < type long > # in Python 2 < type int > # in Python 3 Wil je een ander type dan wat Python zou doen, dan kun je dat aangeven: >>> x = float (6); print (x, type (x)) 6.0 <type float > >>> x = int (7.3); print (x, type (x)) 7 <type int > >>> x = str (887); print (x, type (x)) 887 <type str > >>> x [2] # check 7 10

11 4.2 Integers Een integer van type int neemt in Python 2 op de VU (Windows PC; 32 bit architectuur) een waarde aan van 2 31,..., , op een Mac (64 bit architectuur) van 2 63,..., Long integers (long) hebben feitelijk geen begrenzing. In Python 3 zijn deze twee types geïntegreerd tot één type int. Een integer van dit type kan dus zo groot worden als wilt (de begrenzing is het geheugen van je computer). 4.3 Floats Float variabelen volgen de principes van floating point numbers die uitgelegd worden in het boek, sectie 1.3. Dit onderwerp komt ook aan bod bij de colleges. 4.4 Strings Strings zijn niet belangrijk voor een vak over numerieke methoden, maar worden wel vaak gebruikt bij andere software toepassingen. Je kunt vele functies uitvoeren met strings, zie de help functie, bv help( str ). Handig zijn, de lengte van een string via len(), en de zogeheten slicing Slicing Een string is eigenlijk een serie (of volgorde) van enkelvoudige symbolen. Je kunt elk symbool afzonderlijk benaderen (indicering []), maar ook grotere delen van de string (dat heet slicing). Door slicing kun je een deel van een string selecteren of kopiëren. Voorbeelden >>> s = dit is een string >>> n = len (s); n 17 >>> x = s [ 2: 5]; x # symbolen op posities 2,3,4 t i >>> x = s [ 12:]; x # alle symbolen vanaf positie 12 tring >>> x = s [2:15:3]; x # symbolen op posities 2,5,8,11,14 tsesi >>> s[ -1] # symbool op laatste positie g Een voorbeeldprogramma: from future import print_function def main (): zin = " De eerste zin van een verhaal moet \ de aandacht van de lezer trekken " zin_zonder_klinkers = "" for letter in zin : if letter not in " AEOIUaeoiu ": zin_zonder_klinkers += letter print ( zin_zonder_klinkers ) 11

12 if name == " main ": main () 4.5 Lists Een list is een (geordende) lijst van objecten (getallen, teksten,...). Lists worden veel gebruikt in Python software. Lists worden geconstrueerd door de objecten tussen vierkanten haken,[], te zetten gescheiden door komma s. Wat dat betreft lijken ze op vectoren. En als de objecten weer lists zijn, lijken ze op matrices (zie ook voorbeelden hieronder). Voor numerieke methoden zullen we echter gebruik maken van de data types array en matrix van de module NumPy omdat we daarmee de gebruikelijke algebraïsche operaties kunnen uitvoeren (dat gaat niet met lists). Slicing van een list gaat net zo als bij strings. >>> x = [1,200, -35,40,80, -100] >>> len (x) 6 >>> x [1:5] [200, -35, 40, 80] >>> x [ -4: -1] [ -35, 40, 80] >>> x[0], x[ -1] (1, -100) >>> x += [ 999, 1000] >>> x [1, 200, -35, 40, 80, -100, 999, 1000] >>> >>> A = [[1,2,3],[4,5,6]] >>> A [0] [1, 2, 3] >>> A [0][0] 1 >>> A [0][1] 2 >>> A [1][1] 5 >>> A += [7,8] >>> A [[1, 2, 3], [4, 5, 6], 7, 8] De slicing y = x[:] creëert een kopie, en zo kun je x veranderen zonder dat y meeverandert. >>> x = [1,2,3,4]; y = x [:] >>> x [1] = 0; print (x,y) [1, 0, 3, 4] [1, 2, 3, 4] De elementen in een list hoeven niet alle hetzelfde type te hebben. >>> x = [2,3,4.4,5+6j, hallo,[9,9,9]] >>> for e in x:... print ( type (e)) 12

13 ... <type int > <type int > <type float > <type complex > <type str > <type list > List Functies Tabel 2: Enige handige functies voor lists. Veronderstel dat x = [10,20,30,40] een list is. functie beschrijving voorbeeld append(<object>) voegt object toe aan het eind x.append( cent ) count(<object>) telt aantal keer object x.count( cent ) del(<slice>) verwijdert de objecten op de slice plaatsen del(x[2:4]) extend(<list>) voegt list toe aan het eind x.extend([50,60,70]) index(<object>) geeft index van eerst optreden van object x.index(20) insert(<index>,<object>) voegt object toe vóór index x.insert(2,1000) len() retourneert de lengte len(x) pop(<index> retourneert en verwijdert het object op de index positie y = x.pop(3) remove(<object>) verwijdert eerste optreden van object x.remove( cent ) reverse() draait volgorde om x.reverse() sort() sorteert x van laag naar hoog x.sort() 5 Meest Voorkomende Operaties 5.1 Tussen Numerieke Types (int,long,float,complex) +,-,*,/: gebruikelijk. //: integer deling. %: modulo. **: machtsverheffen. x += y is equivalent aan x = x+y (idem de andere operaties). 5.2 Tussen Serie Types (string,list,tuple) De slicing is al gezien in sectie 4.4 voor strings en in sectie 4.5 voor lists. Voor tuples gaat het net zo. Ook van belang zijn (laat x,y twee variabelen van hetzelfde serietype zijn): x + y: voegt samen. n*x: serie van n keer serie x (n is positieve integer). t in x: test of object t in de serie x zit. t not in x: idem maar dan ontkennend. for t in x: itereeert over de objecten van x. 13

14 5.3 Vergelijkingen en Boolean Operaties x == y: True als x en y gelijk zijn. x!= y: True als x en y ongelijk zijn. <,>,<=,>=: gebruikelijk. x and y: logische AND, dus True als x en y allebei True zijn; anders False. x or y: logische OR, dus True als minstens een van x of y True is; anders False. not x: negatie van x, dus True als x False is; en omgekeerd. 6 Voorwaardelijke en Iteratie Blokken 6.1 if... elif... else Gebruik is net zo als in bv Java, C++, Ox, enz. De logische test hoeft niet tussen haken. En, elif,else zijn optioneel. Let wel op de indentaties, en op de dubbele punten. Voorbeeld: >>> def ITM (u):... if u <0.25:... x = 0... elif u <0.4:... x = 1... elif u <0.7:... x = 2... elif u <0.8:... x = 3... else :... x = 4... return x... >>> import random >>> u = random. random (); print ( ITM (,u, ) =, ITM (u)) ITM ( ) = 2 >>> u = random. random (); print ( ITM (,u, ) =, ITM (u)) ITM ( ) = 2 >>> u = random. random (); print ( ITM (,u, ) =, ITM (u)) ITM ( ) = 1 >>> u = random. random (); print ( ITM (,u, ) =, ITM (u)) ITM ( ) = for De gebruikelijke structuur is for item in serie : code item doorloopt de elementen van serie, beginnend met het element met index 0, en eindigend met het laatste element. serie is (meestal) xrange of range, of een string, list, tuple, array of matrix. 14

15 >>> for i in xrange ( 4):... for j in xrange (7,10):... print (i,j) Gebruik break om een for loop eerder te beëindigen namelijk als een conditie is voldaan. >>> for i in xrange ( 4):... for j in xrange (7,10):... print (i,j)... if i >0:... break while De gebruikelijke structuur is while voorwaarde : code In de code zit meestal een iteratie die het programma doet terugkeren naar de voorwaarde. Als voorbeeld een bestand, genaamd bisectie.py. # bisectie methode voor nulpunt vinden from future import print_function, division def bisfun (x): return x **3-3. 0* x def bisectie (a0,b0, tol ): a,b = a0,b0 fa,fb = bisfun (a), bisfun (b) 15

16 if fa*fb >0.0: print ( verkeerde startwaarden ) quit () i = 0 while b-a>tol : i += 1 c = 0.5*( a+b) fc = bisfun (c) if fa*fc <0: b = c else : a = c fa = fc c = 0.5*( a+b) fc = bisfun (c) return c,fc,i def main (): c,fc,i = bisectie (0,1,1.0e -8) print ( nulpunt, c, met functiewaarde, fc, \ gevonden na, i, iteraties ) if name == " main ": main () 6.4 try... except Zogeheten exception handling is een geavanceerde techniek om uitzonderingsregels in je code te krijgen. Het kan ook gebruikt worden om gevaarlijke codes (bv delen door 0) te controleren. Hier is een voorbeeld om te illustreren: >>> try :... y = 4/0... print ( uitkomst :, y)... except Zero Divisi onerr or :... print ( kan niet delen door 0 )... kan niet delen door 0 7 Functies Python heeft vele built-in functies die je vaak gebruikt, zoals print(), max(), len(), xrange(), input(), abs(),... Via def() definieer je je eigen functies zoals we al menig keer zagen. 16

17 def functienaam ( formele parameters ): code Meestal retourneert een functie output, maar dat hoeft niet. De lijst met formele parameters mag eventueel leeg zijn. In een ander deel van je programma geef je de parameters bepaalde waarden (de functie krijgt argumenten), en roep je de functie met die argumenten aan. Pas dan wordt de functie uitgevoerd. Voorbeeldprogramma: from future import print_function def def func1 (x): print ( het kwadraat van,x, is, x*x) func2 (x,y): func1 (x) return x*y def main (): x = float ( input ( Geef x: )) y = float ( input ( Geef y: )) z = func2 (x,y) print ( x*y =,z) if name == " main ": main () Variabelen in de code van een functie zijn lokale variabelen en worden niet herkend in andere functies (scoping). Hier is een voorbeeld: from future import print_function def func1 (x): y = 5 x += y return x def main (): x = float ( input ( Geef x: )) print ( x =,x) try : print ( y =,y) except : print ( y niet gedefinieerd in main () ) x = func1 (x) print ( x =,x) if name == " main ": main () De output van dit programma is Geef x:

18 x = 7.3 y niet gedefinieerd in main () x = Globale Variabelen Globale variabelen kunnen wel in verschillende functies worden aangeroepen, ze kunnen niet gewijzigd worden in die functies. Advies is om globale variabelen NIET te gebruiken, het maakt meestal de code onoverzichteloijk. from future import print_function y = 5 # globale variabele def func1 (x): x += y return x def main (): x = float ( input ( Geef x: )) z = func1 (x) print ( x =,x) try : print ( y =,y) except : print ( y niet gedefinieerd in main () ) print ( z =,z) if name == " main ": main () De output van dit programma is Geef x: 7.3 x = 7.3 y = 5 x = Recursie en Iteratie Recursie is een efficiënte en overzichtelijke wijze van rekenen en verdient daarom de voorkeur om gecodeerd te worden indien je het herkent. Er zijn twee implementatiemethoden: (i) recursieve, en (ii) iteratieve. Wegens geheugengebruik, en daardoor tijdaspect verdient de iteratieve methode de voorkeur. Bovendien heeft Python recursielimiet van Voorbeeld: # berekening van n! from future import print_function from timeit import default_timer as timer def facr (n): 18

19 if n == 1: return n else : return n* facr (n -1) def faci (n): f = n while n >1: n -= 1 f *= n return f def main (): n = int ( input ( Geef n: )) tijdstart = timer () f1 = facr (n) tijdeind = timer () print (" Rekentijd recursieve methode : ", tijdeind - tijdstart ) tijdstart = timer () f1 = faci (n) tijdeind = timer () print (" Rekentijd iteratieve methode : ", tijdeind - tijdstart ) if name == " main ": main () De output van dit programma is Geef n: 1000 Rekentijd recursieve methode : Rekentijd iteratieve methode : Classes Python beschikt ook de mogelijkheid tot object geörienteerd programmeren door middel van het class structuur waarin je objecten, data, en functies kunt definiëren. Voor numerieke toepassingen is dit minder van belang, en zal dus (in dit crash-document) worden overgeslagen. 9 Numerieke Methoden in Python Hiervoor heb je modules nodig zoals Random, Math, NumPy, Matplotlib, SciPy,... Meer hierover in het document Scientific Computing with Python dat op de site en op Blackboard staat. 19

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

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

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014 Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 22 april 2014 Inleiding Cursus coördinator e-mail Docent e-mail : Jacco Hoekstra : J.M.Hoekstra@TUDelft.nl : Ingeborg Goddijn : I.A.M.Goddijn@TUDelft.nl

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Niet-numerieke data-types

Niet-numerieke data-types Intern wordt een karakter voorgesteld als een rij van acht bits, Niet-numerieke data-types string de letter a 01100001 0110 0001 0x61 97 Bij interpretatie van de inhoud van een byte als een geheel getal,

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 OEFENINGEN PYTHON REEKS 1 Vraag 1: Python als een eenvoudige rekenmachine Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3) en

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

PYTHON REEKS 1: BASICS. Mathias Polfliet

PYTHON REEKS 1: BASICS. Mathias Polfliet PYTHON REEKS 1: BASICS Mathias Polfliet mpolflie@etrovub.be EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte

Nadere informatie

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14 Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies

Nadere informatie

Programmeermethoden NA

Programmeermethoden NA Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord December 17, 2018 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True : gohome () Goed:

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

Programmeermethoden NA. Week 6: Lijsten

Programmeermethoden NA. Week 6: Lijsten Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal

Nadere informatie

Opgaven. Python Assessment

Opgaven. Python Assessment Opgaven Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Inleiding Met dit assessment kun je controleren of je voldoende parate kennis over Python hebt om te beginnen

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

Python voor Natuur- en Sterrenkundigen Week 1

Python voor Natuur- en Sterrenkundigen Week 1 Python voor Natuur- en Sterrenkundigen Week 1 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pmpy2015/ Wat is Python & Waarom Python? "Scripttaal", ontworpen door Guido van Rossum eind

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord en Leonie Bosveld December 19, 2016 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x

Nadere informatie

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma:

Arrays. Complexe datastructuren. Waarom arrays. Geen stijlvol programma: Geen stijlvol programma: Complexe datastructuren Arrays vijf verschillende variabelen voor iets dat als één rij getallen bestempeld wordt; onbruikbaar wanneer het over meer getallen (bijvoorbeeld ) gaat.

Nadere informatie

Code Voorbeeld Resultaat. print(6, end="") print(7) print(type(6)) <class 'int'> + optelling - aftrekking * vermenigvuldiging / deling 8 16 % modulo

Code Voorbeeld Resultaat. print(6, end=) print(7) print(type(6)) <class 'int'> + optelling - aftrekking * vermenigvuldiging / deling 8 16 % modulo Code overzicht Python Code Voorbeeld Resultaat print() print(6) print(6, end="") print(7) print(type(6)) 6 67 + optelling - aftrekking * vermenigvuldiging / deling // deling afgerond naar

Nadere informatie

Programmeermethoden NA

Programmeermethoden NA Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Vorige week: Controlestructuren # gegeven # 0

Nadere informatie

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

Nadere informatie

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2 Controle structuren De algemene vorm: 1 bloks door middel van indentatie Keuze Herhaling if expressie :...... In de volgende vorm is het else gedeelte weggelaten: if expressie :... Het if keuze- of conditioneel

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

Programmeermethoden NA. Week 4: Files & Functies

Programmeermethoden NA. Week 4: Files & Functies Programmeermethoden NA Week 4: Files & Functies Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Vorige week: Controlestructuren # gegeven # 0

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer:

Programmeren PYTHON OEFENTENTAMEN 2. Schrijf jouw antwoorden op dit tentamen. Tijd: 2 uur. Maximaal aantal punten: 32. Naam: Studentnummer: Programmeren PYTHON OEFENTENTAMEN 2 Naam: Studentnummer: Schrijf jouw antwoorden op dit tentamen Tijd: 2 uur Maximaal aantal punten: 32 Menselijke interpreter (6 punten) 0. (1 punt) Wat is de uitkomst

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 19, 2018 Overzicht Grafische programma s en tekstgebaseerde programma s Stijladviezen (Jeff Knupp, Writing Idiomatic Python) File Processing (Zelle 5.9.2)

Nadere informatie

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27

Programmeren. a. 0, 0, 0 b. 0, 0, 27 c. 15, 12, 0 d. 15, 12, 27 Programmeren 0. (1 punt.) Stel, een "afhankelijk kind" is een persoon is die jonger is dan 18 jaar, en hooguit 8.000 euro verdient. Welke van de onderstaande expressies definieert een afhankelijk kind?

Nadere informatie

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara MINICURSUS PHP Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2017-2018 Sebastiaan Franken en Rosalie de Klerk Bambara PHP Cursus Deze cursus is om de eerste stappen in de wereld

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Maak automatisch een geschikte configuratie van een softwaresysteem;

Maak automatisch een geschikte configuratie van een softwaresysteem; Joost Vennekens joost.vennekens@kuleuven.be Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Uitwerkingen. Python Assessment

Uitwerkingen. Python Assessment Uitwerkingen Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Uitwer king 1: Elementairedatatypes 1.a Een string bevat tekst in de vorm van Unicode characters, terwijl

Nadere informatie

Programmeren. Cursus Python

Programmeren. Cursus Python Programmeren Cursus Python Cursus Python Omschrijving In deze cursus leren de deelnemers te programmeren in de objectgeoriënteerde programmeertaal Python. Python is een taal die vaak wordt gebruikt voor

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

Introductie in R. http://www.math.montana.edu/stat/tutorials/r-intro.pdf http://www.math.montana.edu/stat/docs/splus_notes.ps

Introductie in R. http://www.math.montana.edu/stat/tutorials/r-intro.pdf http://www.math.montana.edu/stat/docs/splus_notes.ps Introductie in R R is een programmeer taal met een groot aantal voorgeprogrammeerde statistische functies. Het is de open source versie van S-plus. Wij gebruiken R dan ook omdat het gratis is. Documentatie

Nadere informatie

GEDETAILLEERDE INHOUD

GEDETAILLEERDE INHOUD GEDETAILLEERDE INHOUD dankwoord 17 Inleiding 19 Waarom leer je programmeren?... 19 Waarom Python?... 20 Waarom Minecraft?... 20 Wat staat er in dit boek?.... 20 Online bronnen... 22 Ga nu maar op avontuur...

Nadere informatie

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent Het relaas van de beginnende programmeur Het hoe en waarom van de assistent 1. Help, mijn code doet niks... Mogelijke oplossingen: Heb je op run geduwd (groene pijltje)? Zolang je niet op 'run' duwt, kent

Nadere informatie

Gebruik van command-line operating systems

Gebruik van command-line operating systems Gebruik van command-line operating systems Mattias Holm & Kristian Rietveld Overzicht - Waarom hier meer over leren? - Wat is een shell? - Hoe werkt een shell? - Pipes en redirectie - Handige utilities

Nadere informatie

Inhoud. Informatica. Hoofdstuk 5 Scripting. Context. Editor voor Programmeercode. Scripting 1

Inhoud. Informatica. Hoofdstuk 5 Scripting. Context. Editor voor Programmeercode. Scripting 1 5.1 5.2 1rste BAC Biologie Hoofdstuk 5 Inhoud Inleiding Programeerconstructies functies variabelen (toekenning) statements (print, ) controlestructuren (if, while, until, for) Oefeningen 5.3 5.4 "functionzero.zip"

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? 1 Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? Voordat je begint met programmeren, moet je Ruby installeren.

Nadere informatie

Persistentie via bestanden. Bestanden

Persistentie via bestanden. Bestanden programma is transient Persistentie via bestanden Administratieve gegevens zijn verzameld in het file-object: o.a. waar ergens op de disk de data van het bestand te vinden is. invoer van de gebruiker programma

Nadere informatie

[8] De ene 1 is de andere niet

[8] De ene 1 is de andere niet [8] De ene 1 is de andere niet Volg mee via 08_Types.py In de volgende leerfiche gaan we rekenen met Python. Dat kan je in een programma doen, maar dat kan je ook gewoon vanuit het Shell-venster doen.

Nadere informatie

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic

Nadere informatie

Practicum Ox intro. Practicum Ox intro. VU Numeriek Programmeren 2.5. Charles Bos. Vrije Universiteit Amsterdam. 3 april /18

Practicum Ox intro. Practicum Ox intro. VU Numeriek Programmeren 2.5. Charles Bos. Vrije Universiteit Amsterdam. 3 april /18 1/18 VU Numeriek Programmeren 2.5 Charles Bos Vrije Universiteit Amsterdam 3 april 2013 2/18 Overzicht Vlotte intro in Ox Hands on 3/18 Minimale elementen Minimale elementen Ox-programma: voeg de standaard

Nadere informatie

inleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur

inleiding theoretische informatica practicum 1 deadline woensdag 20 februari 2008 om uur 1 Inleiding inleiding theoretische informatica 2007-2008 practicum 1 deadline woensdag 20 februari 2008 om 14.00 uur Dit practicum is een kennismaking met functioneel programmeren. Twee belangrijke functionele

Nadere informatie

Een spoedcursus python

Een spoedcursus python Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het

Nadere informatie

DE INTERACTIEVE SHELL

DE INTERACTIEVE SHELL Hoofdstuk2 De interactieve shell 6 Hoofdstuk 2 DE INTERACTIEVE SHELL In dit hoofdstuk behandelen we: Integers (gehele getallen) en getallen met drijvende komma Expressies Waarden Operatoren Het evalueren

Nadere informatie

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Handleiding bij het gebruik van een microcontroller in het Accelerometerproject (Project II) Er zijn speciaal voor het Accelerometerproject

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Python voor Natuur- en Sterrenkundigen Week 2

Python voor Natuur- en Sterrenkundigen Week 2 Python voor Natuur- en Sterrenkundigen Week 2 Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pmpy2015/ Vorige week range() voor karakters: import string for c in string.lowercase: print

Nadere informatie

College Introductie

College Introductie College 2016-2017 Introductie Doaitse Swierstra (Jeroen Bransen) Utrecht University September 13, 2016 Waarom is FP anders? in plaats van opdrachten die na elkaar moeten worden uitgevoerd, definiëren we

Nadere informatie

Tentamen Bionformatica deel A(8C074), 18 januari 2007, u.

Tentamen Bionformatica deel A(8C074), 18 januari 2007, u. Tentamen Bionformatica deel A(8C074), 18 januari 2007, 10.30-12.00u. Twee algemene opmerkingen Het tentamen bestaat uit 5 opgaven verdeeld over 2 pagina s. Op pagina 2 staat voor iedere opgave het maximale

Nadere informatie

WORKSHOP ORANGE PI & PYTHON v september 2017

WORKSHOP ORANGE PI & PYTHON v september 2017 WORKSHOP ORANGE PI & PYTHON v1.1 21 september 2017 In deze workshop maak je kennis met een zogenaamde bord-computer ter grootte van een bankpas. Een bord-computer kan gebruikt worden als een normale computer

Nadere informatie

Algemeen. Rorschachtest. Algemene info

Algemeen. Rorschachtest. Algemene info Algemeen Als Python de volgende regel moet lezen uit een tekstbestand, dan wordt er gelezen tot en met de eerstvolgende newline ('\n') of tot het einde van het bestand. Het laatste karakter van de regel

Nadere informatie

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

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 13 mei 2014 Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 13 mei 2014 Bijeenkomst 7 Onderwerpen Tips met betrekking tot boolse variabelen en loops Numpy Lijsten, tuples, arrays, matrices Wat is het

Nadere informatie

Aantekeningen over MATLAB

Aantekeningen over MATLAB Aantekeningen over MATLAB Hieronder volgen zeer beknopte aantekeningen over MATLAB. Wat is MATLAB? MATLAB staat voor MATrix LABoratory. Opstarten van MATLAB Met de muis en het menu Matlab opstarten. Er

Nadere informatie

10 Meer over functies

10 Meer over functies 10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf

Nadere informatie

DE DEBUGGER GEBRUIKEN

DE DEBUGGER GEBRUIKEN Hoofdstuk 7 Hoofdstuk 7 De Debugger gebruiken 56 DE DEBUGGER GEBRUIKEN In dit hoofdstuk behandelen we: 3 verschillende soorten fouten De Debugger van IDLE Stappen in, over en uit Go en Quit Breekpunten

Nadere informatie

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse Objective-C Basis 23 april 2005, Eindhoven Patrick Machielse patrick@hieper.nl Algemeen // extensies Objective-C code in bestanden met.m extensie // commentaar moet! /* Alles hiertussen wordt genegeerd

Nadere informatie

Turbo Pascal (deel 1)

Turbo Pascal (deel 1) Turbo Pascal (deel 1) MSX CLUB MAGAZINE 34 Erik van Bilsen Scanned, ocr ed and converted to PDF by HansO, 2001 Erik van Bilsen leert u het klappen van de Turbo Pascal zweep. Turbo Pascal toepassen Deze

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

Nadere informatie

Inleiding tot Func.oneel Programmeren les 3

Inleiding tot Func.oneel Programmeren les 3 Inleiding tot Func.oneel Programmeren les 3 Kris Luyten, Jo Vermeulen {kris.luyten,jo.vermeulen}@uhasselt.be Exper.secentrum voor Digitale Media Universiteit Hasselt Currying Currying: een func.e met meerdere

Nadere informatie

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS Laatste aanpassing: 15 oktober 2003 Inhoudsopgave 1 Bestandsnamen 3 2 Organizatie Bestanden 3 3 Indentatie

Nadere informatie

maplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect

maplev 2010/7/12 14:02 page 15 #17 Nadere detaillering van een aantal zaken van Module 1 Geen,,  , \, save, read, protect, unprotect maplev 2010/7/12 14:02 page 15 #17 Module 2 Het gebruik van Maple, vervolg Onderwerp Voorkennis Expressies Nadere detaillering van een aantal zaken van Module 1 Geen,, " ", \, save, read, protect, unprotect

Nadere informatie

Hoofdstuk 0. Van Python tot Java.

Hoofdstuk 0. Van Python tot Java. Hoofdstuk 0. Van Python tot Java. In dit eerste hoofdstuk maken we de overstap van Python naar Java. We bespreken de verschillen en geven wat achtergrondinformatie. In het volgende hoofdstuk gaan we dieper

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)

Nadere informatie

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13 INHOUDSOPGAVE Over de auteur, de illustrator en de technische redacteuren 13 Dankwoord 14 Inleiding 15 Waarom Python?... 16 Hoe je code leert schrijven... 16 Voor wie is dit boek... 17 Wat staat er in

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

Wat als je een heleboel informatie wilt opslaan? Bijvoorbeeld alle namen van iedereen die bij jouw dojo's aanwezig is? Hier gebruik je een lijst voor:

Wat als je een heleboel informatie wilt opslaan? Bijvoorbeeld alle namen van iedereen die bij jouw dojo's aanwezig is? Hier gebruik je een lijst voor: 1 Wat als je een heleboel informatie wilt opslaan? Bijvoorbeeld alle namen van iedereen die bij jouw dojo's aanwezig is? Hier gebruik je een lijst voor: list_of_names = ["Alice", "Bob", "Chris"] list_of_numbers

Nadere informatie

Matlab-Introductie (les 1)

Matlab-Introductie (les 1) Matlab-Introductie (les 1) Wat is Matlab? MATLAB staat voor MATrix LABoratory. Opstarten van Matlab Dit hangt af van het onderligge systeem (Windows, Linux,...), Maar kortweg geldt bijna altijd: ga met

Nadere informatie

Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen

Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen Voorbeelden Sorteren Schrijf een programma dat een rij gehele getallen sorteert een eerste functie leest de rij gehele getallen; een tweede functie sorteert deze getallenrij van klein naar groot; een derde

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

Nadere informatie

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, 11.00-13.00 uur 1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort: een

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Informatietechnologie 2. JavaScript. Strings, getallen, datums, arrays en loops. Kristof Michiels

Informatietechnologie 2. JavaScript. Strings, getallen, datums, arrays en loops. Kristof Michiels Informatietechnologie 2 JavaScript Strings, getallen, datums, arrays en loops Kristof Michiels In deze presentatie Strings: methods en properties Getallen Datums Arrays Loops 2 / 48 Strings: methods en

Nadere informatie

Matlab introductie. Kees Vuik

Matlab introductie. Kees Vuik Matlab introductie Kees Vuik 2014 Delft University of Technology Faculty of Electrical Engineering, Mathematics and Computer Science Delft Institute of Applied Mathematics Copyright 2014 by Delft Institute

Nadere informatie

Geeft de lengte van een object (string, lijst, tupel) terug als integer

Geeft de lengte van een object (string, lijst, tupel) terug als integer Python cheat sheet: Operatoren: De standaard operatoren voor wiskundige bewerkingen (+,-,*,/,**) worden als vanzelfsprekend ondersteld. Voor integers en floating point getallen doen deze functies wat je

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40 Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TWl(0)9O Inleiding Programmeren Tentamen 16 maart 2017, 9:00-12:00 uur Normering: Opgave 1 t/m 3 ieder 6 punten. Score:

Nadere informatie

RAAD HET GETAL. Hoofdstuk 4. Het spelletje 'Raad het getal' Voorbeeld van uitvoering van 'Raad het getal' Hoofdstuk 4 Raad het getal 21

RAAD HET GETAL. Hoofdstuk 4. Het spelletje 'Raad het getal' Voorbeeld van uitvoering van 'Raad het getal' Hoofdstuk 4 Raad het getal 21 Hoofdstuk 4 Raad het getal 21 Hoofdstuk 4 RAAD HET GETAL In dit hoofdstuk behandelen we: import-statements Modules Argumenten while-statements Voorwaarden Blokken Boole-waarden Vergelijkingsoperatoren

Nadere informatie

Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes

Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes Interne voorstelling types en conversies Het geheugen wordt ingedeeld in een aantal gebieden van gelijke grootte. Een gebied van 8 bits noemt men een byte (nible een groep van bits). Een (computer)woord

Nadere informatie

4EE11 Project Programmeren voor W. College 2, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 2, , Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 2, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Terugblik Functies Organisatie (architectuur) van programma s Arrays Structuren

Nadere informatie