OEFENINGEN PYTHON REEKS 1



Vergelijkbare documenten
OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1

PYTHON REEKS 1: BASICS. Mathias Polfliet

PYTHON REEKS 2: FUNCTIES. Mathias Polfliet

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

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

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

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

Variabelen en statements in ActionScript

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

Vakgroep CW KAHO Sint-Lieven

KENMERKENDE CIJFERS EN BENADERINGSREGELS

Modelleren en Programmeren

Lab Webdesign: Javascript 3 maart 2008

[8] De ene 1 is de andere niet

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:

OEFENINGEN PYTHON REEKS 6

Informatica: C# WPO 11

Een korte samenvatting van enkele FORTRAN opdrachten

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Programmeren met Arduino-software

BEGINNER JAVA Inhoudsopgave

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

Programmeren in Java les 3

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

VAN HET PROGRAMMEREN. Inleiding

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

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

Programmeermethoden NA. Week 5: Functies (vervolg)

TELEPORTEREN MET VARIABELEN

Modelleren en Programmeren

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

Informatica: C# WPO 9

Programmeermethoden NA. Week 5: Functies (vervolg)

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

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

VBA voor Doe het Zelvers deel 20

PHP. Les 4 : Variabelen

OEFENINGEN PYTHON REEKS 5

Dynamische websites met PHP (basis) Karel Nijs 2010/09

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

DE INTERACTIEVE SHELL

Practicum Programmeerprincipes

Inleiding Programmeren 2

Propositielogica Het maken van een waarheidstabel

GEDETAILLEERDE INHOUD

Een spoedcursus python

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

1 Inleiding in Functioneel Programmeren

Inleiding Programmeren 2

Zelftest Inleiding Programmeren

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


PROGRAMMA'S SCHRIJVEN

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

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

Objectgeoriënteerd Programmeren: WPO 1

Blog-Het gebruik van variabelen in Excel VBA

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

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

REKENTECHNIEKEN - OPLOSSINGEN

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

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

Opgaven. Python Assessment

SQL datadefinitietaal

Practicum Programmeerprincipes

Uitwerkingen. Python Assessment

Programmeermethoden NA

Zoemzinnen. Algemene info. Functies met een variabel aantal argumenten

Hoofdstuk 5: Functies voor getallen en teksten

Niet-numerieke data-types

Inleiding Programmeren 2

Arduino Zuid-Limburg Workshop 2

Programmeren met Python

SEQUENTIE-STRUCTUUR. Oefening: Dichtheid

Inleiding Programmeren 2

Hoofdstuk 0. Van Python tot Java.

extra oefening algoritmiek - antwoorden

Programmeermethoden NA. Week 6: Lijsten

Modelleren en Programmeren

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Onthoudboekje rekenen

Inleiding tot Func.oneel Programmeren les 3

Informatietechnologie 2. JavaScript. Inleidende les. Kristof Michiels

Instellen Finchline Topics & Booleaans zoeken

De keuzestructuur. Versie DD

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

II. ZELFGEDEFINIEERDE FUNCTIES

Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

Programmeren (1) Examen NAAM:

Een computerprogramma is opgebouwd uit een aantal instructies die op elkaar volgen en die normaal na elkaar uitgevoerd worden.

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Objectgericht programmeren 1.

