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



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

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?

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Pythons standardbibliotek

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

TDIU01 - Programmering i C++, grundkurs

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

Föreläsning 2 Programmeringsteknik och C DD1316

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

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

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Spelschema för årets fotbollsmästerskap! island tyskland Söndag 14/7 Växjö Arena, Växjö. Söndag 14/7 Kalmar Arena, Kalmar

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

i LabVIEW. Några programmeringstekniska grundbegrepp

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

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

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

DD1314 Programmeringsteknik

Problemlösning och funktioner Grundkurs i programmering med Python

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Föreläsning 3 Programmeringsteknik och Matlab DD1315. Importering av moduler. randrange

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Grundläggande datalogi - Övning 1

Övning2. Variabler. Data typer

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

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

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

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

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

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

729G04 Programmering och diskret matematik. Python 3: Loopar

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Text och strängindexerade fält Grundkurs i programmering med Python

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,

Introduktion till programmering SMD180. Föreläsning 7: Strängar

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

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

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

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

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Pascal... Pascal. Pascal... Pascal...

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till programmering D0009E. Föreläsning 9: Tupler och dictionaries

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Klasser och objekt, referenser Grundkurs i programmering med Python

Översikt över Visual Basic

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Variabler och konstanter

TDIU01 - Programmering i C++, grundkurs

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Kort om programmering i Python

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

v. 42 Python HT17 En introduktion Oscar Bergqvist

SMD 134 Objektorienterad programmering

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Data, typ, selektion, iteration

Programmeringsteknik med C och Matlab

Övningsuppgifter kapitel 8

Datalogi för E Övning 3

Visual Basic, en snabbgenomgång

v. 43 Python HT17 En introduktion Oscar Bergqvist

Algoritmer och interaktiv Python

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

Logik och kontrollstrukturer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Tentamen i Introduktion till programmering

Beräkningsvetenskap föreläsning 2

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

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

PROGRAMMERING ÅK 9 INTRODUKTION

Användarhandledning Version 1.2

TDDC77 Objektorienterad Programmering

Objektorienterad Programmering (TDDC77)

En villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är

TDDC77 Objektorienterad Programmering

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

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

Föreläsning 8: Aritmetik och stora heltal

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

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

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Programmeringsteknik I

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Transkript:

Hösten 2009

Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2

Ett programmeringsspråks byggstenar 3

ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR Datatyper Data av olika typ kräver olika representation heltal decimaltal (flyttal) tecken text listor mängder strängindexerade fält Inbyggda datatyper Egendefinierade datatyper 4

ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR Satser (kontrollstrukturer) Styr flöde av instruktioner Villkorade satser Upprepade satser Finns vanligtvis i flera anpassade varianter 5

ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR Funktioner och moduler Funktioner Samlar instruktioner som kan anropas från olika delar av ett program Identiska block av kod behöver inte skrivas flera gånger Moduler Samlar funktioner som är relaterade Ger bättre organisation av stora program Kan återanvändas i flera program 6

Några inbyggda datatyper 7

NÅGRA INBYGGDA DATATYPER Fyra sätt att representera tal heltal (int) Skrivs som t.ex. 7 stora heltal (long) Skrivs som t.ex. 467L decimaltal/flyttal (float) Skrivs som t.ex. 4.27 eller 7.0 komplexa tal (complex) 8

NÅGRA INBYGGDA DATATYPER Varför skilja mellan heltal och flyttal Begränsad lagringsutrymme begränsad noggrannhet Decimaltal kan inte lagras exakt Oftast inget problem Alla decimaltal kan ej lagras exakt med flyttal 9

NÅGRA INBYGGDA DATATYPER Operationer med tal x * y Produkten av x och y x + y Summan av x och y x - y Differensen av x och y x / y Kvoten mellan x och y x // y Heltalskvoten mellan x och y x % y Resten vid heltalsdivision mellan x och y -x Negationen av x abs(x) Absolutvärdet av x pow(x, y) x y, x upphöjt i y x**y Se ovan 10

NÅGRA INBYGGDA DATATYPER Konvertering av tal int(x) long(x) float(x) x konverterat till heltal x konverterat till stort heltal x konverterat till flyttal 11

NÅGRA INBYGGDA DATATYPER Matematiska funktioner ceil(x) floor(x) sqrt(x) sin(x) cos(x) tan(x) pi Minsta heltal som är större än x Största heltal som är mindre än x x sinus av x cosinus av x tangens av x π 12

NÅGRA INBYGGDA DATATYPER Division av heltal Ett heltal kan aldrig innehålla decimaler Vid division av två heltal kan inte resultat innehålla decimaler >>> 4 / 2 2 >>> 5 / 2 2 Avrundas till närmast mindre heltal >>> -5/2-3 13

NÅGRA INBYGGDA DATATYPER Automatisk konvertering Är minst ett av operanderna ett flyttal blir resultatet ett flyttal >>> 4 / 2.0 2.0 >>> 5 / 2.0 2.5 Krävs flyttalsdivision använd konvertering >>> 5 / float(2) 2.5 OBS!!! >>> float(5 / 2) 2.0 14

