Algemeen. Opgemaakte tekst: de stringmethode format

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

PYTHON REEKS 1: BASICS. Mathias Polfliet

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1

Algemeen. Rorschachtest. Algemene info

Zestigdelige graden radialen honderddelige graden

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

Vakgroep CW KAHO Sint-Lieven

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

Trillingen en geluid wiskundig

Zoemzinnen. Algemene info. Functies met een variabel aantal argumenten

Een spoedcursus python

KENMERKENDE CIJFERS EN BENADERINGSREGELS

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

VAN HET PROGRAMMEREN. Inleiding

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

Onthoudboekje rekenen

OEFENINGEN PYTHON REEKS 1

II. ZELFGEDEFINIEERDE FUNCTIES

De TI-84 (TI-83) 1 Introductie

PYTHON REEKS 2: FUNCTIES. Mathias Polfliet

[8] De ene 1 is de andere niet

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

Geven we decimale getallen als invoer, dan past Maxima zich onmiddellijk aan en geeft ook decimale getallen als resultaat:

Algemeen. En nu eens helemaal ondersteboven. Algemene info. Oneindige lussen

Modelleren en Programmeren

Rekenkunde, eenheden en formules voor HAREC. 10 april 2015 presentator : ON5PDV, Paul

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

Bijsluiter Presets 2014 t.b.v. NLT-module Sound Design

1. Optellen en aftrekken

Wiskundige vaardigheden

Cirkel en cirkelsector

1.Tijdsduur. maanden:

Significante cijfers en meetonzekerheid

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

Rekentijger - Groep 7 Tips bij werkboekje A

Programmeren met Arduino-software

Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes

RekenTrapperS Cool 1.1

Willem van Ravenstein

Computervaardigheden I

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

Variabelen en statements in ActionScript

Basisvaardigheden algebra. Willem van Ravenstein Den Haag

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

Niveau 2F Lesinhouden Rekenen

APPLICATIEBOUW 2E COLLEGE: ONTWERPEN, GEBRUIKERSINTERFACES, VARIABELEN & EXPRESSIES. Onderdeel van SmartProducts

Hoofdstuk 1 Beweging in beeld. Gemaakt als toevoeging op methode Natuurkunde Overal

Hoe schrijf je de logaritmische waarden welke bij db s horen?

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Informatica: C# WPO 9

2 Meten Kaarten Materialen en technieken Meten en schetsen Praktijkopdrachten 2.16

Programmeermethoden NA. Week 5: Functies (vervolg)

REKENTECHNIEKEN - OPLOSSINGEN

Eindtermen wiskunde. 1. Getallen. Nr. Eindterm B MB NB Opm. B = behaald MB = meer behaald NB = niet behaald Opm. = opmerking

Significante cijfers en meetonzekerheid

GEDETAILLEERDE INHOUD

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

Hoofdstuk 1 Beweging in beeld. Gemaakt als toevoeging op methode Natuurkunde Overal

Python voor Natuur- en Sterrenkundigen Week 1

5 keer beoordeeld 4 maart Wiskunde H6, H7, H8 Samenvatting

Objectgericht Programmeren. (in Python)

DEC SDR DSP project 2017 (2)

Bij het cijferend optellen beginnen we bij de eenheden en werken we van rechts naar links:

Domeinbeschrijving rekenen

Inleiding Programmeren 2

OEFENINGEN PYTHON REEKS 6

slides12.pdf December 14,

MNEMOTECHNISCHE MIDDELTJES WISKUNDE. 2de 3de graad

Rekenen aan wortels Werkblad =

EXACT- Periode 1. Hoofdstuk Grootheden. 1.2 Eenheden.

De Sense HAT programmeren Je eerste computerprogramma

Foutenberekeningen. Inhoudsopgave

Programmeermethoden NA. Week 5: Functies (vervolg)

Niet-numerieke data-types

Informatica: C# WPO 11

WISKUNDE-ESTAFETTE Minuten voor 20 opgaven. Het totaal aantal te behalen punten is 500

2A LEERLIJN. leerjaar 1. tellen. optellen en aftrekken GROEPEREN VERMENIGVULDIGEN EN DELEN. plaats en waarde. handig rekenen 1 ORDENEN EN UITSPREKEN

