Cursus Python: 1ste bachelor Bio-ingenieur UGent - Jan Verwaeren
o Operatoren 2
o Gegevenstypes 3
o Variabele 3
o Built-in-functies 4
o Controlestructuren 6
o Lussen 7
o Functie schrijven 8
o Methoden 9
String 9
Lijst 10
Dictionary 12
Tuple 13
Algemeen 14
o Modules + tekst laten inlezen 14
o Homogene arrays 16
1D-arrays 16
2D-arrays 18
3D-arrays 21
Methode 22
o File input/ouput en Exception handling 24
Methodes 26
o Datavisualisatie met Matplotlib 26
Grafiek 27
Afbeelding 27
o Foutmeldingen 28
o Eigen bevindingen 29
o Algemene theorie over python 31
Ideale samenvatting voor open boek examen
1
, Operatoren
Klassieke operatoren
Binaire operatoren
+ plusteken of unaire plus om teken te wisselen
& AND 1 en 1 = 1, 1 en 0 = 0 0 en 0 = 0
- minteken of unaire min om teken te wisselen
| OR 1 en 1 = 1, 1 en 0 = 1 0 en 0 = 0
* vermenigvuldiging
∧ XOR 1 en 1 = 0 1 en 0 = 1 0 en 0 = 0
** macht pow()
~ not
/ deling
// gehele deling, rond af naar beneden (rest weg) → geeft altijd string
% geeft rest van een deling
== vergelijking
➔ Expressies
➔ Statement
5+4=9
a = …….
Operanden, operator, geretourneerd object
= is het toekennigsteken om een variabele een waarde te
geven
Operatoren werken op integers en floats
Rang Relationele operatoren
1. Haakjes (___) < kleiner dan
2. Macht **
3. Unair + en – <= kleiner of gelijk aan
4. Rest *, /, %, // > groter dan
5. Opt, aftrek + en -
>= groter of gelijk aan
== gelijk aan
!= niet gelijk aan
Op strings en lijsten werken enkel +, *, de in operator en de relationele operatoren
Concatentatie str1 + str2 = str1str2 list1 + list2 = list1list2 (grote lijst)
Duplicatie str * in = strstrstrstr.. list * int = [list, list, list, ….]
De in operator strsub in str? True/False element in list? True/False
Relationele operatoren op basis van id nummer (>, <, ==, …..) True/False (met functie id())
2
, Gegevenstypes
▪ Integer int geheel getal
▪ Float float kommagetal, 1ste getal na komma door,
▪ String str stuk tekst → begin en einde aangeduid met “, bij optelling worden strings aan elkaar gezet
elk karakter krijgt een index nummer startend bij 0, ook spatie is karakter
concateneren - str + str = strstr
dupliceren - str*int = strstrstr…
vergelijkingen - str == str of str > str → returns False, True (op basis van ID-nummer)
▪ Booleon bool twee opties: True ofwel False !!hoofdletter belangrijk: is_red = True, print(is_red) = True
hello = True -> hello is een boolean variabele
a = 4 >= 3 print(a) : True
p en q (= samenstellingen van stellingen, moet beide True zijn voor True te krijgen)
p niet q (p is True en q False zodat samengestelde True is)
hoofdlettergevoelig!!
Converteer nr bool → bool(__) → geeft altijd True behalve bij ““ en 0
▪ Range() Sequentie van gehele getallen in bepaald interval met bepaalde stap te maken
accepteert geen float waarden
▪ List lijst = [“ “, “ “,… ] geordend en wijzigbaar, kan verschillende types samen
Container datatypes
▪ Tuple kent meerdere waarden aan een variabele toe: variabele = (___, ___, ___) ronde haken
list, de haakjes errond zijn optioneel, kunt ook de waarden apart opvragen
zijn immutable: veranderd niet, worden ook als key bij dictionaries gebruikt
str = “Hey you” → tuple(str) = (‘H’, ‘e’, ‘y’, ‘ ‘, ‘y’, ‘o’, ‘u’)
▪ Dictionary dict variabele = {“key”:”value”, “key”:”value”,….}
collectie van key-value paren, niet geordend wel wijzigbaar
met dict(lijst) kan je een lijst omzetten naar dict
met lijst = [[key, value], [key, value],…]
▪ Set collectie die niet geordend maar wel wijzigbaar is
▪ NoneType
▪ np.ndarray
Variabele
Variabele = ____ (object met een waarde als string, float, integer, …..)
Je kan ook objecten zonder een variabele ingeven in een code maar het object zal niet opgeslaan worden
3
,Regels voor variabele:
▪ Geen cijfers als eerste karakter
▪ _ als spatie gebruiken
▪ Geen scheidingstekens, punctuatie of operatoren
▪ Mag geen keyword zijn (bv range)
Aliasing
➔ de waarde 2 wordt uit het werkgeheugen gewist = garbage collection
Aliasing wordt opgelost door swapping = tijdelijke variabele invoeren
Built-in-functies
▪ round()
round(argument, aantal cijfers na de komma)
▪ print()
print(argumenten, sep, end)
geeft tekst weer op scherm
argument moet tussen aanhalingstekens
dingen optellen in print functie → plakt alles aan elkaar, verhinderen door ,
print(“De getalwaarde is:”, variabele)
a, b, c stellen strings voor gekoppeld aan een variabele
print(a, b, c) abc
print(a, b, c, sep = “x”) axbxc
print(a, b, c, end = “xx”) a b cxx als je een end definieert zal de volgende regel er ook
aan geplakt worden, je kan dit oplossen door “\n” te
te zetten in plaats van end → krijgt nieuwe lijn, als je de twee prints
onder elkaar zet zonder end krijg je ook nieuwe lijn → \n is
de standaardwaarde van end
print(“Het is n\mooi weer) → (geen spatie achter n)
je kan ook sep = “\n” doen
met print(a,b,c,d, sep =”\n”) zet je elk element op een nieuwe regel
4
,▪ constructor
functie die bepaalde variabele omzet naar een bepaald type
variabele = soort_type(variabele) → zet de variabele om naar dat type
als je gewoon soort_type(variabele) doet zal dit niet opgeslaan worden
▪ input()
a = input(“___”) → vraagt aan gebruiker om iets in te geven, input wordt opgeslagen in variabele a
→ zorgt ervoor dat de variabele a een string bevat dus moet nog omzetten naar int of float voor berekening
▪ pow(getal, macht)
voor machtsverheffing
▪ math.sqrt()
berekent de vierkantswortel van de input
▪ abs()
absolute waarden
▪ min(__,__) en max(__,__)
haalt de min of max waarde uit de argumenten binnen de haken
▪ help(functie) help(module.functie)
geeft uitleg over de functie
▪ orde(variabele)
geeft de ASCII/unicode van een variabele → nodig voor bv boolean: “woord” < “kip” (true want code kleiner)
▪ type()
geeft het type weer van de input
▪ id()
geeft identificatienummer weer van een object in het werkgeheugen
▪ iter() en next()
itereren een object element voor element
element moet iterable zijn, zo is int, float, en bool niet iterabel
!! als je in een defenitie bv een string itereert, ken er dan een varaibele aan toe, anders verdwijnt deze
weer bv geïtereerde_string = iter(str)
▪ format()
zorgt ervoor dat een bepaalde tekst in het gewenste formaat wordt geprint
▪ range(start,stop,stappen)
bij ‘for i in range() gebruikt, start bij start en stopt net voor stop
5
,▪ enumerate(variabele,start_bij_nummer)
moet van een iterabel element zijn
print elk element onder elkaar met een getal waarde ervoor
0 ___
1 ___
2 ___
3 ___
!! deze functie print niet uit zichzelf dus moet een lus gebruikt worden
▪ Sorted(categorie)
haal elementen eruit die aan de categorie voldoen, alfabetisch, numeriek
reverse = True om volgorde om te draaien, dit kan ook met een String
▪ Len(variabele)
telt aantal elementen in lijst of karakters in string (spatie ook karakter, ook \n)
Controlestructuren
▪ if-else constructie
if ___ == ____:
print(__)
else:
print(__)
if is een voorwaarde, als aan deze niet voldaan is wordt overgegaan naar de else, indien wel stopt de
constructie en gaat het niet meer verder, doorloopt script van boven naar onder
je kan ook een if-else constructie nesten in een andere if-else constructie
je kan ook alleen een if gebruiken voor één voorwaarde die niet door else gevolgd wordt
▪ elif
kan hierdoor meerdere voorwaarden stellen
if ___ == ____:
print(__)
elif ___ == ____:
print(__)
else:
print(__)
6
, Lussen
Luscontrole (als je weet waar je uitkomt, hoeveel keer je de lus zal herhalen
For __ in __:
For loop.variabele in object
Break
Wanneer de functie bij break komt zal de lus gestopt worden
Continue
Wanneer aan een bepaalde voorwaarde voldaan is komt het programma bij continu, deze wordt geactiveerd
en zal alles eronder skippen en direct terug naar het begin van de lus springen. Dan wordt er verder gewerkt
met de volgende i, x, …
kan hiermee ook bepalen hoeveel keer een element voorkomt in een string of list bv
While lus (als je niet weet hoeveel keer je de lus zal moeten doorlopen)
While ___ ==, >=, <=, <, >, =! ___ (= bollean_expressie)
_______
Als de while-suite niet meer True teruggeeft wordt de lus gestopt
Door een geneste for/while lus in een while lus kun je een matrix bekomen
While-else
While i == ___:
_____
_____
Else: als niet meer aan de while voorwaarde voldaan is spring de lezer over naar else (zoals if-else)
7
,For-else
For ___ in ____:
_____
Else: als de for lus alle elementen heeft doornomen stopt die en voert die eenmalig de else uit
indien de for-lus met break gestopt wordt wordt de else niet meer uitgevoerd
Functies schrijven
We maken een functie omdat die niet standaard in python zit:
def functie_naam(argumenten, optionele argumenten):
(extra info)____
waarde = _____
return (waarde)
Na deze definitie kun je de functie terug oproepen en gebruiken als functie
Extra optionele argumenten
Wordt gezet op een standaardwaarde: variabele = ____
Als je de functie oproept en geen tweede argument ingeeft functie(_ , _) dan wordt de standaardwaarde
gebruikt
Je kan een functie-definitie ook in een andere definitie gebruiken
Je kan ook print waarden in de definitie steken zodat de functie automatisch print, ipv return-statements
Indien je dit niet doet, vergeet niet je functie te printen op het einde, anders worden geen waarden geretourneerd!
Kunt ook met meerdere return-waarden werken in combinatie met een if-else statement
➔ De return value staat dan op None
def functie_naam(argumenten, optionele argumenten):
(extra info)____
If ____:
return false bv
else: * haakjes eigenlijk niet noodzakelijk,
ook bij meerdere return waarden,
waarde = _____
als je meerdere waarden gebruikt
return (waarde)* bij 1 return kun je die adhv een
tuple ophalen (p172)
8
,De scope:
Lokale variabele : niet beschikbaar in de rest van het script, is bijvoorbeeld in de definitie gedefinieerd
Globale variabele : kan je gebruiken in functie, als je waarde variabele aanpast blijft deze aanpassing in de functie
Belangrijk dat je vragen in deelvragen op splitst en alles apart definieert + in elkaar invoegt (let op types)
Positionele argumenten
De argumenten die je in een definitie van een functie al gebruikt kan je ook bij de functieoproep gebruiken, waardoor
je ze in willekeurige volgorde kan zetten, !!moeten wel alle drie met argument_naam erbij, anders foutmelding
Anonieme functies = lambda functies = equivalent van een functie definiëren
functie_naam = lambda (argument1, argument2,..) : expressie
Methoden
String + p190
▪ str.upper() - alle letters worden hoofdletter van str
String methoden:
▪ str.lower() - alle letters worden kleine letters De oorspronkelijke string wordt NOOIT
veranderd, wordt gwn nieuwe
▪ str.capitalize() - eerste letter wordt hoofdletter variabele gecreëerd na de methode
▪ str.count() - telt hoeveel keer element (bij str letter) voorkomt
str.count(“substring”,(start ind, einde ind → 1 ervoor))
▪ str.format() - zorgt voor weergave van str in bepaald formaat
▪ str.split() - splitst een string in substrings en plaatst ze in
in een lijst, splitst standaard op de spaties 1 getal na komma
nieuwe splitsing defeniëren door split(“splitsplaatst”)
split(“seperator”, maxsplit = int), maxsplit zegt hvl max gesplits mag worden
. de standaardwaarde = -1 wat wil zeggen onbeperkt
() doet alle spaties, enters en tabs weg, als je (“ “) doet zal het enkel spaties wegdoen
Stel hebt lijst met [“jul 07”, ”aug 08”, ”sep 09”] dan kan je maand, getal = lijst.split(“ “) doen
en zo wordt elke eerste waarden aan maand gekoppeld, de tweede aan getal
of
9
, ▪ str2 in str1 - geeft True als str2 in str 1 zit → str2 is een subtring (“” altijd True), anders False
▪ str.find(substr) - geeft 1ste index van substring in string weer, indien meerdere substring, enkel van 1ste
ook hier kan gebruik gemaakt worden van optionele parameters voor start/stop index
▪ str.replace() - str.replace(“old”, “new”(, count) → elke “old” string wordt door “new” vervangen
count geeft aan dat bv enkel de 1ste old vervangen wordt, of bij bv 3 de 1ste, 2de en 3de
handige toepassing: remove: als “new” = “” → “old” karakters worden verwijderd
▪ str.strip(“__”) - verwijderd “___” vooraan en achteraan de string
indien leeg verwijderd het \n op het einde
▪ index nummer opvragen:
string en lijst genummerd van index nummer 0 → len(str) - 1
i en j zijn indexen in de string
Slicing lijst: elemen ▪ Laatste karakter str len(str) – 1 opvragen met str[len(str) - 1] of str[-1] (kan ook -2,…)
▪ Slicing (stuk eruit halen)
List[i:j] Str[i:j] geeft string van index i → index j - 1 terug
List[i:] Str[i:] geeft string van index i → einde str[-aantal:] als je niet weet hoe lang str is
List[:j] Str[:j] geeft string van begin → index j - 1
List[:] Str[:] geeft string van begin → einde
▪ Meervoudige gelijktijdige slicing
Al de karakters met de juiste index aan elkaar in nieuwe str
List[i:j:k] Str[i:j:k] sliced van i naar j in stappen van k
List[i::k] Str[i::k] als er geen j is, is j = len(string)
List[:j:k] Str[:j:k] als er geen i is, is i = 0
List[::k] Str[::k] sliced de gehele string in stappen van k en geeft die indexen aan elkaar terug
Kan ook negatieve stapgroote k als i > j → str[7,0,-1] wil zeggen van index 0 – 6 (omgekeerd)
i en j kunnen ook negatief zijn als i < j
Lijst
= geordende opeenvolging van elementen str = "woord oefening"
nieuwe = str[3:13:3]
Elementen kunnen verschillend type hebben #index 3, 6, 9, 12
Structuur: variabele = [4, “appels”, “2.14”] = L print(nieuwe)
Start bij index 0 >> roen
Hetzelfde geld voor de slicing regels van strings bv Lijst[index] = element met die index
Element in de lijst vervangen of verwijderen indien “” (lege string)
▪ For lus
for __ in __:
items worden herhaaldelijk uitgevoerd uit bepaalde collectie (variabele), 1 voor 1
10