NÅGRA INBYGGDA DATATYPER Boolska värden Kan uttryckas som sant eller falskt Finns definierat som True och False Jämförelseoperationer x == y Likhet (x ekvivalent med y) x!= y Olikhet (x inte ekvivalent med y) x < y x strikt mindre än y x > y x strikt större än y x <= y x mindre eller lika med y x >= y x större eller lika med y not Negerar efterföljande boolskt värde 15

NÅGRA INBYGGDA DATATYPER Sekvenser Vanligt att värden lagras i en sekvens (given ordning) Flertal sätt att lagra sekvenser i Python Strängar Listor Tupler etc. Första värdet i en sekvens har index 0! 16

NÅGRA INBYGGDA DATATYPER Listor En lista är precis vad det låter som, en sekvens av värden. Listor skapas med hakparenteser. Listor kan innehålla värden av olika datatyper list = [3.0, "Anna", 4] För att hämta värden ur en lista används också hakparenteser item = list[1] list[1] = "Karin" 17

NÅGRA INBYGGDA DATATYPER Tupler En tupel är identisk med en lista, men värden i en tupel kan inte ändras Tupler skapas med parenteser. Tupler kan innehålla värden av olika datatyper tupel = (3.0, "Anna", 4) För att hämta värden ur en tupel används också hakparenteser item = tupel[1] tupel[1] = "Karin" \#FEL!! Kan inte ändra värde 18

Styra instruktionsflödet 19

STYRA INSTRUKTIONSFLÖDET Flöde av instruktioner Ett program exekveras sats för sats Man vill kunna villkora eller repetera vissa satser 20

STYRA INSTRUKTIONSFLÖDET Indentering och kodblock Schematisk kan satserna i ett program delas upp i mindre delar som utförs i grupp, kodblock Ett kodblock utförs oftast i sin helhet eller inte alls Kodblock kan uttryckas på olika sätt i olika språk (begin... end,..., etc.) I Python anges ett kodblock med indentering Alla satser i ett kodblock ska ha samma indentering Samma antal blanksteg framför satsen 21

STYRA INSTRUKTIONSFLÖDET Satser och sammansatta satser Lite slarvig i kursboken Sats Det minsta självständiga uttrycket i ett imperativt programmeringsspråk. Tilldelningar Funktionsanrop etc. Sammansatta satser 22 kodblock eller sats som är knutet till ett kodblock Kodblock Villkorssatser

STYRA INSTRUKTIONSFLÖDET Villkorssatser Ett kodblock utförs enbart om ett villkor uppfylls if num > 10: print "Talet är större än 10" och ett annat om det är falskt. if num > 10: print "Talet är större än 10" else: print "Talet är mindre eller lika med 10" 23

STYRA INSTRUKTIONSFLÖDET Flera villkor 24 En variant där man kan välja mellan flera valmöjligheter if day == 1: print "Måndag" elif day == 2: print "Tisdag" elif day == 3: print "Onsdag" elif day == 4: print "Torsdag" elif day == 5: print "Fredag" elif day == 6: print "Lördag" elif day == 7: print "Söndag"

STYRA INSTRUKTIONSFLÖDET Repetition Ett kodblock upprepas (itereras) tills ett villkor är uppfyllt i = 1 while i < 10: print i i += 2 # Samma sak som att skriva i = i + 2 25

STYRA INSTRUKTIONSFLÖDET Iterera över en sekvens Om man vill upprepa ett kodblock för varje element i en lista personer = ["Katrin", "Pelle", "Ida", "Thomas"] for person in personer: print person 26

STYRA INSTRUKTIONSFLÖDET Iterera över ett intervall Det är ofta man vill upprepa något ett visst antal gånger Funktionen range skapar en lista med heltal inom ett intervall range(4) # Ger listan [0, 1, 2, 3] range(-1,2) # Ger listan [-1, 0, 1] range(1,7,2) # Ger listan [1, 3, 5] Kombinerat med for ger detta ett kraftfullt verktyg for i in range(5,9): print i for i in range(0,10,2): print i 27

Modulen sys 28

MODULEN S Y S Använda moduler Som vi sa i första lektionen finns många moduler med ytterligare funktioner att använda. Modulen sys ger tillgång till funktioner och uppgifter om själva programmet och operativsystemet (systemet) Moduler läggs till i programmet med import Detta gör vanligtvis först i programmet 29

MODULEN S Y S Argument till program Praktiskt är att kunna skicka med information när man startar ett program >>> python intervall.py 4 7 Denna information samlas i en lista som heter sys.argv Allt i denna lista är strängar och första värdet är programnamnet. 30

MODULEN S Y S Exempel # Programmet vill ha två värden när det körs. # Programmet skriver ut en sekvens av värden # där första värdet är startvärdet och sista # värdet är stoppvärdet. import sys start = int (sys.argv[1]) stop = int(sys.argv[2]) for i in range(start, stop+1): print i 31

MODULEN S Y S Avsluta program Program kan även avslutas i förtid # Programmet skriver ut värden mellan # 0 och talet som anges import sys max = int(sys.argv[1])+1 if max < 1: print "First argument must be positive" sys.exit(0) for i in range(max): print i 32