Toetswijzer examen Cool 2.1

Inleiding tot de natuurkunde

Schooljaar: Leerkracht: M. Smet Leervak: Wiskunde Leerplan: D/2002/0279/048

Deel 1: Getallenkennis

BEGINNER JAVA Inhoudsopgave

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

Samenvatting Wiskunde Aantal onderwerpen

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

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

1 Rekenen in eindige precisie

Meetfouten, afronding, voorvoegsels en eenheden

LESFICHE 1. Handig rekenen. Lesfiche 1. 1 Procent & promille. 2 Afronden. Procent of percent (%) betekent letterlijk per honderd.

Hoofdstuk 1: Basisvaardigheden

WISKUNDE-ESTAFETTE 2012 Uitwerkingen. a b. e f g

INHOUDSTAFEL. inhoudstafel... 2

Trillingen en geluid wiskundig. 1 De sinus van een hoek 2 Uitwijking van een trilling berekenen 3 Macht en logaritme 4 Geluidsniveau en amplitude

Deel 1: Getallenkennis

Oefening 1. Welke van de volgende functies is injectief? (E) f : N N N : (n, m) 7 2m+n. m n. Oefening 2

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

Programmeren (1) Examen NAAM:

Transcriptie:

Algemeen Opgemaakte tekst: de stringmethode format Wanneer je een string op een bepaalde manier wil samenstellen uit vaste en variabele tekstfragmenten, dan kan het handig zijn om gebruik te maken van de stringmethode format. Je kunt deze methode aanroepen op een vaste string die als template fungeert. Elk variabel fragment wordt in de template aangeduid met een paar accolades ({}). Voor elk variabel fragment moet een argument doorgegeven worden aan de methode format. De methode zal de waarde van elk argument invullen op de corresponderende positie in de template, zodat een nieuwe (ingevulde) string ontstaat die door de methode wordt teruggegeven. In onderstaand codefragment definiëren we bijvoorbeeld drie variabelen x, y en som, waarbij som berekend wordt als de som van de variabelen x en y. De code maakt gebruik van de stringmethode format om een string samen te stellen van de vorm x + y = som, waarbij de posities x, y en sum worden ingevuld met de waarden van de gelijknamige variabelen. De string die wordt teruggegeven door de stringmethode format wordt dan uitgeschreven aan de hand van de ingebouwde functie print. >>> x = >>> y = 3 >>> som = x + y >>> print('de som van {} en {} is {}'.format(x, y, som)) De som van en 3 is 5 Een paar accolades in een templatestring wordt vaak een plaatshouder (of placeholder in het Engels) genoemd. Standaard wordt de eerste plaatshouder ingevuld met de waarde van het eerste argument dat wordt doorgegeven aan de stringmethode format, de tweede plaatshouder met de waarde van het tweede argument, enzoverder. We zeggen dan dat de plaatshouders positioneel ingevuld worden. De methode format biedt ondersteuning voor andere manieren om de plaatshouders in te vullen, en laat ook toe om meer gedetailleerde opmaak vast te leggen voor de waarden die op de posities van de plaatshouders moeten ingevuld worden. Voor meer details over de stringmethode format verwijzen we naar de The Python Standard Library. Floats uitschrijven met een vast aantal decimale cijfers (afgerond) Standaard schrijft de ingebouwde functie print floating point getallen uit met een hele reeks decimale cijfers. Soms wil je floating point getallen echter laten uitschrijven met een vast aantal decimale cijfers. Je zou ervoor kunnen opteren om gebruik te maken van de ingebouwde functie round die je toelaat om floating point getallen af te ronden tot een gegeven aantal decimale cijfers. >>> print(1 / 3) 0.3333333333333333 >>> print(round(1 / 3, )) 0.33 Het probleem met deze oplossing is dat er door afrondingsfouten bij de interne voorstelling van floating point getallen, toch getallen kunnen ontstaan die bij het uitschrijven niet het gewenste aantal decimale cijfers hebben. Een betere oplossing bestaat erin om de tekst die moet uitgeschreven worden, op te maken aan de hand van de stringmethode format. Binnen een paar accolades dat gebruikt wordt als plaatshouder in de templatestring kan je immers opgeven hoe de ingevulde waarde precies moet opgemaakt worden. Dit doe je door tussen de accolades een zogenaamde format specifier te plaatsen, die wordt voorafgegaan door een dubbelpunt (:) Om een waarde uit te schrijven als een floating point getal met een vast aantal decimale cijfers gebruik je de format specifier :.nf. Hierbij staat de letter f voor het opmaken van een floating point getal, en het getal n 1

