PROGRAMMERINGSTEKNIK FÖRELÄSNING 5

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

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

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

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

Ordlistor, filhantering och ut på webben. Linda Mannila

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

Funktioner. Linda Mannila

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

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

Grundläggande datalogi - Övning 1

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

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

Selektion och iteration

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

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering

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

Laboration: Whitebox- och blackboxtesting

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

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

Föreläsning 18 Filer och avbildningar

Besiktningsprotokollet

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

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

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

Programmeringsteknik med C och Matlab

Programmering i C++ EDA623 Strömmar och filer. EDA623 (Föreläsning 9) HT / 19

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

Datalogi, grundkurs 1

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

Datalogi för E Övning 3

Föreläsning 7: Filer

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.

Föreläsning 10. Besiktningsprotokollet

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Objektorienterad Programmering (TDDC77)

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

Språkkonventioner och redigering av tal.

Några saker till och lite om snabbare sortering

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

Föreläsning 2 Programmeringsteknik och C DD1316

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Mer grafik. Jan Erik Moström

Föreläsning 6 Programmeringsteknik och Matlab DD1312

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

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

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

DD1314 Programmeringsteknik

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20

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

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

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

Övningsuppgifter kapitel 8

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?

Filhantering. Grunderna i filhantering. Uppbyggnad av filer. Data hierarkin. Filpekaren. Positionering i filer

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Sekvensdatatyper, ASCII och chiffer. Linda Mannila

Övning 1 - Abstrakta datatyper

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

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

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.

Tentamen i Introduktion till programmering

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

TDP002 - Imperativ programmering

PROGRAMMERINGSTEKNIK TIN212

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

Tentamen, EDAA10 Programmering i Java

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

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

Planering Programmering grundkurs HI1024 HT TIDAA

Tenta i Grundläggande programmering DD klockan

Planering Programmering grundkurs HI1024 HT data

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Tentamen i Programmering

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

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

Nyheter i. Solen ORBIT 6.7

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

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

15-1. MONITOR IT-utbildning

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

729G04 Programmering och diskret matematik

Föreläsning 13 och 14: Binära träd

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

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

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

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

Uppgifter teknik HT17 (uppdaterad v. 40)

DD1311 Programmeringsteknik för CL1 Laborationer läsåret

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

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

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

Standardfilerna Input och Output

PC-teknik, 5 p LABORATION FILHANTERING

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

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

Installera Anaconda Python

Transkript:

PROGRAMMERINGSTEKNIK FÖRELÄSNING 5

IDAG Filer (files) Felhantering med try except

FILER Enda sättet att spara data mellan programkörningar. Nästan alla program använder filer, till exempel Mailprogram Webbläsare IDLE Filer kan innehålla olika typer av data men vi använder textfiler.

FRÅGA Titta bland dina appar: Vilka appar använder filer? Vilka filer är infiler (läsa in data)? Vilka filer är utfiler (skriva ut data)? Vilken typ av data lagras?

FILVARIABLER En filvariabel lagrar Sökvägen till filen Om det är infil/utfil Aktuell position i filen Sökväg: Desktop/speedruns.txt Mod: infil Aktuell position: rad 8 990 players The Legend of Zelda: Ocarina of Time 785 players Super Mario 64 595 players Super Mario Sunshine 375 players Portal 365 players The Legend of Zelda: A Link to the Past 335 players Super Meat Boy 270 players Super Mario World 230 players The Legend of Zelda: Majora's Mask Mario Kart 8 225 players Pokémon Red/Blue 215 players Luigi's Mansion 210 players Banjo-Kazooie Portal 2 195 players Super Mario World 2: Yoshi's Island

"r" för read = läsning LÄSA FRÅN FIL Öppna filen för läsning infil = open("bok.txt","r") Läsa in en rad från en fil rad = infil.readline() Läsa in alla rader lista = infil.readlines() Stänga filen infil.close()

w" för write = skrivning SKRIVA UT PÅ FIL Öppna filen utfil = open("nytt.txt","w") Skriva ut en rad utfil.write("natten var mörk.") Skriva ut en lista utfil.writelines(lista) Stänga filen utfil.close()

LÄSA MED FOR-SLINGA I Python kan man läsa igenom hela filen med en for-slinga. Exempel: fil = open("universitet.txt") antalord = 0 for rad in fil: orden = rad.split() antalord += len(orden) print(antalord, "ord i filen.")

FRÅGA Om du vill läsa från början av filen igen - hur gör du då?

EXCEPTION Fel att öppna en fil för läsning om den inte finns.! Felet heter FileNotFoundError: >>> fil = open("kudde.txt","r") Traceback (most recent call last): File "<pyshell#2>", line 1, in? fil = open("kudde.txt","r") FileNotFoundError:[Errno 2] No such file: 'kudde.txt'

Exception FileNotFoundError SyntaxError KeyError NameError När uppkommer det? Om man försöker öppna en fil som inte finns....skrivit programkod som Python inte kan tolka....försöker använda en nyckel som inte finns i en ordlista....använder en variabel utan att ha gett den ett värde.

TRY-EXCEPT Ta hand om fel genom att införa try-except-satser. def öppna(namn, mod = "r"): """Öppna en fil säkert för läsning eller utskrift.""" try: fil = open(namn, mod) return fil except(filenotfounderror): print("kan inte öppna filen",namn)

FRÅGA Hur kan du göra programmet mer användarvänligt genom att lägga till try... except?

SORTERING.PY På textfilen universitet.txt finns namnen på alla utbytesunviersitet lagrade University of Cape Town St. Petersburg State University Massachusetts Institute of Technology Programmet ska läsa in alla rader från filen, sortera dom i bokstavsordning, och skriva ut på en annan fil

UPPDELNING I FUNKTIONER öppna(filnamn, mod) Öppnar en fil. Indata: filnamnet (sträng) Utdata: en filvariabel läsfil(filvariabel) Läser alla rader från filen. Indata: filvariabel Utdata: lista med rader skrivfil(filvariabel,lista) Skriver ut listan på filen Indata: filvariabel, lista med strängar Utdata: -

def läsfil(infil): """Läs in alla rader från infil""" lista = [] for rad in infil: rad = rad.strip() lista.append(rad) infil.close() return lista

def skrivfil(lista, utfil): """Skriver ut lista på utfil""" for rad in lista: utfil.write(rad + "\n") utfil.close()

def main(): infil = öppna("universitet.txt","r") lista = läsfil(infil) lista.sort() utfil = öppna("sorterat.txt","w") skrivfil(lista,utfil) #Anropar main main()

TESTA PROGRAMMET Problem med encoding? Ange utf8 eller latin1 när filen öppnas! open(filnamn, "r", encoding = "utf8") Tomma rader? Kolla om raden är tom innan den läggs in i listan! if rad!= "": lista.append(rad) Informationsbrist när programmet körs? Lägg till utskrifter! print("läser in från filen",infilnamn)