ht16 - da354a - fel- och filhantering
TRANSCRIPT
![Page 1: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/1.jpg)
Introduktion till programmeringFel- och filhantering
![Page 2: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/2.jpg)
Dagens upplägg• Förbättrad felhantering• När allt inte går som planerat…• Genom try/except
• Filhantering• Öppna filer• Skapa filer• Läsa/redigera/ersätta innehåll i filer• Stänga filer• Kombinerat exempel
![Page 3: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/3.jpg)
Några frågor?Innan vi kör igång.
![Page 4: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/4.jpg)
Att skriva sin egen kod.
![Page 5: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/5.jpg)
Vad har vi gjort hittills?
![Page 6: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/6.jpg)
Variabler If-satser Loopar
FunktionerDatatyper
Strängar Heltal Decimaltal Boolskavärden Listor Lexikon
![Page 7: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/7.jpg)
Vi har lärt oss att göra program!… och att programmera!
![Page 8: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/8.jpg)
![Page 9: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/9.jpg)
Programkrascher…Ni har nog varit med om det?
![Page 10: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/10.jpg)
![Page 11: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/11.jpg)
![Page 12: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/12.jpg)
![Page 13: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/13.jpg)
![Page 14: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/14.jpg)
När får vi fel?När brukar era fel dyka upp?
![Page 15: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/15.jpg)
![Page 16: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/16.jpg)
Designa för fel.Alla gör fel, förr eller senare. Tänk användbarhet.
![Page 17: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/17.jpg)
![Page 18: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/18.jpg)
![Page 19: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/19.jpg)
![Page 20: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/20.jpg)
Det blev ett undantag
![Page 21: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/21.jpg)
Ett undantag (eng. exception) är ett fel somuppstår medan ett program körs,
vilket medför att programmet abrupt stoppas (kraschar). Du kan använda try / except
för att snyggt hantera dessa fel/undantag.
![Page 22: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/22.jpg)
https://www.tutorialspoint.com/python3/python_exceptions.htmLista på undantag
![Page 23: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/23.jpg)
Hantera fel – fel sker alltid…• I python kan man använda try för försöka utföra något• Skulle det man försöker utföra gå fel, kan man fånga upp felet genom except
![Page 24: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/24.jpg)
Python kan ge oss olika typer av fel• Exempel på typer av fel:• NameError: När en variabel/funktion inte finns• TypeError: När vi använder datatyper felaktivt• IndexError: Vi försöker hämta ut ett värde från en lista genom ett index som inte finns• ZeroDivisionError: Vi försöker dividera med 0• ImportError: Vi försöker importera något som inte finns• Etc.• Fler typer av fel hittar ni här: https://docs.python.org/3/library/exceptions.html
![Page 25: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/25.jpg)
Hur hanterar vi undantagen?
![Page 26: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/26.jpg)
![Page 27: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/27.jpg)
![Page 28: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/28.jpg)
Generella fel vs. Specifika fel• Man kan i Python som vi sett, antingen ”upptäcka”:• Generella fel (alla fel)• Specifika fel (av en viss typ)• Ibland vill man helgradera sig mellan flera fel, t.ex.
![Page 29: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/29.jpg)
Frågor på felhantering?Genom try / except
![Page 30: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/30.jpg)
Demo!
![Page 31: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/31.jpg)
Filhantering!Skapa program som kommer ihåg saker!
![Page 32: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/32.jpg)
Att spara text i filer• Hittills har våra program varit helt nollställda när vi startat dem, vilket ibland har
fungerat bra – men det vore ju roligt om vi kunde spara information mellan olika körningar.
• Det gör man enkelt genom att spara information i textfiler. Detta t.ex. genom• Ren text• Semikolonseparerade värden• Andra typer av strukturer, t.ex.• JSON• Pickle• XML• etc.
![Page 33: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/33.jpg)
Att öppna filer i Python
Öppnar en fil i läsläge
Öppnar en fil i skrivläge (ersätter innehåll)
Öppnar en fil i skrivläge (lägger till innehåll)
r = read, w = write, a = append
![Page 34: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/34.jpg)
Funktioner för filer• read() Returnerar all text i filen• readline() Returnerar en rad åt gången• readlines() Returnerar alla rader som en lista• write() Skriver till filen
![Page 35: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/35.jpg)
Att läsa från en fil
![Page 36: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/36.jpg)
Läsa in varje rad från en fil
![Page 37: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/37.jpg)
close()Stänger filen när vi jobbat klart med den
![Page 38: HT16 - DA354A - Fel- och filhantering](https://reader033.vdocuments.site/reader033/viewer/2022052606/587291351a28ab36118b639f/html5/thumbnails/38.jpg)
Demo för filhantering