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

Relevanta dokument
Ordlistor, filhantering och ut på webben. Linda Mannila

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

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

Grundläggande datalogi - Övning 1

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 :

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

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.

Selektion och iteration

Datalogi för E Övning 3

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

PROGRAMMERINGSTEKNIK FÖRELÄSNING 5

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

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

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

Övning 1 - Abstrakta datatyper

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?

TDP002 - Imperativ programmering

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

TDP002 - Imperativ programmering

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

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

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

Föreläsning 7: Filer

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

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

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

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

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

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

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

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

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

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

DD1314 Programmeringsteknik

Funktioner. Linda Mannila

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Objektorienterad Programmering (TDDC77)

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

Sekvensdatatyper, ASCII och chiffer. Linda Mannila

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Laboration: Whitebox- och blackboxtesting

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

TDP002 Imperativ programmering

Föreläsning 13 Datalogi 1 DA2001

Föreläsning 4: Filer och strömmar

Exceptions (undantag) Murach s: kap 7

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

TDP002 - Imperativ programmering

Pythons standardbibliotek

Föreläsning 18 Filer och avbildningar

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

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

Datalogi, grundkurs 1

Övning 0. Python för den som kan MATLAB. Lättare att läsa färdig kod än att skriva själv Det krävs övning för att automatiskt få detaljerna rätt:

TDP002 - Imperativ programmering

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

TDP002 - Imperativ programmering

Obligatorisk uppgift: Numerisk kalkylator

Tentamen. 5DV105, Programmeringsteknik med Python och Matlab 5DV106, Programmering i Python. 27 oktober 2009

Övningsuppgifter kapitel 8

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Användarhandledning Version 1.2

Omprov 11/11. på förmiddagen.

Föreläsning 2 Programmeringsteknik och C DD1316

Karlstads Universitet, Datavetenskap 1

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

Introduktion till programmering SMD180. Föreläsning 7: Strängar

Erfarenheter från labben

Grundläggande datalogi - Övning 4

Tentamen i Grundläggande Programvaruutveckling, TDA548

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

Översikt över Visual Basic

Några saker till och lite om snabbare sortering

Listor. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 7. Peter Dalenius Institutionen för datavetenskap

729G04 Programmering och diskret matematik. Python 3: Loopar

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.

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

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

TDIU01 - Programmering i C++, grundkurs

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

F4. programmeringsteknik och Matlab

Tentamen PC-teknik 5 p

TENTAMEN OOP

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

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Introduktion till MATLAB, med utgångspunkt från Ada

Besiktningsprotokollet

Tentamen i Introduktion till programmering

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

TDDE44 Programmering, grundkurs

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

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

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Språkkonventioner och redigering av tal.

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

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

Transkript:

/home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111 0 # coding : latin Sammanfattning Gick igenom listor, dictionary, felhantering, strängjämförelser, split(), rstrip() och filer (läsning och skrivning till fil). Listor Dataypen list ör en numrerad lista med värden. Exempel l=[1,3, hej ] l=[[1,3],4,5,[7,8]] Skapa tom genom att skriva l=list() l=[] List-manipulering append(value) 21 l=[ h e j ] 22 l. append ( då ) 23 p r i n t ( T i l l a g t "d" :, l ) # l=[ hej, då ] 25 l. append ( [ r o s, 4 ] ) 26 p r i n t ( T i l l a g t [ " r o s ",4 ] :, l ) #l=[ hej, då, [ ros,4 ] ] ( lista i lista ) extend(value) 28 l. e x t e n d ( [ r o s,4 ] ) 29 p r i n t ( Utökat med [ " r o s ",4 ] :, l ) # l=[ hej, då, [ ros,4 ], ros, 4 ] insert(position, value) 31 l. i n s e r t (1, 1) 32 p r i n t ( S a t t i n 1 på p l a t s 1 :, l ) # l=[ hej, 1, då, [ ros,4 ], ros, 4 ] index(value) 35 l. i n d e x ( då ) # writes 2, om det inte finns ges ett felmeddelande remove(value) 36 l. remove ( då ) 37 p r i n t ( "Då" b o r t a :, l ) # l=[ hej, 1, [ ros,4 ], ros, 4 ] 38 39 # felmeddelande om hej inte finns. Använd len för att få fram längden Iterera igenom lista med for 43 l=[ [ 1, 3 ], 4, 5, [ 7, 8 ] ] 44 f o r v a l i n l : p r i n t ( Värde :, v a l ) Eller på detta sättet; 46 f o r i i n r a n g e ( l e n ( l )) : p r i n t ( Värde :, l [ i ], i n d e x :, i ) Matris Matris, lista i lista, matris[i][j] i=rad, j=kolumn Dubbla for-slingor krävs vid t ex utskrift