Transcriptie:

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 tot de reële getallen weliswaar met beperkte nauwkeurigheid (VB: 3.1415; men gebruikt een PUNT in plaats van een komma) en zijn er strings die een opeenvolging van karakters voorstellen en aangeduid worden tussen of tekens (VB: pi ). Python respecteert net als andere programmeertalen de volgorde van bewerkingen zoals in de wiskunde: eerst de zaken binnen de haakjes, vervolgens machten, dan product en deling en vervolgens som en aftrekking. Verder bestaan er ook speciale operatoren zoals bijvoorbeeld de modulo operator aangeduid als % die de rest na deling teruggeeft. a) Bekijk de volgende expressies. Voorspel wat het resultaat zal zijn als je ze ingeeft in Python. Denk goed na over het type dat de uitkomst zal krijgen. Noteer eerst de uitkomst die je verwacht op dit blad, voer daarna de bewerking uit in de editor. Expressie Voorspelde uitkomst Python uitkomst 1 + 2 * 3 (1 + 2) * 3 2 ** 4 13 % 5 7 / 2-7 / 2 7.0 / 2 7 / 2.0 7 // 2 9 % - 2 pom * 4 blablabla / 3 2+ print( Hello world ) print(dit is geen string) print Dit is een print statement In Python wordt het (data)type automatisch vastgesteld (=dynamic typing) aan de hand van de waarde. Zo is een geheel getal een integer, een reëel getal een float, een opeenvolging van karakters een string, etc. Er moet bij deze dynamic typing opgelet worden of het toegekende type voldoet aan de verwachtingen. Zo zal een deling tussen 2 integers bij Python 2 opnieuw een integer opleveren en zal het resultaat dus behoren tot de gehele getallen; iets wat niet altijd gewenst is. Het type kan gecontroleerd worden door gebruikt te maken van de functie type(...). b) In Python bestaan er manieren om van type te veranderen. Voorspel wat het resultaat van de volgende expressies zal zijn als je ze ingeeft in Python. Denk goed na over het type dat de uitkomst zal krijgen. Noteer eerst de uitkomst die je verwacht op dit blad, voer daarna de bewerking uit in de editor.

Expressie Voorspelde uitkomst Python uitkomst abs(- 2) float(2) float(7/2) float(7) / 2 int(2.6) round(2.6) round(2.5) round(2.4) c) Zoek de oplossing van de volgende vraagstukken door middel van de berekeningen in te geven in Python. Let erop dat je de juiste types gebruikt! 1. Het volume van een bol met straal r is!! πr!. Wat is het volume in cm³ van een bol met straal 5 cm als π= 3.14159? Hint: 392.6 cm³ is NIET juist! 2. Tom heeft deelgenomen aan een loopwedstrijd over 6 mijl in New York. Hij legde de afstand af in 53 minuten en 30 seconden. Aan welke snelheid, uitgedrukt in km/u, liep Tom gemiddeld als je weet dat één mijl gelijk is aan 1.61 kilometer? Opgepast: Er worden momenteel 2 verschillende versies van Python gebruikt. Python 3 is de recentste en heeft enkele kleine maar belangrijke wijzigingen waardoor compatibiliteit niet gegarandeerd is. Veel externe bibliotheken (voorgeprogrammeerde functies) zijn beschikbaar bij Python 2 maar nog niet altijd bij Python 3. Daarom wordt Python 2 nog veelvuldig gebruikt voor complexe projecten. Deling en de print functie behoren tot de meest merkbare verschillen tussen beide Python versies. Python 2 output Python 3 output print( Hello world ) Hello world Hello world print Hello world Hello world Syntax Error 5/2 2 2.5 5//2 2 2 11.0/2 5.5 5.5 float(9)/2 4.5 4.5 3/float(2) 1.5 1.5 d) Maak aan de hand van de hierboven uitgelegde verschillen tussen Python 2 en Python 3 de volgende opgaven. Welke expressies zijn compatibel en welke niet? Expressie Python 2 resultaat Python 3 resultaat (afleiden uit bovenstaande tabel) 7 / 2 Compa- tibel?

- 7 / 2 7.0 / 2 7 / 2.0 7 // 2 print( Hello world ) print Dit is een print statement We maken in deze oefeningensessies nog steeds gebruik van Python 2 wegens de (momenteel) betere ondersteuning van externe bibliotheken. Probeer met oog op de toekomst jullie code zodanig te schrijven dat deze zowel met Python 2 als met Python 3 werkt. Enkele regels om code op beide versies te laten werken: Gebruik de print() functie in plaats van de print statement die niet meer werkt in Python 3. Let steeds op bij deling! Zorg dat minstens 1 van beide getallen van het type float is om een float als resultaat te krijgen. Gebruik floor division // indien een int (afgerond naar beneden) gewenst is. Vraag 2: Booleaanse en conditionele logica Het boolean type heeft True en False als mogelijke waarden. Let hierbij op dat de eerste letter een hoofdletter is en dat er geen leestekens voorkomen; anders is het een string. Een boolean is een type dat enkel de waarden True en False (zonder aanhalingstekens en met hoofdletter) kan aannemen. De booleaanse operatoren bestaan uit and, or, en not. De not operator keert de waarde om: True wordt False en vice versa. Bij and moeten alle waarden waar zijn opdat het antwoord waar zou zijn; bij or moet slechts één waarde waar zijn. Relationele operatoren (conditional operators): groter dan > of gelijk >=, kleiner dan < of gelijk <=, is gelijk aan == (dubbel anders variabele toekenning) en is niet gelijk aan!= geven steeds een boolean terug. a) Voorspel wat het resultaat van de volgende expressies zal zijn als je ze ingeeft in Python. Noteer eerst de uitkomst die je verwacht op dit blad, voer daarna de bewerking uit in de editor. Expressie not False True and False True or False False or not False ((not True) or False) and (not ((not False) or True)) not True or False and not not False or True 3 > 5 2 <= 2 abc < bcd Voorspelde uitkomst Python uitkomst

