Föreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering

Relevanta dokument
Föreläsning 6 Programmeringsteknik och Matlab DD1312

Skapa hashtabell. En hashtabell kan ses som en lista där programmeraren associerar egna nycklar (index) till varje element som ska läggas i tabellen :

Föreläsning 13 Datalogi 1 DA2001

729G04 Programmering och diskret matematik. Föreläsning 7

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Laboration: Whitebox- och blackboxtesting

Ordlistor, filhantering och ut på webben. Linda Mannila

Idag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15.

Övning 1 - Abstrakta datatyper

Föreläsning 18 Filer och avbildningar

Använda Python Laboration 1 GruDat, DD1344

Skolan för Datavetenskap och kommunikation. Programmeringsteknik. Föreläsning 16

Datalogi för E Övning 3

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18

Python. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 15

Språket Python - Del 2 Grundkurs i programmering med Python

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

Tenta i Grundläggande programmering DD klockan

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Filer. DA2001 (Föreläsning 16) Datalogi 1 Hösten / 19

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Föreläsning 4 Programmeringsteknik DD1310. Felhantering. Syntax. try och except är reserverade ord som används för hantering av exekverings fel.

Grundläggande datalogi - Övning 4

TDP002 - Imperativ programmering

Erfarenheter från labben

Planering av ett större program, del 2 - for och listor. Linda Mannila

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Funktioner. Linda Mannila

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Text och strängindexerade fält Grundkurs i programmering med Python

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Grundläggande datalogi - Övning 2

Installera Anaconda Python

Grundläggande Datalogi

Uppgifter teknik HT17 (uppdaterad v. 40)

Föreläsning 14 Innehåll

Mer till P-uppgiften: Dokumentation. Nyheter. Algoritm för sökning. Mer hjälp. DD1311 Programmeringsteknik med PBL

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

Testdriven utveckling. Per Strandberg, Maj 2013

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Programmeringsteknik med C och Matlab

PROGRAMMERINGSTEKNIK FÖRELÄSNING 5

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Abstrakta datatyper Laboration 2 GruDat, DD1344

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Grundläggande datalogi - Övning 1

Föreläsning 2 Programmeringsteknik och C DD1316

Program. Kapitel make Program Interpreterande och kompilerande program

Övning 6. Komprimering, kryptering, dokumentering & testning

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Övning 1. Abstrakta datatyper. 1. Stacken. class Stack: """A representation of a last-in-first-out (LIFO) stack of objects."""

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 8: Listor

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

DD1314 Programmeringsteknik

TDP002 - Imperativ programmering

Föreläsnings 9 - Exceptions, I/O

729G04 Programmering och diskret matematik. Python 3: Loopar

Sätt att skriva ut binärträd

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

729G04 Programmering och diskret matematik

Introduktion till programmering D0009E. Föreläsning 9: Tupler och dictionaries

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Datalogi, grundkurs 1

Hashing Bakom kulisserna på Pythons dictionary

Föreläsning 7: Filer

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

Språket Python - Del 1 Grundkurs i programmering med Python

Några saker till och lite om snabbare sortering

Tentamen i Introduktion till programmering

Övning 6. Ali Tofigh 24 Oktober, 2006

Programmering grundkurs

Introduktion till programmering och Python Grundkurs i programmering med Python

Standardfilerna Input och Output

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Standardfilerna Input och Output. Filer... Filer... vanlig utbyggnad för ökad dynamik. Filer... filtyper

SKYDD 800 är ett kopieringsskydd för flexskivor till ABC 800, ABC 802 och ABC 806.

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 4 december 2015 Sida 1 / 26

DD1320 Tillämpad datalogi. Lösning (skiss) till tenta 20 okt 2011

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Mer grafik. Jan Erik Moström

Strängar. TDDD64 Programmering i Python Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Hashing Bakom kulisserna på Pythons dictionary

Datastrukturer. föreläsning 6. Maps 1

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

Hashing Bakom kulisserna på Pythons dictionary. Leta i listor Osorterade listor. Leta i listor Sorterade listor

TDP002 - Imperativ programmering

Transkript:

Föreläsning 5 Programmeringsteknik DD1310 Doctest Modulen doctest Man kan använda modulen doctest för att testa programmet på ett mer systematiskt sätt. Så här gör man: 1. Skriver programmets funktioner 2. Skriv testfallen i en fil 3. Kör filen med testfall 4. Vid fel åtgärdar man felen i funktionerna 5. Gör om punkt 3 och 4 tills man får rätt Betrakta funktionen kant som definierats i filen pythago.py. Funktionen beräknar kanten av en rätvinklig triangel givet hypotenusan och den andra kanten. def kant(hyp, knt1): a =knt1**2 b =hyp**2 knt2 =(a-b)**0.5 return knt2 1

I filen pythago.doctest skriver vi följande testfall: >>> import pythago >>> pythago.kant(5, 3) 4.0 Sedan kör vi testfallet med följande kommando: python3 m doctest pythago.doctest Datorn kommer med meddelandet på nästa bild! *************************************** File "pythago.doctest", line 2, in pythago.doctest Failed example: pythago.kant(5, 3) Expected: 4.0 Got: (2.4492935982947064e-16+4j) *************************************** 1 items had failures: 1 of 2 in pythago.doctest ***Test Failed*** 1 failures. 2

Åtgärda felet def kant(hyp, knt1): a = knt1**2 b = hyp**2 knt2 = (a-b) (b-a) **0.5 return knt2 Öppna fil En fil kan öppnas för olika ändamål: För läsning: file = open( filename.txt, r ) För skrivning (skriver över befintlig fil) file = open( filename.txt, w ) För tillägg till slutet av filen: file = open( filename.txt, a ) Ytterligare alternativ r+, w+, a+ fungerar som utan plus fast man kan både skriva och läsa. Läs från öppen fil Hela filen: contents = file.read() Bestämt antal tecken: fivechars = file.read(5) En rad: oneline = file.readline() Alla rader till en lista: alllines = file.readlines() 3

Skriv till öppen fil och stäng Skriv sträng file.write( Hejsan hoppsan ) Elementen i en lista: file.writelines(stringlist) När du läst eller skrivit klart från/till en fil så stänger du den: file.close() En hashtabell kan ses som en lista som indexen är inte förbestämd utan man väljer ett namn även för indexen: Nycklar: 5 1 12 Element: maj jan dec Skapa hashtabell Skapa med måsvingar,{}, och par av nyckel och värde, enligt nedan: Ht = {1: jan, 12: dec, 5: maj } Skapa med dict(): ht=dict() ht[1]= jan ht[12]= dec ht[5]= maj 4

Identifiera element Element identifieras med nyckelobjekt, men det måste finnas ett objekt lagrat med given nyckel: print(ht[1]) print(ht[5]) print(ht[15]) Vad skrivs ut av ovanstående? jan maj ht[15] orsakar att programmet kraschar! Kontrollerad åtkomst Alternativ 1: Kontrollera förekomst innan åtkomst. if 15 in ht: x = ht[15] Alternativ 2: Använd get() med defaultvärde: x = ht.get(15, FINNS EJ! ) y = ht.get(15) Vilka värden tilldelas x och y om 15 inte finns i tabellen? x blir FINNS EJ! y blir None Ytterligare operationer Antalet element i tabellen: len(ht) Ta bort element: del ht[12] Kopiera hela tabellen: htcopy = ht.copy() 5

, är väldigt lämplig för snabba sökningar Filer kan öppnas för olika ändamål, läsning, skrivning och tilläggning av data Använd doctest för alla dina funktioner (dock inte för de som har med input och print) för att göra en systematisk testning av ditt program. 6