/home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20112 53 m a t r i s=[ [ 1,2 ], 54 [ 4,3 ] ] 55 p r i n t ( m a t r i s [ 0 ] ) # [ 1,2 ] 56 57 p r i n t ( m a t r i s [ 0 ] [ 0 ] ) # 1 58 59 p r i n t ( m a t r i s [ 0 ] [ 1 ] ) # 2 60 61 62 p r i n t ( M a t r i s u t s k r i f t ) 63 f o r i i n r a n g e ( l e n ( m a t r i s )) : # iterera över antal rader 64 65 f o r j i n r a n g e ( l e n ( m a t r i s [ 0 ] )) : # iterera över antal kolumner 66 67 p r i n t ( m a t r i s [ i ] [ j ] ) Dictionary En oordnad samling värden ordnade par 66 d=d i c t ( r o d=2, g u l=1, b l a=4) 68 d={ röd : 2, g u l : 1, b l å : 4} 69 p r i n t ( Värde f ö r n y c k e l " röd " :,d [ röd ] ) Består av en nyckel och ett värde Nyckel kan vara alla ej icke muterbara variabler ( objekt som inte går att ändra efter att de skapas) främst int, str, bool 74 d={10 : 2, g u l : 1, True : 4} 75 p r i n t ( Värde f ö r n y c k e l 1 :, d [ 1 ] ) 76 p r i n t ( Värde f ö r n y c k e l True :, d [ True ] ) Skapa tom genom att skriva d=dict() d={} Använd len för att antal ordnade par Dict-manipulering lägg till 1 83 d [ h ]=2 84 p r i n t ( "h" : 2 t i l l a g t :,d) lägg till 2 86 d. u p d a t e ({ h : 2, f : 5}) 87 p r i n t (" k : 5 och f : 5 t i l l a g t : ",d) del, ta bort värden 89 d e l d [ True ] 90 p r i n t ( Nyckel True b o r t t a g e t :, d) # d={ gul : 1, True : 4} iterera över värden 93 f o r v a l i n d. v a l u e s () : 94 p r i n t ( Val :, v a l ) iterera över nycklar 96 f o r key i n d. k e y s () : 97 p r i n t ( Key, key )

/home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20113 iterara över värden och nycklar 99 f o r v a l, key i n d. i t e m s () : 100 p r i n t ( Val key :, v a l, key ) Felhandering Ett exekveringsfel i python kallas för ett exception. Det finns många fördefinierade exception t ex ValueError, t e x om en sträng inte kan tolkas som ett tal vid konvertering ZeroDivisionError, uppstår t ex vid division med 0 TypeError, Raised when an operation or function is applied to an object of inappropriate type. The associated value is a string giving details about the type mismatch. SyntaxError, raised when the parser encounters a syntax error. This may occur in an import statement, in an exec statement, in a call to the built-in function eval() or input(), or when reading the initial script or standard input (also interactively). När ett exception uppstår kan man välja mellan att kasta det att hantera det Kasta Som standard kastas felet till anropande metod om inget skrivs. Om man har flera anropsnivåer sker detta hela vägen upp till huvudprogrammet, om man inte hanterar felet där h kraschar programmet. Hantera Med try: inkapslar man den känsliga koden. Med except: fångar man det exception som skett samt skriver eventuellt ett felmeddelande, p s s slipper man exekveringsfel. 128 # >>> int ( a ) 129 # Traceback ( most recent call last ) : 130 # File " < console >", line 1, in < module > 131 # ValueError : invalid literal for int () with base 10 : a 132 # >>> range ( s ) 133 # Traceback ( most recent call last ) : 134 # File "< stdin >", line 1, in <module > 135 # TypeError : str object cannot be interpreted as an integer 136 # 137 # >>> print ( hello world ) 138 # File " < console >", line 1 139 # print ( hello world ) 140 # ^ 141 # SyntaxError : EOL while scanning string literal 142 143 t r y : 144 l i s t L a n g d=i n t ( i n p u t ( Längd på l i s t a n : )) 145 p r i n t ( l i s t ( r a n g e ( l i s t L a n g d ))) 146 except V a l u e E r r o r : 147 p r i n t ( Längden på l i s t a n måste vara e t t h e l t a l! ) 148 except : 149 p r i n t ( Annat f e l ) # Fångar alla andra fel Strängjämförelser 154 p r i n t ( Ada < Beda ) # True 155 156 p r i n t ( ada < Beda ) # False 157 158 p r i n t ( Ada. u p p e r ()) # ADA

