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

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 6 Programmeringsteknik och Matlab DD1312

Föreläsning 13 Datalogi 1 DA2001

Föreläsning 2 Programmeringsteknik och C DD1316

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

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?

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

Funktioner. Linda Mannila

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

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

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

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

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

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

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

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

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

TDP002 - Imperativ programmering

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

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.

TDDC77 Objektorienterad Programmering

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

Selektion och iteration

Programdesign. Dokumentera. Dokumentera

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

Objektorienterad programmering

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

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

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

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

Ordlistor, filhantering och ut på webben. Linda Mannila

Grundläggande datalogi - Övning 1

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

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

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

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

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

Pythons standardbibliotek

Föreläsning 3-4 Innehåll

Problemlösning och funktioner Grundkurs i programmering med Python

Metoder (funktioner) Murach s: kap Winstrand Development

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

Övningar Dag 2 En första klass

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

Testning av program. Verklig modell för programutveckling

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

Objektorienterad Programmering (TDDC77)

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

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Sätt att skriva ut binärträd

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Typkonvertering. Java versus C

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

Föreläsning 5-6 Innehåll

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

Tentamen Grundläggande programmering

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

Uppgifter teknik HT17 (uppdaterad v. 40)

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Felhantering TDDD78, TDDE30, 729A

Laboration 1 Introduktion till Visual Basic 6.0

DD1314 Programmeringsteknik

JavaScript del 5 Funktioner

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

Laboration: Whitebox- och blackboxtesting

Datalogi, grundkurs 1

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

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Tentamen i Introduktion till programmering

Programmeringsteknik med C och Matlab

Klassdeklaration. Metoddeklaration. Parameteröverföring

Övningsuppgifter kapitel 8

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

Parameteröverföring. Exempel. Exempel. Metodkropp

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

I dag: Blockstruktur, omgivningar, problemlösning

Klassen javax.swing.timer

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

729G04 Programmering och diskret matematik. Python 3: Loopar

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Några saker till och lite om snabbare sortering

Deklarationer/definitioner/specifikationer

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

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

GPT föreläsning 8. Förra veckan: Man kan ta tiden på en sorterad teckensträng Förra gången: Problemlösning på lägre nivå kan sortera funktioner

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

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

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

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

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

Transkript:

Föreläsning 4 meringsteknik DD1310 Definiering av egna funktioner Parametrar Lokala och globala variabler Retursats None try och except är reserverade ord som används för hantering av exekverings fel. plista= ['s','v','m','mp','fp','c ] try: i=int(input( Ange index: )) parti = plista[i] except: print ( Något fel inträffade ) Syntax try: 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 1

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 omedelbart, resterande rader i blocket exekveras inte och koden som finns i blocket efter except: börjar exekvera i stället. Mer detaljerad plista= ['s','v','m','mp','fp','c','kd'] try: i= int(input('ange index: ')) parti = plista[i] except IndexError as indx: print ('ogilltigt index, indx) except ValueError: print ('index maste var ett tal ) except: print( uppstod något okänd fel! ) Typ IOError IndexError KeyError TypeError ValueError 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 ZeroDivisionError Uppstår när divisor i en divition är 0 2

indata? utdata Egen funktion def meny(): print( 1. Spela 2. Visa spelregler 3. Avsluta Välj:,end= ) meny() definition anrop Syntax för funktion parametrar def funktionensnamn( ): Kod som ska exekveras när funktionen anropas Indragning är viktigt! 3

Funktioner Används för att dela upp ett program i lätthanterliga och återanvändbara delar En funktion tar oftast indata och ger utdata, men en funktion kan även utföra operationer Man kan undvika upprepning av kod genom att använda egna funktioner och parametrar Med hjälp av egna funktioner inför man abstraktion i sitt program Parametrar En funktion med parametrar har större användningsområde än en funktion utan parametrar. Varför? Vilken av följande har större användningsområde? def calc(): print(2*3+3) calc() # 9 calc() # 9 print(a*b+b) calc(2, 3) #9 Calc(9, 5) #50 return En funktion med parametrar som returnerar ett värde har ännu större användningsområde. print(a*b+b) calc(2,3) calc(5,4) return a*b+b r = calc(2,3) print(r) q = calc(r,9) 4

parametrar, return och None Indata skickas till funktioner via funktionens parametrar. Funktioner returnerar utdata med hjälp av return-satsen. Om en funktion inte har returnsats i kroppen kommer då funktionen att returnera None. (None vilket betyder ingenting i python) c = a*b + b return c c = a*b + b m=calc(2, 3) Variabeln m kommer att få värdet 9 vilket är av typen integer m=calc(2, 3) Variabeln m kommer att få värdet None indata utdata f1() f2() f3() 5

Logiskt fel def BMI( height, weight): return weight/(height*height) Vilket av följande anrop är fel? BMI(1.70,65) 22.49 BMI(65,1.70) 0.000402 Logiskt fel Exekverings- och logiskt fel Exekveringsfel: det är ett fel som gör att programmet kraschar innan det hinner avslutas normalt : det är då programmet avslutas med felaktig utdata. (denna typ av fel är oftast svårare att spåra) Global/ lokal Globala och lokala variabler En variabel kan antingen vara global eller lokal, kan alltså inte vara både samtidigt: Globala variabler: är variabler som lever tills programmet avslutas: Globala variabler definieras med nyckelordet global Lokalvariabel: är variabler som oftast lever en kort stund. Formella parameter Lokala variabler som skapas i funktioner Lokala variabler är känd endast i funktionen och har kortare livslängd än globala variabler 14/20 6

Följande kod är korrekt: def change(): global x x = 10 change() Följande kod ger fel: def change(): x=10 change() Följande kod ger fel: def change(x): global x Följande kod är rätt: def change(x): x=10 change(x) Egna funktion leder till: Högre abstraktion Lättare att läsa och förstå Mer överskådlig kod Minskar upprepningar av kod Se till att dina funktioner är fristående och självständiga Beroenden mellan funktioner gör det svårt att modifiera programmet Undvik globala variabler 7