Föreläsning 6 Programmeringsteknik och Matlab DD1312

Relevanta dokument
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

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

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

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

Föreläsning 18 Filer och avbildningar

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

Ordlistor, filhantering och ut på webben. Linda Mannila

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

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

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

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

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo

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

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

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

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?

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

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

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

Numeriska Metoder och Grundläggande Programmering för P1, VT2014

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

Den klassiska programmodellen. Introduktion till programmering D0009E. Föreläsning 11: Filer och undantag. Filsystem. Interaktiva program.

Föreläsning 2 Programmeringsteknik och C DD1316

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

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

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

TDP002 - Imperativ programmering

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Tentamen i Introduktion till programmering

Övningsuppgifter kapitel 8

Objektorienterad programmering

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel

Föreläsning 3-4 Innehåll

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

Datalogi, grundkurs 1

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

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

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Föreläsning 14 Innehåll

TDDC77 Objektorienterad Programmering

Programmering för språkteknologer II, HT2014. Rum

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

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Felhantering TDDD78, TDDE30, 729A

Att skriva till och läsa från terminalfönstret

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

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Några saker till och lite om snabbare sortering

Föreläsning 9-10 Innehåll

Datastrukturer. föreläsning 6. Maps 1

Introduktion till programmering SMD180. Föreläsning 11: Filer och undantag

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

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

Programmering för språkteknologer II, HT2011. Rum

Testning av program. Verklig modell för programutveckling

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

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

Tentamen Grundläggande programmering

TDDE44 Programmering, grundkurs

Selektion och iteration

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

Övningsuppgifter #11, Programkonstruktion och datastrukturer

Laboration: Whitebox- och blackboxtesting

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016

Pythons standardbibliotek

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

TDP002 Imperativ programmering

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

Klassen javax.swing.timer

TDP002 - Imperativ programmering

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

Fördjupad Java. Undantagshantering. Fel

Hashing Bakom kulisserna på Pythons dictionary

Programkonstruktion och. Datastrukturer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

DD1314 Programmeringsteknik

TDP002 - Imperativ programmering

Föreläsning 9 Innehåll

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Grundkurs Programmering

Idag: Par och listor. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv.

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Idag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29

Föreläsning 6: Metoder och fält (arrays)

729G06 Programmering och logik. OOP: Klassdiagram, arv Allmänt: Undantagshantering

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Transkript:

Föreläsning 6 Programmeringsteknik och Matlab DD1312 Hashtabeller Funktioner filer särfall (Hashtabell) En hashtabell kan ses som en lista där programmeraren associerar egna nycklar (index) till varje element som ska läggas i tabellen : Nycklar: 5 1 12 Element: maj jan dec 1/20 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 2/20 1

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? 3/20 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) Vad får x och y för värde om 15 inte finns i tabellen? 4/20 Skapa hashtabell från listor Hashtabell kan skapas från två listor som att dra ihop ett blixtlås: keys= [1,12,5] values=[ jan, dec, maj ] parvis=zip(keys,values) ht=dict(parvis) zip 1 12 jan dec 5 maj 5/20 2

Listor med nycklar och värden Metoden keys() returnerar en lista med alla nycklar Metoden values() returerar en lista med alla värden keylist = ht.keys() valuelist = ht.values() 6/20 Ytterligare operationer Antalet element i tabellen: len(ht) Ta bort element: del ht[12] Kopiera hela tabellen: htcopy = ht.copy() 7/20 Listor och for lista = 3*[2] #skapar en lista med 3 matris=4*[3*[2]] matris[0][1]= 5 Vad skrivs ut? Varför? Rita en minnesbild som kan förklara detta. 8/20 3

matris Minnesbilder matris 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 9/20 Lösning matris=[3*[2] for i in range(4)] matris[0][1] = 5 Vad skrivs ut av ovanstående kod? 10/20 Med kan man skapa anonyma funktioner x= a,b: a*b+b print x(2,3) Vad skriver ut av ovanstående? 11/20 4

Ö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. 12/20 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() 13/20 Skriv till öppen fil och stäng Skriv sträng file.write( Hejsan hoppsan ) Elementen i en lista: file.writelines() När du läst eller skrivit klart från/till en fil så stänger du den: file.close() 14/20 5

Exception try och except är reserverade ord som används för hantering av exekveringsfel. plista= ['s','v','m','mp','fp','c','kd'] try: i=int(raw_input('ange index: ')) parti=plista[i] except: print 'Nagot fel intraffade' 15/20 try: Syntax Kod som kan orsaka något typ av exekveringsfel except: Kod som exekveras om och endast om det blir något fel i kodblocket efter try 16/20 Så här går det till Kod i blocket mellan try: och except: börjar exekvera, men så fort ett fel uppstår i någon rad avbryts exekveringen direkt, resterande rader i blocket exekveras inte och koden som finns i blocket efter except: börjar exekvera i stället. 17/20 6

Mer detaljerad pista= ['s','v','m','mp','fp','c','kd'] try: i=int(raw_input('ange index: ')) parti=plista[i] except IndexError: print 'ogilltigt index' except ValueError: print 'index maste var ett tal' except: print uppstod något tokänd fel! 18/20 Typ IOError IndexError KeyError TypeError ValueError ZeroDivisionError Olika typ av fel Beskrivning uppstår när man vill öppna en fil som inte finns. Uppstår vid tillgång till ett index i en lista som inte finns Uppstår när en nyckel inte finns i uppsalgslista Uppstår när en inbyggd operation eller funktion tillämpas på ett objekt av olämplig typ Uppstår när funktion används med ett parameter med korrekt typ men fel värde Uppstår när divisor i en divition är 0 19/20, är väldigt lämplig för snabba sökningar Var noga med referenser, det är endast typen tal (int, float) som inte använder referenser. Lambda är praktiskt när man vill ha en tillfällig kort funktion Filer kan öppnas för olika ändamål, lösning,skrivning och tilläggning av data try, except används för att hantera exekveringsfel. 20/20 7