/home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20114 Funktionen split() str.split(sep), Return a list of the words in the string, using sep as the delimiter string. 162 s t r i n g= f d s f 163 l=s t r i n g. s p l i t ( f ) 164 p r i n t ( " f d s f ". s p l i t ( )=, l ) Funktionen rstrip() str.rstrip(chars), return a copy of the string with chars removed. 170 h e j då \n h e j s a n \n. r s t r i p ( \n ) # blir hej då hejsan 172 h e j då \n h e j s a n \n. r s t r i p ( e j ) # blir h då\n hsan \n Filer Vill man spara data mellan programkörningar måste man lagra data på fil. Läsning från fil har många likheter med att läsa från tangentbordet och skrivning till fil har många likheter med att skriva till skärmen. Man öppnar en fil för läsning / skrivning med funktionen open(). När man arbetar klart med filen stänger man den för vidare inläsning / utskrift med close() readline(), läser in en rad varje gång den används readlines(), läser in all rader och lägger dem i en lista. Före 188 # Infil 189 # Rad 1 : hej hopp 190 # Rad 2 : slask smurf mupp 191 # 192 # Utfil : tom Manipulera 197 i n f i l = open ( i n f i l. t x t, r ) 198 u t f i l = open ( u t f i l. t x t, w ) 199 p r i n t ( F ö r s t a raden i i n f i l. t e x :, i n f i l. r e a d l i n e (). r s t r i p ( \n )) 200 p r i n t ( Andra raden i i n f i l. t e x :, i n f i l. r e a d l i n e (). r s t r i p ( \n )) 201 i n f i l. c l o s e () 202 namn = i n p u t ( Vad h e t e r du? ) 203 u t f i l. w r i t e (namn+ \n ) 204 namn = i n p u t ( F a v o r i t f ä r g? ) 205 u t f i l. w r i t e (namn+ \n ) 206 u t f i l. c l o s e () 207 u t f i l = open ( u t f i l. t x t, r ) 208 f o r r a d i n u t f i l. r e a d l i n e s () : p r i n t ( U t f i l :, r a d. r s t r i p ( \n )) Efter 211 # Infil 212 # Rad 1 : hej hopp 213 # Rad 2 : slask smurf mupp 214 # 215 # Utfil : 216 # Rad1 : Mikael 217 # Rad2 : lila

/home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20115 Programexempel läsning, skriving, while-loop, for-loop, och lista. Skapa ett program som; 1. Läser in ord från en fil, flera ord på den rad 2. Skriver orden på en fil, nu ett ord per rad 3. Skriver ut totala antalet ord 227 # Infil 228 # Rad 1 : hej hopp 229 # Rad 2 : slask smurf mupp 230 a l l a O r d e n = l i s t () 231 i n f i l = open ( i n f i l. t x t, r ) # inläsing 232 233 r a d = i n f i l. r e a d l i n e (). r s t r i p ( \n ) 234 w h i l e r a d!= : 235 ordenpadennarad = r a d. s p l i t ( ) 236 f o r o r d i n ordenpadennarad : 237 a l l a O r d e n. append ( o r d ) 238 p r i n t ( o r d ) 239 r a d = i n f i l. r e a d l i n e (). r s t r i p ( \n ) 240 p r i n t ( Antal ord i f i l e n =, l e n ( a l l a O r d e n )) 241 i n f i l. c l o s e () 242 243 u t f i l = open ( u t f i l. t x t, w ) 244 f o r o r d i n a l l a O r d e n : 245 u t f i l. w r i t e ( o r d + \n ) 246 u t f i l. c l o s e () 247 248 # Infil 249 # Rad 1 : hej 250 # Rad 2 : hopp 251 # Rad 3 : slask 252 # Rad 4 : smurf 253 # Rad 5 : mupp Extra uppgift (om vi hinner) Skriv ett program som läser in från en fil med glospar och lägger dem i ett uppslasverk där svenska ordet blir nyckel och det engelska blir värdet. Skriv sen ut en lista med ordparen svenka : engelska Filen: äpple/apple (nyrad) hej/hello (nyrad) bil/car (nyrad) etc.