We gaan nu niet meer in de shell werken maar alle code schrijven in een nieuw Python document. Maak eerst een nieuw document aan in Wing (Ctrl + N). Dit document sla je vervolgens op als een bestand met extensie py (noem het bijvoorbeeld r1v1.py ). Sla dit bestand bij voorkeur op in een nieuwe map python op de Z: (netwerk)schijf. Het programma kan je uitvoeren via Run. Let op: dit zal alle code in het werkschrift evalueren, maar niet automatisch het resultaat weergeven zoals wel gebeurde toen je in de shell werkte. Je zal dus telkens de print(...) functie moeten gebruiken als je een waarde wilt zien verschijnen in de shell. Voer de berekeningen voor vraag 1c nu opnieuw uit maar door gebruik te maken van een uitgevoerd python bestand. Vraag 3: Variabelen Variabelen zijn namen voor waarden die zich bevinden in het geheugen. Een waarde wordt toegewezen (=assignment) aan een variabele door een = teken (VB: degrees_celcius = 26). Deze variabele degrees_celcius kan nu gebruikt worden in een expressie en zal omgezet worden naar de waarde 26. a) Maak twee nieuwe variabelen aan met naam pi en r, dewelke je de respectievelijke waarden 3.14159 en 5 toekent. Bereken nu opnieuw het antwoord op vraag 1c punt 1 waarbij je de nieuwe variabelen gebruikt voor je berekening. b) Een variabele heeft geen vaste waarde, daarom noemen we het ook variabele. Na een eerste assignment kan je de waarde van de variabele overschrijven door er een andere waarde aan toe te kennen, t.t.z. een nieuwe assignment te doen. Maak twee nieuwe variabelen: x met waarde 4 en y met waarde 5. Bekijk nu de drie expressies in de tabel hieronder. Schrijf eerst op dit blad op wat je denkt dat Python zal antwoorden als je de expressies één voor één ingeeft. Nadien doe je dit effectief in de editor. Expressie Voorspeld antwoord Python antwoord x = x + y x y Vraag 4: Strings Een string is een type bestaande uit een opeenvolging van karakters. De waarde van een string bevindt zich steeds tussen of aanhalingstekens. a) Definieer twee string- variabelen: naam en voornaam. Je kent deze variabelen je eigen achternaam en voornaam als waarde toe. Maak nu een derde variabele aan en probeer hierin je volledige naam op te slaan zonder dat je hem moet hertypen. Let op: tussen je voornaam en je achternaam staat een spatie! b) Creëer de string bom bom bom bom bom bom bom bom bom bom door slechts 1x het woordje bom te typen. Maak gebruik van de * operator.