voor het aantal cijfers na de komma. Hierbij wordt afronding gebruikt om de decimale cijfers te bepalen. Onderstaande code illustreert bijvoorbeeld hoe je een getal kan uitschrijven, afgerond tot op twee cijfers na de komma. >>> print('{:.f}'.format(1 / 3)) 0.33 Voor meer details over het gebruik van format specifiers verwijzen we naar de The Python Standard Library. Rest na gehele deling: gebruik van de module operator In Python kan je gebruik maken van de modulo operator (%) om de rest te bepalen na een gehele deling. Als beide operandi integers zijn, dan is het resulaat zelf ook een integer. Van zodra één van beide operandi een float is, dan is het resultaat zelf ook een float. >>> 83 % 10 3 >>> 8 % 10 >>> 83 % 10.0 >>> 8 % 10.0 Extra wiskundige functionaliteit: de math module De programmeertaal Python wordt bewust zo minimaal mogelijk gehouden. Er zijn echter mechanismen in de programmeertaal ingebouwd waarmee nieuwe functionaliteit aan de taal kan toegevoegd worden. Als je Python installeert worden er een aantal modules met bijkomende functionaliteit meegeleverd. Deze modules worden samen The Python Standard Library genoemd. De math module is één van die modules uit The Python Standard Library. Zoals de naam al doet vermoeden voegt die heel wat extra wiskundige functionaliteit toe aan Python. Voor je de functionaliteit uit een module kunt aanspreken, moet je die module eerst importeren. Hiervoor bestaan er twee manieren. Een eerste manier bestaat er de module op zijn geheel te importeren. Nadat je dit gedaan hebt, moet je namen van variabelen, functies of klassen uit de module laten voorafgaan door de naam van de module en een punt als je ze wilt gebruiken in je Python code. >>> import math >>> math.sqrt(16) # vierkantswortel 4.0 >>> math.log(100) # natuurlijke logaritme 4.60517018598809 >>> math.log(100, 10) # log10 >>> math.pi # nauwkeurige waarde van pi 3.14159653589793 Een tweede manier bestaat erin om de namen van variabelen, functies of klassen uit de module rechtstreeks te importeren in je Python code. Hierna kan je deze namen gebruiken zonder ze te laten voorafgaan door een extra prefix.

>>> from math import sqrt, log, pi >>> sqrt(16) # vierkantswortel 4.0 >>> log(100) # natuurlijke logaritme 4.60517018598809 >>> log(100, 10) # log10 >>> pi # nauwkeurige waarde van pi 3.14159653589793 Voor een volledig overzicht van de variabelen en functies die gedefinieerd worden in de math module, verwijzen we naar The Python Standard Library. Reële deling versus gehele deling Python maakt onderscheid tussen de reële deling (aangeduid door de operator /) en de gehele deling (aangeduid door de operator //). Bij reële deling is het resultaat altijd een float. Bij gehele deling hangt het gegevenstype van het resultaat of van het gegevenstype van de operandi. Als beide operandi integers zijn, dan is het resultaat ook een integer. Als één of beide operandi floats zijn, dan is het resultaat ook een float. >>> x = 8 >>> y = 3 >>> z = 4 >>> x / y # reële deling van twee integers.6666666666666665 >>> x // y # gehele deling van twee integers >>> float(x) // y # gehele deling van een float en een integer >>> x / z # reële deling van twee integers >>> x // z # gehele deling van twee integers Python beslist enkel en alleen maar op basis van de gebruikte operator om een reële of een gehele deling uit te voeren. Deze keuze hangt dus niet af van het gegevenstype van de operandi. >>> x = 7.3 >>> y = >>> x // y >>> y // x 0.0 >>> x / y 3.65 3

