Programmeren en Wetenschappelijk Rekenen in Python
Wi1205AE I.A.M. Goddijn, Faculteit EWI
29 april 2014
Bijeenkomst 3
Onderwerpen
Bespreking ISA-opdracht Geneste loops
Strings
File Input/Output
For-loops
vb3-1a.py: for-loop,een geneste loop
de naamgeving van variabelen en objecten is
‘casesensitive’
vb3-1b.py: for-loop, een geneste loop vb3-1c.py: for-loop Een fout zit in
een klein hoekje!
While-loops
vb3-2a.py: while-loop, initialisatie vb3-2b.py: while-loop, stopcriterium
Een fout zit in een klein hoekje!
Onderbreking van een loop
Met de opdracht break wordt een loop afgebroken en doorgegaan met de opdrachten die hierop volgen.
Met de opdracht continue worden de opdrachten binnen de loop die hierop volgen overgeslagen en verder
doorgegaan met de loop.
vb2-3a.py: for-loop, if-statement en break vb2-3b.py: for-loop, if-statement en continue
Probeer het gebruik van break en continue zoveel mogelijk te vermijden.
Strings
Een string wordt gebruikt om een tekst op te slaan en wel in de vorm van een rij karakters.
Zij kan worden opgevat kan worden opgevat als een lijst met als elementen karakters.
Er zijn wel verschillen o.a.: een string is onveranderlijk (“immutable”) en een lijst is veranderlijk (“mutable”) Een string wordt opgeslagen door middel van een geheeltallige code, meestal ASCII-code.
Zie: http://www.ascii-code.com/ voor een volledige tabel met codes.
De ASCII-code van een cijfer, letter, leesteken of speciaal karakter kan gevonden worden met de functie ord( ). Is de ASCII code bekend dan kan het bijbehorende karakter gevonden worden met de functie chr( ).
Speciaal zijn bijvoorbeeld:
Python Symbool Beschrijving chr(13) CR ‘Carriage return’
chr(10) LF ‘Line feed’
chr(9) Tab ‘Tabulator’
Een nieuwe regel wordt onder verschillende besturingssystemen anders verkregen:
OS Python Afkorting
MS-DOS/Windows chr(13)+chr(10) LF+CR
Unix/OS X chr(10) LF
Maar de volgende opdrachten zijn onafhankelijk hiervan:
“\ t” Tab
“\ n” ‘newline’
“\\” ‘backslash’
vb3-4.py: strings ,chr en ord
In-en Uitvoer (I/O)
Er zijn verschillende mogelijkheden om de beschikking te krijgen over de inhoud van een bestand (dit te ‘lezen’, tekst daar naar
‘weg te schrijven’ of daaraan ‘toe te voegen’):
f = open(”. . . .
| {z }
bestandsnaam
”,” . . . .
| {z } r(ead) w(rite) a(ppend) etc.
”)
code f.close( )
with open(”. . . .
| {z }
bestandsnaam
”,” . . . .
| {z } r(ead) w(rite) a(ppend) etc.
”) as f:
ingesprongen code
Opmerking
open is een functie die een fileobject (f) maakt, close is een methode bij een fileobject (functie die op een fileobject werkt).
Opmerkingen
Naast de modi ‘r’, ‘w’ en ‘a’ zijn er nog meer:
Modus Bestand wordt geopend voor:
r alleen lezen w alleen schrijven
a toevoegen
r+ lezen en schrijven w+ schrijven en lezen a+ toevoegen en lezen
Het bestand dat wordt ‘gelezen’ mag alleen ASCII-code bevatten en heeft bijvoorbeeld als extensies ‘dat’ of ‘txt’.
Op de plaats van de code moet aangegeven welk gedeelte van het bestand gelezen moet worden. Dat kan door gebruik te maken van de methoden methoden read, readline en readlines (functies werkend op een fileobject in dit geval f):
Wat wordt er gelezen?
f.read( ) het hele bestand
f.read(n) de eerste n karakters van het bestand f.readline( ) ´e´en regel van het bestand
f.readline(n) de eerste n karakters van een regel f.readlines( ) het hele bestand, de regels worden als
elementen opgeslagen in een lijst
Maar er kan ook met behulp van de methode write op de plaats van de code tekst worden weggeschreven. Als ‘str’ een string is dan wordt met de opdracht f.write(str) een nieuw bestand gemaakt en de ‘str’ weggeschreven. Bestaat het bestand al dan gebeurt dit aan het einde van het bestand.
Opmerking
Een nieuwe regel en spaties worden geteld als karakters. Een nieuwe regel wordt geteld als ´e´en karakter, Tab wordt geteld als het aantal spaties waar het voor staat (meestal 4).
Voorbeelden
vb3-5a.py: open en close
vb3-5b.py: opnieuw open en close
vb3-5c.py: open en het tellen van karakters vb3-5d.py: open en write
Nogmaals strings
In de volgende tabel staan een aantal methoden bij het object string (functies die op een string werken):
Methoden strip( ) split( ) upper( ) lower( ) count( ) find( ) replace( ) isalpha( ) isdigit( )
Is txt een string dan werkt bijvoorbeeld de methode strip( ) hierop door de opdracht txt.strip( )
Voorbeelden
vb3-6a.py: methoden bij een string vb3-6b.py: tekstanalyse
Jacco Hoekstra:
Programming and Scientific Computing in Python (Version 3.10),
Artikelnummer: 0691770043.
David C. Lay:
Linear Algebra and Its Applications (fourth edition), Pearson (2013),
ISBN-13: 978-1-292-02055-6.
James Stewart:
Calculus, Early Transcedentals (seventh edition), Cengage Learning (2012),
ISBN-13: 978-0-538-49887-6.