Föreläsning 4 Python: Definiering av egna funktioner Parametrar

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Avlusning Debugger (”avlusare”) Breakpoints Watch.
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Funktioner och programorganisation
2D1311 Programmeringsteknik med PBL
Programmeringsteknik Föreläsning 6 Skolan för Datavetenskap och kommunikation.
2D1311 Programmeringsteknik med PBL Föreläsning 3 Skolan för Datavetenskap och kommunikation.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Metoder i java Det finns två typer av metoder i java
Föreläsning 4 Python: mera om funktioner och parametrar
Föreläsning 12 Matlab J-uppgiften.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
1 Föreläsning 3 Datalogi för E1 / 2D1343 Repetition List List operationer Stränghantering For-slingor.
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Stora additionstabellen
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Programmering B PHP Lektion 2
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Programmeringsteknik
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Föreläsning 3 Programmeringsteknik och Matlab DD1312
Listor En lista är en föränderlig ordnad samling objekt.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
DD1311 P ROGRAMMERINGSTEKNIK MED PBL Föreläsning 9 Skolan för Datavetenskap och kommunikation.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 2 Skolan för Datavetenskap och kommunikation.
Namnrum, räckvidd och rekursion Linda Mannila
Funktioner Linda Mannila Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Programmeringsteknik Föreläsning 8 Skolan för Datavetenskap och kommunikation.
Länkade listor Binära träd
Föreläsning 7 Programmeringsteknik och Matlab DD1315 Kommandotolk parametrar Klass Instans Metod konstruktor.
Programmeringsteknik Föreläsning 17 Skolan för Datavetenskap och kommunikation.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Föreläsning 8 Mer om klasser och objektorientering.
Anders Sjögren Deklarationsområde och funktioner.
Föreläsning 2 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Anders Sjögren Enkelt program med funktion /* two_func.c - a program that uses two functions in one file */ /* from Stephen Prata C Primer Plus ISBN
Program indata ? utdata 1/20 Vahid Mosavat, Nada, KTH.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Anders Sjögren Funktioner något in och något annat ut.
Python.
Presentationens avskrift:

Föreläsning 4 Python: Definiering av egna funktioner Parametrar datalogi för E1 2005-11-08 Föreläsning 4 Python: Definiering av egna funktioner Parametrar Lokala och globala variabler Retursats None Vahid Mosavat, Nada, KTH

? Program utdata indata datalogi för E1 2005-11-08 Vahid Mosavat, Nada, KTH

datalogi för E1 2005-11-08 Definiera funktioner Ett sätt att strukturera ett program är att definiera generella funktioner som sedan kan anropas flera ggr under programmet. def funktionensnamn( pararmetrar ): Kod som ska exekveras när funktionen anropas Indragning är viktigt! Vahid Mosavat, Nada, KTH

Exempel def meny() print ”välj:” print ”1. Spela” datalogi för E1 2005-11-08 Exempel def meny() print ”välj:” print ”1. Spela” print ”2. Visa spelregler” print ”3. Avsluta” definition meny() Anrop Vahid Mosavat, Nada, KTH

parametrar, return och None datalogi för E1 2005-11-08 parametrar, return och None Indata kan skickas till en funktion genom att ha formella parametrar vid definition av funktionen. Alla funktioner har en utdata, har man en retursats vid definitionen så returnerar funktionen ett värde av den typ som är specificerat, annars returneras None.(vilket betyder ingenting för python) Vahid Mosavat, Nada, KTH

Exempel def calc(a,b): c = a*b + b return c m = calc(2,3) datalogi för E1 2005-11-08 Exempel def calc(a,b): c = a*b + b return c m = calc(2,3) def calc(a,b): c = a*b + b m = calc(2,3) Variabeln m kommer att ha värdet 9 vilket är av typen integer Variabeln m kommer att ha värdet None Vahid Mosavat, Nada, KTH

Exempel def calc(a,b): c = a*b + b return c m = calc(2,3.0) datalogi för E1 2005-11-08 Exempel 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 ha värdet 9.0 vilket är av typen float Variabeln m kommer att ha värdet False vilket är boolean Vahid Mosavat, Nada, KTH

Program indata f1() f3() f2() datalogi för E1 2005-11-08 Vahid Mosavat, Nada, KTH

datalogi för E1 2005-11-08 import, from … import Funktioner kan definieras i en egen fil och där efter importeras i olika program genom att använda: import filnamn (obs! utan .py) eller from filnamn import funktionsnamn Vahid Mosavat, Nada, KTH

datalogi för E1 2005-11-08 reload() reload() är en inbyggd funktion som används till att uppdatera en funktion som har importerats tidigare: import mymath … reload(mymath) reload funkar inte med importering av fölajnde form: from mymath import * Vahid Mosavat, Nada, KTH

Exekveringsfel, logisktfel datalogi för E1 2005-11-08 Exekveringsfel, logisktfel Exekveringsfel det är då programmet kraschar mitt i körningen, d.v.s. Programmet avslutas inte utan avbryts p.g.a. något fel. Logiskt fel det är då programmet avslutas men felaktig utdata kommer ut. Vahid Mosavat, Nada, KTH

Logiskt fel brud brudgumman datalogi för E1 2005-11-08 Vahid Mosavat, Nada, KTH

Logiskt fel brud brudgumman datalogi för E1 2005-11-08 Vahid Mosavat, Nada, KTH

Exempel på logiskt fel Ett av följande anrop är fel, vilket? datalogi för E1 2005-11-08 Exempel på logiskt fel def BMI( height , weight): return weight/(height*height) Ett av följande anrop är fel, vilket? BMI(1.70, 65) 22.49 BMI(65, 1.70) 0.000402 Vahid Mosavat, Nada, KTH

translate(), maketranse() datalogi för E1 2005-11-08 translate(), maketranse() tranlate() och maketranse() byter ut två del-strängar med varandra, exempel: Dic = maketranse(”Nd”,”Dt”) namn = ”Nada” namn.translate(dic) ’Data’ kommer att returneras Vahid Mosavat, Nada, KTH

Variabler En variabel kan antingen vara global eller lokal: datalogi för E1 2005-11-08 Variabler En variabel kan antingen vara global eller lokal: Globala variabler Globala variabler ska definieras med nyckelordet global Lokalvariabel Formella parameter Lokala variabler deklareras i funktioner Lokala variabler är känd endast i funktionen och har kortare livslängd än globala variabler Vahid Mosavat, Nada, KTH

Exempel Följande kod är korrekt def change(): global x x=x/2 x=10 datalogi för E1 2005-11-08 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 change() Vahid Mosavat, Nada, KTH

Exempel Följande kod ger fel def change(x): global x x = x/2 x=10 datalogi för E1 2005-11-08 Exempel Följande kod ger fel def change(x): global x x = x/2 x=10 print x change(x) Följande kod är rätt def change(x): x = x/2 x=10 print x change(x) Vahid Mosavat, Nada, KTH