1.Deel 1 - basissyntax
1.1 Basis data types
Variabele: geheugenplaats waar tijdelijk informatie kan opgeslagen worden
Integers: gehele getallen
Float (Floating-point numbers): reële getallen
Complex: complexe getallen
String: een zin tussen “ “, of getallen maar wordt behandeld als een zin
Nuttige commando’s:
- int( )
- float( )
- complex( )
- list( )
- tuple( )
- set( )
- str( )
- eval( )
- end=” “, print dingen naast elkaar
- round(a,b) => rond getal a af tot b cijfers na de komma
- max(a,b) => neemt het grootste getal van a en b
- Min(a,b) => neemt het kleinste getal van a en b
- pow(a,b) => verheft a tot de b-de macht
Nuttige tekens in strings:
- \n zorgt voor een nieuwe lijn
- \t voegt een tab in
Booleans: Waar/vals waarden (True/False zijn gereserveerde keywords), type: bool.
1.2 Variabelen
Idem zoals eerste jaar. Enkel opgelet: deep copy: Waarom wordt er een deep copy gemaakt
van de string maar niet van de lijst?
- String/int/float/boolean verwijzen naar object met 1 waarde.
- Kopiëren van waarde is vanzelfsprekend bij een wijziging van de waarde.
- Samengestelde types (lijst/set/eigen gemaakt object): bevatten (mogelijks) meerdere
waarden.
- Geen eenduidig overzicht welke waarden moeten worden
behouden/aangepast.
Commando: import copy (dit moet bovenaan je code) en dan bij de kopieer bewerking zelf:
copy.deepcopy().
, 1.3 Composite data types
- Verzamelingen (sets): ongeordende collecties (maar wel itereerbaar). Alle elementen
zijn uniek (maar niet noodzakelijk van hetzelfde type). Mogen niet ‘veranderbaar’ zijn,
dus bv. geen andere sets of lijsten. Aan te maken met set() of {}, commando’s:
union(), difference(), intersection(), issubset() => formaat: set1.commando(set2) (we
kunnen ze ook simpeler schrijven als, op volgorde: |, -, &).
- Lijsten:
- Lists: Een collectie van eender welk type objecten in de volgorde waarin ze
worden meegegeven. Volledig geïndexeerd en makkelijk te navigeren: index
die begint vanaf 0, en wordt geschreven tussen [ ]. Geneste lijst: we kunnen
eender welk object in een lijst steken, dit kan dus ook een andere lijst zijn! Zo
kunnen we matrices vormen.
- Tuples: Gelijkaardig aan lijsten, maar niet-veranderbaar (mutable): kunnen
dus bv. wel in sets gebruikt worden, gebruiken dezelfde indexering als lijsten.
Gebruiken ronde haakjes bij aanmaken en komen vaak voor om bv. paren te
gebruiken (bv. key value pairs in dictionaries – zie later).
- Woordenboeken (dictionaries): kleine database waarbij 2 elementen met elkaar
overeenkomen bv apple en appel. notatie: {“...” : “...”, …..}. Technisch verwoord gaat
het om een sleutel-waarde (key-value) paar zoals misschien bekend uit databases:
sleutels zijn uniek, waardes kunnen uiteraard meerdere keren voorkomen, sleutels
moeten niet van hetzelfde type zijn (maar wel immutable).
- Zelfgemaakte klassen
Commando’s:
- add() => toevoegen van 1 of meerdere elementen
- remove() => verwijdert een element maar geeft een foutboodschap als het element
niet aanwezig is.
- discard() => probeert een element te verwijderen, of het aanwezig is of niet.
- pop() => verwijdert een willekeurig element (foutboodschap bij lege set).
- clear() => maakt de set leeg.
- sorted(lijst) => geeft een gesorteerde versie teruggeeft van het object, dit is een
eenmalige sortering.
- lijst.sort() => sorteert het object permanent.
Specifiek voor lijsten:
- append() => voegt 1 element toe aan het einde van de lijst (altijd gebruiken als het
over 1 element gaat, geen extend()).
- extend() => voegt meerdere elementen toe aan het einde van de lijst. De + []
operator doet hetzelfde als extend().
- insert(a,b) => voegt element b in de lijst op index a.
Specifiek voor dictionaries:
- items() => geeft de data als paren terug
- keys()/values() => geven de sleutels respectievelijk de waarden terug
- Let wel op: dict_items/dict_keys/dict_values objecten worden teruggegeven - deze
kunnen omgezet worden in bv. een lijst om makkelijk behandeld te worden.
- dict_1.update(dict_2) => voegt een nieuwe waarde-sleutel combo toe.
- del dict_1[key] => verwijdert een sleutel en bijgevolg de gelinkte waarde.