Presentation laddar. Vänta.

Presentation laddar. Vänta.

Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.

Liknande presentationer


En presentation över ämnet: "Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH."— Presentationens avskrift:

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


Ladda ner ppt "Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH."

Liknande presentationer


Google-annonser