Vraag 5: Lijsten en Tupels De types list en tuple zijn types die meerdere objecten van om het even welk type in een bepaalde orde kunnen bevatten. Deze objecten worden elementen genoemd en kunnen aangesproken door te refereren naar een index, gaande van 0 tot de lengte 1 (VB: mylist[1] geeft het 2 e element terug). Een list is muteerbaar (inhoud veranderbaar) en gebruikt vierkante haakjes (VB: [1,2,3] ) terwijl een tuple niet munteerbaar is en ronde haakjes gebruikt (VB: ( a, b, c ) ). a) Definieer een variabele mylist en sla hierin een lijst op die de eerste 5 letters van het alfabet bevat. b) Wijzig het derde element uit mylist door de letter z en print de lijst af ter controle c) Maak een nieuwe variabele mylist2 en sla hierin een lijst op die twee strings en een integer bevat, namelijk jouw voornaam, jouw achternaam en jouw leeftijd. Print deze variabele af. Voeg nu de twee lijsten samen en sla het resultaat op in een nieuwe variabele mylist3. Print mylist3 af ter controle. d) Idem aan vraag 5a), maar nu maak je een tupel in plaats van een lijst (gebruik hiervoor ronde haken ipv vierkante). Wat gebeurt er als je nu net zoals in vraag 5b) de waarde van het derde element wilt wijzigen? Vraag 6: Een eerste functie Functies in programmeertalen zijn vergelijkbaar met functies in wiskunde. Beide hebben één of meerdere argumenten waarop bewerkingen worden uitgevoerd om tot een resultaat te komen. VB in wiskunde: z = f x, y = zou de functie als volgt zijn: def pythagoras(x, y): resultaat = (x**2 + y**2)**0.5 return resultaat x! + y! waarbij x en y het argument zijn en z het resultaat. In Python De vaste structuur van een functie bestaat steeds uit def functienaam(argumenten): waarna er wordt geïndenteerd (ingesprongen). Een return wordt gebruikt indien de functie een waarde (resultaat) moet teruggeven. Over het algemeen valt bij functies return sterk te verkiezen boven print. Functies schrijven we standaard bovenaan in het python document. Dit hoeft echter niet, maar onthoud dat je een functie pas kunt aanroepen in code die ONDER de functie- definitie in het document staat. Functies en variabelen die gedefinieerd zijn in een ander werkschrift of bibliotheek (VB math bibliotheek) kan je beschikbaar maken door middel van de IMPORT functie. Algemene Python functies zoals print() zijn altijd beschikbaar. a) Definieer in dit werkschrift een functie die een ingegeven temperatuur omzet van Celsius naar Fahrenheit: =!! + 32. Test deze functie door ze op te roepen in het document onder de functie- definitie. Nadat je het programma hebt uitgevoerd (via run ) kan je de functie ook oproepen in de shell. Probeer dit eens!

b) Schrijf een functie die teruggeeft of een bepaald jaartal een schrikkeljaar is of niet. Een schrikkeljaar is deelbaar door 4, maar niet deelbaar door 100. Indien het jaar deelbaar is door 400 dan is het weer wel een schrikkeljaar. Zorg ervoor dat het resultaat een boolean is. c) Schrijf een functie waaraan je twee jaartallen kunt meegeven. De functie geeft aan of er minstens één van de twee jaren een schrikkeljaar is. Tip: je kunt de functie die je in vraag 6b) hebt gemaakt gebruiken door hiernaar een functieaanroep te doen, zo kun je bestaande functies hergebruiken zonder alles te moeten copy- pasten met alle mogelijke problemen van dien. Vraag 7: Methodes Sommige types die in Python worden gebruikt bieden de programmeur methodes aan. Deze kan je oproepen door middel van een. achter een variabele van het desbetreffende type. a) Definieer eerst een nieuwe lijst: mylist = [100,200,400,500]. Nu willen we op de derde plaats in de lijst de waarde 300 toevoegen. Probeer dit te verwezenlijken door gebruik te maken van de methode insert die beschikbaar is in het lijst- type (arg: index, waarde). Daarna voeg je aan de lijst de waarde 1000 toe door middel van de methode append (arg: waarde). Ten slotte print je de gesorteerde lijst af met de methode sort (geen arg). b) Sla de volgende zin op in een nieuwe string- variabele: Zeven Zottegemse zotten zullen zes zomerse zondagen zwemmen zonder zwembroek. a. Tel het aantal woorden in de zin. Hint: een string heeft een methode split die een lijst teruggeeft met woorden gescheiden door spaties. len(mylist) geeft je de lengte van de lijst b. Vervang voor elk woord de eerste letter door een p. Hint: een string heeft een methode replace(old,new) die een substring old vervangt door de substring new. Let op: deze methode is hoofdlettergevoelig!