Python: Syntaxoverzicht

Save this PDF as:
 WORD  PNG  TXT  JPG

Maat: px
Weergave met pagina beginnen:

Download "Python: Syntaxoverzicht"

Transcriptie

1 Hoofdstuk 1 Hoofdstuk 1 Python: Syntaxoverzicht geformatteerde uitvoer Descriptor %s Tekst (string) %% %-teken %d geheel getal, 10-tallig %o geheel getal, octaal %x hexadecimaal (kleine letters) %X hexadecimaal (hoofdletters) %f decimale notatie met 6 decimalen (na decimaal punt) %.2f Idem, maar met slechts twee decimalen %e wetenschappelijke notatie, exponent e %E wetenschappelijke notatie, exponent E %g decimaal of wetenschappelijk (kortste), exponent e %G decimaal of wetenschappelijk (kortste), exponent E %0xz getal in veld van minstens x karakters %xz idem, maar voor elk formaat, aangevuld met spaties links, rechts gealigneerd %-xz idem, links gealigneerd %.yz reëel formaat met y decimalen (werkt voor onder andere %f en %e %x.yz idem, maar in veld van grootte x %r Representatie van een object abs() complex() dir() float() format() help() hex() id() int() input() max() min() Ingebouwde s Korte beschrijving absolute waarde maak complex getal aan geeft overzicht van de namen in dit bereik maak re eel getal aan formatteren van strings (zie hoger) ingebouwde help (zie verder) omzetting naar hexadecimale string geeft het unieke id van het argument plaats in het geheugen waar deze variabele is opgeslagen. maak geheel getal lees string van terminal (eventuele boodschap als 1ste argument) levert het maximum van de meegegeven argumenten levert het minimum van de meegegeven argumenten Pagina 1 van 11

2 Hoofdstuk 1 Hoofdstuk 1 oct() pow(x,y) print() print(arg0, arg1,..., sep= sepkar, end = endkar) round(x[,n]) str() type() lambda <arg0>, <arg1>, <arg2>,... : <uitdrukking> zet om naar octale string identiek aan x ** y afdrukken van tekst (zie hoger) drukt alle positionele argumenten af in de opgegeven volgorde, gescheiden door sepkar en afgesloten met endkar afronden naar dichtste getal op N digits na de komma. Indien even ver, afronden naar even laatste digit maak string geeft type van argument def g(<arg0>, <arg1>, <arg2>,... : return <uitdrukking> importopdracht import<modulenaam> import<modulenaam> as<handigenaam> from <modulenaam>import<naam0>, <naam1>, from <modulenaam>import <naam> as<handigenaam> from <modulenaam>import * module importeren Effect importeert de opgegeven module, functies op te roepen via <modulenaam>.<functienaam>(<argumenten>) idem, maar nu gebruik je <handigenaam>.<functienaam>(<argumenten>) importeert alle opgegeven namen uit de opgegeven module, functies op teroepen via <functienaam>.(<argumenten>) idem, gebruik <handigenaam> importeert alle namen Module Math Naam sin(), cos(), tan() welgekende goniometrische functies (argumenten in radiaal!) asin(), acos(), atan() inverse goniometrische functies (arcus) exp() exponentiële functie log(x [,basis]) logaritme in opgegeven basis (indien geen basis opgegeven, natuurlijke logaritme) log10() logaritme in basis 10 sinh(), cosh(), tanh() hyperbolische functies asinh(), acosh(), atanh() inverse hyperbolische functies degrees() zet argument om van radiaal naar graden radians() zet argument om van graden naar radiaal pi, e welgekende mathematische constanten sqrt() vierkantswortel ceil(), floor() afronding naar resp. onder, boven, resultaat is een geheel getal fabs() absolute waarde (van een float) factorial() faculteit van een natuurlijk argument Pagina 2 van 11

3 Hoofdstuk 2 Hoofdstuk 2 Hoofdstuk 1 Bewerking u.real u.imag u + v u - v u*v u/v u.conjugate() abs(u) Complexe Getallen reëel deel van u imaginair deel van u som van u en v verschil van u en v product van u en v quotiënt van u en v complex toegevoegd van u modulus van u (werkt ook voor reële getallen) Logic Boolese uitdrukkingen en relationele operatoren Operator if, elif, else als, ander als, anders > strikt groter dan < strikt kleiner dan >= niet kleiner dan (groter dan of gelijk aan) <= niet groter dan (kleiner dan of gelijk aan) == gelijk aan (zelfde waarde)!= verschillend van is identiek (zelfde object) and logische EN or logische OF not negatie Operatie/ p = [<el0>, <el1>, <el2>,...] p[<index>] len(p) p.append(<el>) P += element p.extend(<itereerbaar object>) p.insert(<pos>,<el>) del p[<pos>] p.index(<waarde>) p.count(<waarde>) p.remove(<waarde>) p.copy() p.sort() p.reverse() sorted(p) p.clear() Lijsten Effect aanmaken van een lijst element met rangnummer <index> aantal elementen van de lijst voegt element <el> toe op einde van de lijst Voeg element toe op het einde van de lijst (dus analoog aan p.append) voegt alles uit <itereerbaar object> toe aan de lijst voegt element <el> tussen op positie verwijdert element op positie <pos> levert kleinste index van element in p gelijk aan <waarde> telt hoeveel maal <waarde> voorkomt in p verwijdert de eerste keer dat <waarde> voorkomt in p maakt ondiepe (Eng. shallow) kopie van de lijst p sorteert de lijst p ter plaatse keer de volgorde van de lijst om maakt opdiepe gesorteerde kopie van p maakt de lijst leeg Pagina 3 van 11

4 Hoofdstuk 3 Hoofdstuk 2 Hoofdstuk 2 <waarde> in p levert True/False indien <waarde> in lijst wel/niet voorkomt <waarde> not in p levert False/True indien <waarde> in lijst wel/niet voorkomt p + q maak nieuwe lijst (concatenatie van p en q) p * <int> maak nieuwe lijst als p + p + p +...(<int> keer) p += <itereerbaarobject> identiek aan p = p + <itereerbaarobject> p *= <int> identiek aan p = p*<int> max(<lijst>) bereken maximum van de <lijst> min(<lijst>) bereken minimum van de <lijst> sum(<lijst>) bereken de som van de <lijst> range-objecten Opdracht Effect range(n) genereert 0, 1,..., n-1 range(start, stop) genereert start, start+1,..., stop-1 range(start, stop, stap) genereert start, start+1*stap, start+2*stap,...tot stop (niet inbegrepen!) list(range(...)) maak lijst van range-object Geavanceerde lijstbewerkingen Operatie/ Effect enumerate(p) genereert tuples (<index>,<waarde>) (generatorobject) [E(e) for e in <itereerbaar object>] list comprehension, maakt lijst aan van E(e) voor alle elementen e in het <itereerbaar object> zip(p0, p1, p2,...) genereert tuples (p0[0],p1[0],p2[0],...) (generatorobject) p[start:einde:stap] genereert KOPIE, nieuwe lijst [p[start],p[start+1*stap],p[start+2*stap],... ], einde niet inbegrepen (slicing) Operatie/ def <functienaam> (<args>):. Return x Return None Return x, y Global <var> [E(e) for e in <iterable> if <log uit>] Decimal.Decimal(k) Decimal.getcontext().prec = x s Effect Definieer een nieuwe functie <functienaam> met argumenten <args> - met als resultaat x Expliciteer lege uitvoer bij een functie Voert een tuple uit, bestaande uit x en y Gebruik de globale variabele met naam <var> List comprehension E(e) wordt enkel toegevoegd als <log uit> voldaan is Zet variabele k om in decimal (hoge precisie) Decimals worden op x nauwkeurig bijgehouden Pagina 4 van 11

5 Hoofdstuk 4 Hoofdstuk 4 Hoofdstuk 4 Hoofdstuk 3 Break Continue Pass Sprongen Spring uit de binnenste lus (stop dus de iteraties van deze lus) Ga naar de volgende iteratie van de binnenste lus Doe niets placeholder voor plaats waar een opdracht verwacht wordt open(naam, optie) file.close() file.readlines() file.write(s) with open(<bestandsnaam>, r ) as <varnaam>: for line in <varnaam>: # verwerk de regel in line with open(<bestandsnaam>, r ) as <varnaam>: lines = <varnaam>.readlines() #verwerk lines with open(<bestandsnaam>, w,) as <varnaam>: <varnaam>.write(<stringuitdrukking>) open(, end= ) Bestanden Opent het bestand met opgegeven naam, voor lezen (optie r), schrijven (optie w) of bijschrijven (optie a). Levert als waarde een file-object waarop alle volgende bewerkingen gebeuren. Sluit het bestand leest alle tekstregels van het bestand, resultaat is een lijst van strings schrijft de tekst in de argumentstring weg naar het bestand Per regel lezen en verwerken Volledige inhoud lezen in lijst Schrijven naar een bestand Voorkomt toevoeging \n op einde strings eval(s) exec(s) Invoer van uitdrukkingen en code berekent de waarde van de uitdrukking die in de argumentstring steekt interpreteert de inhoude van de argumentstring als Python-code, en voert deze code uit Inlezen van terminal wegschrijven naar terminal Input() Print(, end=*, sep=*) Vraag input van gebruiker (type str) Schrijf naar scherm, met op het einde end en de verschillende componenten gescheiden door sep Pagina 5 van 11

6 Hoofdstuk 5 np.array(r) np.zeros(n) np.ones(n) np.zeros(n, t) np.ones(n, t) np.zeros(tuple, dtype) np.zeros like(r) np.linspace(p, q, n) Module Numpy maak nieuwe rij met zelfde inhoud als lijst r (kopie!) maak rij van n lang, gevuld met 0.0 (float) idem maar gevuld met 1.0 (float) idem maar rij-element is van type t idem maar rij-element heeft waarde 1 van type t maak rij van gewenste vorm en type maak 0-rij met zelfde vorm en type als r nieuwe rij, n elementen gelijk verdeeld in [p,q] (grenzen inbegrepen!) np.r [a:b:nj] idem (LET OP : laatste index imaginair!) np.concatenate((r0, r1,... )) maak nieuwe array als aaneenschakeling van r0, r1,... np.logical and(x0, x1,... ) np.logical or(x0, x1,... ) np.sum(r) np.mean(r) np.max(r) np.min(r) np.argmax(r) np.argmin(r) r[i:j:k] np.array(l) l = np.asarray(l) a.copy() a.shape a.dtype a.size len(a) a.reshape(shape) [index] [a:b:i] a[lijst] a[voorwaarde] a.all() a.any() np.dot(a,b) np.transpose(r) np.sum(a) == a.sum() np.sum(a,axis=0) == a.sum(axis=0) np.max(a) == a.max() np.min(a) == a.min() logische EN van argumenten logische OF van argumenten som van een rij gemiddelde waarde van een rij maximum van een rij minimum van een rij kleinste index waar het maximum van een rij zich bevindt kleinste index waar het minimum van een rij zich bevindt slicing (cf. lijst) zet l om naar array idem, maar indien l al rij is, doet niets maak kopie van a vorm van de rij (tuple) type van elk rij-element aantal elementen in a (over alle dimensies) grootte van 1ste dimensie pas de vorm van a aan (aantal elementen MOET kloppen) rangnummer slice (indices a, a+i, a+2i,... tot b, b NIET ingebrepen) subrij met opgegeven indices masking True indien alle elementen van a True zijn, anders False (logische EN) False indien alle elementen van a False zijn, anders True (logische OF) MATRIX-product op de rijen a en b getransponneerde van r som van alle elementen van a som over index 0 (analoog voor andere indices) grootste element van a kleinste element van a Pagina 6 van 11

7 Hoofdstuk 5 Hoofdstuk 5 np.abs(a) == a.abs() np.random.uniform(a,b,shape) Tabel[np.ix_(lijsten)] modulus van a maakt een rij van opgegeven vorm, opgevuld met willekeurige getallen in [a,b[ Levert een tabel van de opgegeven indices in elke dimensie. Matrices /Operator np.matrix(lijst) maakt matrixversie van lijst (maakt kopie) np.matrix(array) idem voor array (maakt kopie) m.shape vorm van de matrix als tuple (rijen, kolommen) np.eye(n) NxN eenheidsmatrix m.t nieuw matrix = getransponeerde van m a*b matrix-vermenigvuldiging a + b matrix-optelling np.linalg.inv(a) bereken inverse van A np.linalg.det(a) bereken determinant van A np.linalg.eig(a) eigenwaarden en eigenvectoren van A np.linalg.norm(a) norm van A (= wortel uit som van moduluskwadraat van elementen van A) np.linalg.solve(a,b) zoek x uit Ax = b np.dot(a,b) matrixproduct (voor rijen!) np.transpose(a) getransponeerde van A (ook voor rijen!) np.triu(a) bovendriehoek van a np.tril(a) onderdriehoek van a M[a:b,c:d] Sub matrix van M: - Rijen met index a t.e.m b-1 - Kolommen met index c t.e.m d-1 Plotten van functies import matplotlib.pyplot as plt plt.plot(x, y) curve y versus x (NumPy-rijen) plt.plot(x, y, formatstring) curve y versus x, stijl in 3de arg (idem) plt.plot(x0, y0, fomat0, x1, y1, format1,... ) idem voor meerdere curven op 1 figuur plt.show() toon de curve plt.savefig(<bestandsnaam>) schrijf plot weg naar bestand (formaat cf. extensie) plt.title(<titelstring>) benoem de figuur plt.xlabel(<string>) benoem x-as plt.ylabel(<string>) benoem y-as plt.legend([<string0>,... ]) legende (per curve een string opgeven) lijst van strings wordt verwacht plt.axis([xmin, xmax, ymin, ymax]) herschalen assen plt.hold(true) volgende plot op zelfde figuur plt.hold(false) volgende plot op nieuwe figuur Pagina 7 van 11

8 Hoofdstuk 6 Hoofdstuk 6 plt.figure() plt.subplot(r, k, n) nieuwe figuur definieer subplot met id = n in figuur met r rijen en k kolommen d.clear() d.copy() d[key] d.get(key [,default]) d.keys() d.values() d.items() d.setdefault(key [, default]) d.update(w) d.update(l, w) len(d) del d[key] key in d Dictionaries maak dict leeg maak kopie van d (ondiep) indexering via sleutel levert default op indien sleutel niet in d levert alle sleutels van d levert alle waarden van d lijst van tuples (key, value) in d zet default voor sleutel expliciet voeg (key, values) uit woordenboek w aan d toe (of overschrijf) idem als hierboven, maar itereer eerst over l (typisch lijst tuples) aantal elementen in d (== len(d.keys()) verwijdert (key, value)-paar uit d True/False naargelang sleutel in d aanwezig is s[start:end:step] a in s s.find(a) s.startswith(a) s.endswith(a) s.replace(oud,nieuw) s.lower() s.upper() s.isdigit() s.isspace() s.strip() s.lstrip() s.rstrip() Strings slice (substring, zelfde defaults als bij lijst) membership: True indien string a in s voorkomt index van 1ste keer dat string a als deel van s voorkomt, resultaat -1 indien a niet in s voorkomt True/False naargelang string a al dan niet aan de kop van s voorkomt True/False naargelang string a al dan niet aan de staart van s voorkomt vervangt overal substring door in NIEUWE string Maak NIEUWE string met alle hoofdletters vervangen door kleine letters Maak NIEUWE string met alle kleine letters vervangen door hoofdletters True/False naargelang s enkel uit decimale cijfers bestaat True/False naargelang s enkel uit witte ruimte bestaat (geen zichtbare tekens bij afdrukken) NIEUWE string met witte ruimte aan kop en staart verwijderd NIEUWE string met witte ruimte aan kop verwijderd NIEUWE string met witte ruimte aan staart verwijderd Pagina 8 van 11

9 Hoofdstuk 9 Hoofdstuk 7 Hoofdstuk 6 s.split([sep]) opsplitsen van string s in stukjes (in lijst) string wordt gesplitst wanneer sep voorkomt. s.join(itereerbaar object] nieuwe string, alle objecten uit argument, lijst van strings, gescheiden door string s s.count([teken]) Telt aantal keer dat het teken voorkomt in de string. == vergelijken van string-inhoud s + t concatenatie van s en t s*n n keer de string s CSV import csv with open(bestandsnaam, r ) as infile: for rij in csv.reader(infile, delimiter = ; ): # verwerk rij with open(bestandsnaam, r ) as infile: tabel = [rij for rij in csv.reader(infile, delimiter = ; )] # verwerk de tabel with open(bestandsnaam, w ) as outfile: writer = csv.writer(outfile, delimiter = ; ) for rij in tabel: writer.writerow(rij) with open(bestandsnaam, w, newline = ) as outfile: writer = csv.writer(outfile, delimiter = ; ) for rij in tabel: writer.writerow(rij) Rij-per-rij lezen en verwerken Volledige tabel inlezen Schrijven van CSVbestanden Schrijven van CSV-files voorkomt witregels /Methode call (self[, args]) callable(<obj>) str (self[, args]) repr (self[, args]) _illegal(self, arg) String-conversie wordt automatisch opgeroepen bij <obj>([args]) True/False naargelang <obj> callable is wordt automatisch opgeroepen waar nodig, expliciet bij str(<obj>) en %s wordt automatisch opgeroepen waar nodig, explicrepr(<obj>) en %r Methode die niet extern gebruikt wordt (maar wel aangeeft dat een bewerking niet kan gebruikt worden in een specifieke context) Constructie class subkl(superkl):<def> obj. class isinstance(obj, klasse) Overerving : syntax klassedefinitie met overerving van superklasse de kleinste klasse waartoe obj behoort (cf. constructoroproep!) True/False naargelang obj element van de klasse Pagina 9 van 11

10 Hoofdstuk 7 issubclass(klasse1, klasse) <superkl>.<m_naam>(self[, args]) super(<subkl>, self).<m_naam>([args]) True/False naargelang klasse 1 subklasse van klasse 2 is expliciete oproep van methode uit superklasse idem Operator overloading (Magic Functions) Operator-uitdrukking vertaald naar methode-uitdrukking a + b a. add (b) a - b a. sub (b) a*b a. mul (b) a/b a. truediv (b) #div in Python 2.7 a//b a. floordiv (b) a%b a. mod (b) a**b a. pow (b) b a. matmul (b) a == b a. eq (b) a > b a. gt (b) a >= b a. ge (b) a < b a. lt (b) a <= b a. le (b) a!= b a. ne (b) -a a. neg () +a a. pos () len(a) a. len () abs(a) a. abs () int(a) a. int () long(a) a. long () float(a) a. float () complex(a) a. complex () bool(a) a. bool () oct(a) a. oct () hex(a) a. hex () a + b b. radd (a) a - b b. rsub (a) a*b b. rmul (a) a/b b. rtruediv (a) #rdiv in Python 2.7 a//b b. rfloordiv (a) a%b b. rmod (a) a**b b. rpow (a) a += b a. iadd (b) a -= b a. isub (b) a*=b a. imul (b) a/=b a. itruediv (b) #idiv in Python 2.7 a//=b a. ifloordiv (b) a%=b a. imod (b) a**=b a. ipow (b) Pagina 10 van 11

11 Hoofdstuk 8 Random Variabelen random.random() willekeurig reëel getal in [0, 1[, uniform verdeeld random.uniform(a, b) willekeurig reëel getal in [a, b[, uniform verdeeld random.normalvariate(m, s) willekeurig reëel getal, normaal verdeeld N(m, s) random.seed(int) initialiseer random generator met dit geheel getal random.randint(a, b) willekeurig geheel getal in [a, b], uniform verdeeld random.choice(a) willekeurig element uit de lijst a random.shuffle(a) permuteer a willekeurig (ter plaatse) np.random.random() 1 willekeurig reëel getal in [0, 1[, uniform verdeeld np.random.random(size = N) rij van N willekeurige reële getallen in [0, 1[, uniform verdeeld np.random.uniform(a, b) 1 willekeurig reëel getal in [a, b[, uniform verdeeld np.random.uniform(a, b, size = N) rij van N willekeurige reële getallen in [a, b[, uniform verdeeld np.random.normal(m, s, size = N) rij van N willekeurige reële getallen, normaal verdeeld N(m, s) np.random.randn(n) idem, maar N(0, 1) np.random.seed(int) initialiseer random generator met dit geheel getal np.random.randint(a, b, N) rij van N willekeurige gehele getallen in [a, b[, uniform verdeeld Np.random.random_integers(a, b, N) Rij van N willekeurige gehele getallen in [a; b], uniform verdeeld np.mean(rij) bereken gemiddelde van de rij np.std(rij) bereken standaardafwijking van de rij init (self, [args]) : initialisatie van object (constructor) <ob>. dict : dictionary met naam -> waarde paren van <obj> hasattr(obj_ref, naam) : True/False naargelang obj attribuut naam (string!) heeft property(<get>, <set>, <del>, <doc> : maakt een property met opgegeven getter/setter/del en doc-string call ([args]) callable(<obj>) : wordt automatisch opgeroepen bij <obj>([args]) : True/False naargelang <obj> callable is str ([args]) : wordt automatisch opgeroepen waar nodig! expliciet bij str(<obj>) repr ([args]) Operator overloading isinstance(obj, : levert de representatie van het object : impliciete oproep van magic functions : True/False naargelang object tot klasse behoort : methode is statisch Pagina 11 van 11