Ladda ner presentationen
Presentation laddar. Vänta.
0
Föreläsning 6 Programmeringsteknik och Matlab DD1315
Definiering av egna funktioner Parametrar Lokala och globala variabler Retursats None Vahid Mosavat, Nada, KTH
1
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH
2
Exempel meny() definition anrop def meny(): print(”””1. Spela
2. Visa spelregler 3. Avsluta Välj:”””,end=””) definition meny() anrop 2/20 Vahid Mosavat, Nada, KTH
3
Syntax för funktion def funktionensnamn( ):
parametrar def funktionensnamn( ): Kod som ska exekveras när funktionen anropas Indragning är viktigt! 3/20 Vahid Mosavat, Nada, KTH
4
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 4/20 Vahid Mosavat, Nada, KTH
5
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() def calc(a,b): print(a*b+b) calc(2 , 3) 5/20 Vahid Mosavat, Nada, KTH
6
return En funktion med parametrar som returnerar ett värde har ännu större användningsområde. def calc(a,b): print(a*b+b) calc(2,3) def calc(a,b): return a*b+b svar=calc(2,3) print(svar) 6/20 Vahid Mosavat, Nada, KTH
7
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 return-sats i kroppen kommer då funktionen att returnera None. (None vilket betyder ingenting i python) 7/20 Vahid Mosavat, Nada, KTH
8
Exempel def calc(a,b): c = a*b + b return c m=calc(2 , 3)
Variabeln m kommer att få värdet 9 vilket är av typen integer Variabeln m kommer att få värdet None 8/20 Vahid Mosavat, Nada, KTH
9
Exempel def comp(a,b): return a > b m=comp(2 , 3)
def calc(a,b): c = a*b + b return c m=calc(2 ,3.0) def comp(a,b): return a > b m=comp(2 , 3) Variabeln m kommer att få värdet 9.0 vilket är av typen float Variabeln m kommer att få värdet False vilket är boolean 9/20 Vahid Mosavat, Nada, KTH
10
Program f1() f2() f3() utdata indata 10/20 Vahid Mosavat, Nada, KTH
11
Exekverings- och logiskt fel
Exekverings fel: det är ett fel som gör att programmet kraschar innan det hinner att avslutas Logiskt fel: det är då programmet avslutas men felaktig utdata kommer ut. (denna typ av fel är svårast att spåra) 11/20 Vahid Mosavat, Nada, KTH
12
Logiskt fel brud brudgummen 12/20 Vahid Mosavat, Nada, KTH
13
Logiskt fel brud brudgummen 12/20 Vahid Mosavat, Nada, KTH
14
Exempel på logiskt fel Vilket av följande anrop är fel? BMI(1.70,65)
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) 13/20 Vahid Mosavat, Nada, KTH
15
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 Vahid Mosavat, Nada, KTH
16
Följande kod är korrekt:
Exempel Följande kod är korrekt: def change(): global x x = x/2 x = 10 print(x) change() Följande kod ger fel: def change(): x = x/2 x=10 change() 15/20 Vahid Mosavat, Nada, KTH
17
Exempel Följande kod ger fel: Följande kod är rätt: def change(x):
global x x = x/2 Följande kod är rätt: def change(x): x = x/2 x=10 print(x) change(x) 16/20 Vahid Mosavat, Nada, KTH
18
Default-parametrar Vid definition av en funktion kan man ge formella parametrar ett default-värde. De parametrar som får ett default-värde kallas för default-parametrar. Anropsparametrar till en funktion med default-parametrar kan försummas. Funktionen använder sig av default-parametrars värde endast när anropsparametrar utelämnas vid anropet. Om man vill blanda default-parametrar med vanliga default-parametrar måste man se till att default-parametrar kommer senare i definitionen. 17/20 Vahid Mosavat, Nada, KTH
19
Vilket av följande är fel?
def correction(penColor=”röd”,type): print(type+” har rättats med” + penColor+” penna”) def correction(type,penColor=”röd”): print(type+” har rättats med”+ penColor+” penna”) 18/20 Vahid Mosavat, Nada, KTH
20
Exempel def correction(penColor=”röd”):
print (”Tentamen har rättats med ” +penColor+” penna”) Kan anropas på följande sätt: utan anropsparameter : correction() med anropsparameter: correction(”svart”) 19/20 Vahid Mosavat, Nada, KTH
21
Sammanfattning Genom att deklarera egna funktioner inför man abstraktion i sitt program, vilket gör att programmet blir lättare att läsa och förstå, dessutom koden blir mer överskådlig Man kan undvika kod upprepning genom att deklarera egna funktioner Se till att dina funktioner är fristående och självständiga Beroende mellan funktioner gör det svårt att modifiera programmet Undvik att använda globala variabler 20/20 Vahid Mosavat, Nada, KTH
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.