Hartslagen Algemene info Opmerkingen Machtsverheffing in Python Net zoals Python operatoren heeft voor de optelling (+) en de vermenigvulding (*), is er ook een operator voor de machtsverheffing: **. >>> 10 ** # 10 tot de tweede macht 100 >>> ** 3 # tot de derde macht 8 De diatomist Specifieke info Een cirkel met straal r heeft omtrek πr en oppervlakte πr. Tijdmeting op Mars Algemene info Gebruik van modulo en gehele deling voor omzetten van eenheden Stel dat een integervariabele seconden een tijdsduur uitdrukt in seconden. Dan kan je deze tijdsduur op de volgende manier uitdrukken in uren, minuten en seconden. >>> seconden = 13456 >>> uren = seconden // 3600 >>> minuten = (seconden // 60) % 60 >>> seconden = seconden % 60 >>> print('{} uren, {} minuten, {} seconden'.format(uren, minuten, seconden)) 34 uren, 17 minuten, 36 seconden Wijzers van de klok Algemene info Voorloopnullen toevoegen met stringmethode format Als je bij het omzetten van een getal naar een string wil zorgen dat de string een vast aantal karakters heeft (waarbij er eventueel nullen worden toegevoegd aan het begin van de string), dan kun je gebruik maken van 4

de stringmethode format en een bijhorende * format specifier. Format specifiers* worden altijd tussen het paar accolades geplaatst dat gebruikt wordt als plaatshouder in de template string. Een format specifier begint altijd met een dubbelpunt (:). Om een getal uit te schrijven dat een vast aantal posities lang is, gebruik je de specifier :0nd. De 0 staat er omdat we vooraan nullen willen toevoegen (je kan ook andere karakters toevoegen), de letter d staat voor digit (getal) en n voor de lengte die de string moet hebben. Als het getal dat je wil omzetten naar een string langer is dan de gewenste lengte, dan wordt het volledige getal overgenomen. In dat geval zal de string dus langer zijn dan het gewenst aantal karakters. >>> "{}".format() '' >>> "{:0}".format() '0d' >>> "{:0d]".format(34) '34' >>> "{:0d}".format(567) '567' >>> "{:06d}".format(89) '000089' Er zijn nog andere manieren om voorloopnullen te genereren. Zo kan je ook gebruik maken van de stringmethode zfill. Je kan ook het verschil tussen de huidige lengte en de gewenste lengte berekenen en dan weet je hoeveel nullen je moet toevoegen. Of je kan ook werken met een while lus die nullen blijft toevoegen totdat de string de gewenste lengte heeft. >>> gewenste_lengte = 3 >>> getal = str() >>> getal.zfill(gewenste_lengte) '00' >>> aantal_nullen = gewenste_lengte - len(getal) >>> aantal_nullen >>> '0' * aantal_nullen + getal '00' >>> while len(getal) < gewenste_lengte:... getal = '0' + getal... >>> getal '00' Opmerkingen Kleinste waarde bepalen De ingebouwde functie min kan gebruikt worden om het minimum van twee waarden te bepalen. >>> min(7, 3) 3 >>> min(3.14, 7.45) 3.14 Diezelfde functie kan ook gebruikt worden om het minimum van meerdere waarden te bepalen. 5

>>> min(7, 3, 8, 19,, 1) >>> min(3.14, 7.45, 17.35, 373.1,.34, 98.36).34 Absolute waarde De ingebouwde functie abs kan gebruikt worden om de absolute waarde van een getal te bepalen. >>> abs(4) 4 >>> abs(-4) 4 >>> abs(3.14159) 3.14159 >>> abs(-3.14159) 3.14159 Specifieke info Iedere positie van een wijzer op de klok kan uitgedrukt worden als het aantal graden van de hoek (in wijzerzin natuurlijk) die hij maakt met de richting die wordt aangegeven door 1 uur. Zo staat de grote wijzer om 3 uur bijvoorbeeld in een hoek van 90 ten opzichte van 1 uur. De hoek tussen de twee wijzers kan dan berekend worden als het verschil van hun posities uitgedrukt in graden. Figure 1: Hoeken 6