- Declaratief: voer kennis in over het domein en laat de computer met een algemene
oplossingsstrategie de taak uitvoeren
- Imperatief of Procedureel: vertel de computer stap voor stap wat het programma moet
doen
Declaratief programmeren is verdeeld in logisch programmeren en functioneel programmeren
Functioneel:
- Functioneel programmeren beschouwt een programma als een verzameling wiskundige
functies die gegeven een bepaalde input altijd dezelfde output geven
- Geen side effects zoals nieuwe waardes voor variabelen
Logisch programmeren
- Logisch programmeren beschouwt een programma als een verzameling feiten en regels
- Feit: het regent. Regel: als het regent word je nat. Conclusie: je wordt nat
- Je kunt het programma een vraag stellen (regent het? of: word je nat? ) en de computer
berekent het antwoord automatisch, gegeven de feiten en regels
Imperatief programmeren verteld de computer stap voor stap wat het programma moet doen
Python is imperatief
Variabelen
- Een van de belangrijkste programmeerconcepten: variabelen
- Een naam voor bepaalde data in de code
- Waarde kan veranderen
- Computationeel denken: code is een abstractie van een probleem
- Variabelen zijn cruciaal voor abstractie
Abstractie
- Algoritme: stappen om een taak uit te voeren
- Vaak: dezelfde taak in verschillende situaties
- Abstracte taak
- Gebruik variabele N in het algoritme
Variabelen in Python
- Naam = waarde
- A=3
- Beter: naam met duidelijke betekenis
- Aantal = 3
- Geen declaratie, geen datatype
- Technisch: verwijzing naar een of meer geheugenadressen
a = 3 betekent reserveer geheugenadres 948004445684 en 948004445685 voor variabele a
en schrijf de waarde 3 (00000000 00000011) naar die adressen
,Regels voor variabelenamen
- Niet elke naam voor een variabele is toegestaan
- Variabelen bestaan uit letters, cijfers en _
- Het eerste karakter moet een letter of underscore zijn (geen cijfer!)
- Variabelen zijn hoofdlettergevoelig
- Keywords uit de taal zijn niet toegestaan als variabelenaam
o If, or, and, import, etc.
o Wel toegestaan maar niet handig: print, input, exit
- Accenten, speciale tekens, ander alfabet mag ook
Volgorde
- Imperatief/procedureel programmeren: volgorde essentieel!
- Functies moeten worden uitgevoerd voordat het resultaat gebruikt kan worden
(bij declaratief programmeren mag dit wel)
Datatypes
- Variabelen in Python hebben een type
- Afhankelijk van de waarde
Designkeuzes Python
- Doelstelling: eenvoudig te gebruiken taal
- Datatypes zoveel mogelijk impliciet
- Een variabele kan van type veranderen
- In veel gevallen hoeft de gebruiker zich niet bezig te houden met types
Gebruik van types
- Soms types wel belangrijk voor de gebruiker
o Delen kan bij int en float, niet bij string en bool
o Lengte berekenen: alleen string
- Andere operaties zijn verschillend gedefinieerd
o Optellen voor ints: wiskundig optellen
- Maar: gebruiker doet dit meestal vanzelf goed
- Code die de lengte van een bool opvraagt komt weinig voor
Technische verschillen
- Python bepaalt het datatype op basis van de inhoud
- Elk type wordt anders opgeslagen in het geheugen
o Integer: 32 bits (4 bytes)
o Bool: 1 bit
- Geheugenoperaties en datatypes allemaal automatisch
- Anders dan eerdere talen (C, C++, Java)
- Automatisch geheugenmanagement vaak langzamer
,Type-conversie
- Soms handmatige conversie nodig
o Bijvoorbeeld combineren van strings en ints in een variabele
- Conversie-functies: int(), str(), float()
- Type opvragen met type()
- Let op dat conversie niet altijd mogelijk is
Rekenoperatoren
- Standaard operatoren
(+ - / *)
Gebruik rekenoperatoren
- In situaties waar je een getal kan gebruiken
- Variabele-toekenning
- Print-statements
- Datatypeconversie
- Etc.
- Kortere notatie om rekenen te combineren met variabele-toekenning: +=, -=
Haakjes
- Gebruik haakjes waar nodig
- Als iets tegen prioriteitsregels ingaan
- Binnen de groepen: links naar rechts
Getal representatie
- Integer: geheel getal, positief of negatief
- Geheugen: 1 bit positief/negatief, overige bits voor het getal
- Kommagetallen: twee mogelijkheden
- Fixed point notation: vast aantal bits voor integer-deel en decimaal deel
- Eigenlijk twee losse getallen
- Nadeel: geheugen voor integer-deel is beperkt terwijl decimaal deel vaak niet gebruikt
wordt
- 16 bits getal, 8 bits per deel, maximum 28 − 1 = 255
- 200.1 past hierin maar bv. 300.1 niet
- Het totaal aantal bits voor een getal kan niet tussendoor worden aangepast
, Floating point
- Fixed point maakt niet efficiënt gebruik van het geheugen
- Floating point: verschuivende grens tussen integer-deel en decimaal deel
- Meer bits nodig voor integer-deel: punt schuift op
- Minder precisie voor decimaal deel
- Voorbeeld: 101.234 (8 bits per deel) vs. 1012.23 (10 bits voor integer, 6 bits voor decimaal)
- In Python:
7/3.57
1.9607843137254903
782/3.57
219.04761904761907
42949672960/1.33
32292987187.969925
429496729600/1.33
322929871879.6992
Integers en floats
- Getal zonder punt: int
- Getal met punt: float
- Ints en floats samen worden altijd float
- Delen wordt altijd float, ook bij twee ints
- Exponent, modulus wordt float als een van beide getallen float is, anders int
- Integer delen wordt float als een van beide getallen float is
Precisie van floats
- Intern: decimalen opgeslagen als breuken in veelvouden van 2
- Handig met bits
- Iedere programmeertaal heeft dit probleem
- Speciale libraries voor infinite precision floating point
Voordelen van het kopen van samenvattingen bij Stuvia op een rij:
Verzekerd van kwaliteit door reviews
Stuvia-klanten hebben meer dan 700.000 samenvattingen beoordeeld. Zo weet je zeker dat je de beste documenten koopt!
Snel en makkelijk kopen
Je betaalt supersnel en eenmalig met iDeal, creditcard of Stuvia-tegoed voor de samenvatting. Zonder lidmaatschap.
Focus op de essentie
Samenvattingen worden geschreven voor en door anderen. Daarom zijn de samenvattingen altijd betrouwbaar en actueel. Zo kom je snel tot de kern!
Veelgestelde vragen
Wat krijg ik als ik dit document koop?
Je krijgt een PDF, die direct beschikbaar is na je aankoop. Het gekochte document is altijd, overal en oneindig toegankelijk via je profiel.
Tevredenheidsgarantie: hoe werkt dat?
Onze tevredenheidsgarantie zorgt ervoor dat je altijd een studiedocument vindt dat goed bij je past. Je vult een formulier in en onze klantenservice regelt de rest.
Van wie koop ik deze samenvatting?
Stuvia is een marktplaats, je koop dit document dus niet van ons, maar van verkoper timb3. Stuvia faciliteert de betaling aan de verkoper.
Zit ik meteen vast aan een abonnement?
Nee, je koopt alleen deze samenvatting voor €5,99. Je zit daarna nergens aan vast.