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

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

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

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

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

729G04 Programmering och diskret matematik. Python 3: Loopar

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

Övningsuppgifter kapitel 8

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

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

Pythons standardbibliotek

Grundläggande datalogi - Övning 1

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

Problemlösning och funktioner Grundkurs i programmering med Python

Datalogi för E Övning 3

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?

DD1314 Programmeringsteknik

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

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

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 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

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

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

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

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

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

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

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

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

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

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

Erfarenheter från labben

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

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

Förkortning och förlängning av rationella uttryck (s. 27 Origo 3c)

Installera Anaconda Python

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

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

Föreläsning 18 Filer och avbildningar

Pseudoslumptal / slumptal. Pseudoslumptal... Slumptal exempel. Slumptal exempel

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

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

Teori: Variabler En variabel har fyra grundläggande egenskaper: Namn, Typ, Värde och Synlighet.

Klasser och objekt, referenser Grundkurs i programmering med Python

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmeringsteknik

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Filer. DA2001 (Föreläsning 16) Datalogi 1 Hösten / 19

Föreläsning 3-4 Innehåll

TDDC77 Objektorienterad Programmering

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

729G04 Programmering och diskret matematik. Föreläsning 7

v. 42 Python HT17 En introduktion Oscar Bergqvist

Övning 1 - Abstrakta datatyper

Block 1 - Mängder och tal

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

v. 43 Python HT17 En introduktion Oscar Bergqvist

Programmering i C, 7,5 hp

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

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

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

public static void mystery(int n) { if (n > 0){ mystery(n-1); System.out.print(n * 4); mystery(n-1); } }

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

Föreläsning REPETITION & EXTENTA

Förkortning och förlängning av rationella uttryck (s. 29 Origo 3b)

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

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

TDIU01 - Programmering i C++, grundkurs

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Tentamen OOP

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

Programmering i gymnasieskola och vuxenutbildning referensblad till workshop

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

Visual Basic, en snabbgenomgång

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

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

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

DD1310/DD1314/DA3009 PROGRAMMERINGSTEKNIK

TDP002 - Imperativ programmering

Datastrukturer. föreläsning 6. Maps 1

TDP002 - Imperativ programmering

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

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

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

Programmering för språkteknologer I, VT2012. Rum

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Tenta i Grundläggande programmering DD klockan

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

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Block 1 - Mängder och tal

1 Standardalgoritmer. 1.1 Swap. 1.2 Sök minsta värdet i en array

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Transkript:

Föreläsning 3 Programmeringsteknik och C DD1316 Innehåll i listor En lista kan innehålla element av olika typer: [ hej, 151, 10.59] uppdateringsoperatorer listor tupler strängar for-slingor importera moduler random En lista kan innehålla en eller flera listor: [ [ hej, 151], 10.59] Man kan åstadkomma godtycklig komplicerade strukturer m.h.a listor: list1 = [ hej ] list1 += [ hejdå, list1] 4/26 Uppdateringsoperatorer +,* och listor För många binära operatorer, tex * / + och -, finns motsvarande uppdateringsoperatorer *= /= += och -= Exempel: x += 1 betyder x = x + 1 Generellt: VAR OP= ARG Û VAR = VAR OP ARG Listor kan konkateneras: lista = [1,2,3] + [4,5,6] Vad innehåller variabeln lista? Listor kan upprepas: lista = [1,2] lista *= 3 Vad innehåller variabeln lista? 5/26 Listor Indexering En lista är en muterbar (ändringsbar), ordnad samling objekt. Listor skapas med hakparenteser: [12, 13, 14, 15] Ett enskilt element på ett givet index kan väljas ut: 0 1 2 3 lista = [12,13,14,15] print(lista[2]) 3/26 6/26

Dellista Ändra Ett startindex och ett övre begränsningsindex ger dellistan. lista = [12,13,14,15,16] lista2 = lista[1:4] Vad innehåller lista2? Identifierade element / dellistor kan ändras: lista = [1,2,3,4,5,6] lista[1:3] = [ a ] lista[4] = b 7/26 10/26 Dellista Borttagning Ett startindex, ett övre begränsningsindex och ett intervall ger en annan typ av dellista. lista = [6,7,1,8,5,2,4,9] lista2 = lista[1:8:3] Vad innehåller lista2? Element/dellista kan tas bort: lista = [1,2,3,4,5,6] del lista[1:3] del lista[3] 8/26 11/26 Att välja element (sammanfattning) Metoder för listor Låt ls vara en lista ls[i] ger elementet med index i ls[i:j] ger en ny lista med alla element från och med i till (men ej med) j i eller j kan utelämnas ls[i:] ger alla element från och med i ls[:j] ger alla element till (men ej med j) ls[i:j:s] ger vart s:e element från och med i till j Negativa index räknar bakifrån (med 0 efter sista elementet): ls[-1] ger sista elementet ls[:-1] ger alla element utom det sista elementet Omvänd ordning på elementen lista = [2,3,1,4,5,7,6] lista.reverse() Sortera elementen lista.sort() 12/26

Metoder för listor Indexering Lägg till element på slutet lista.append(13) Lägg till lista på slutet lista.extend([1,2,3]) Ett enskilt element på ett givet index kan väljas ut: tupel = (12,13,14,15) print(tupel[2]) 13/26 16/26 Tupler Deltupel Ett startindex och ett övre begränsningsindex ger deltupeln. En tupel är en omuterbar (ej ändringsbar) lista. En tupel skapas med vanliga parenteser: t = (1,2,3,4) tupel = (12,13,14,15,16) print (tupel[2:4]) 14/26 17/26 +, * och tupler Omuterbarhet Tupler kan konkateneras: t = (1,2,3) + (4,5,6) print(t) Tupler kan upprepas: t = (1,2,3) print(t * 3) En tupel kan inte ändras. t1 = (1, [2, 3]) t1[0] = 33 ger fel t1[1] = [2,3,33] ger fel Följande ger inte fel: t1[1].append(33) Varför inte? 15/26 18/26

Strängar for-slinga En sträng kan bektraktas som en tupel där alla elementen är tecken. nose = En lång näsa 5 6 7 8 9 10 11 E n l å n g n ä s a for används för att iterera över (gå igenom) alla element i en lista, tupel, eller sträng. lista = [12,13,14,15,16] for x in lista: print(x, end= ) Skriver ut: 12 13 14 15 16 19/26 22/26 Skapa delsträng Syntax Precis som för tupler kan vi välja ut delar: state = urbra del1 = state[0:2] del2 = state[2:] del3 = state[:3] for variabel in lista : Block som exekveras för varje element. u r b r a del1 del2 del3 20/26 23/26 len() och in range() Antalet element i listor och tupler: print(len([1,2,5])) in testar medlemskap i lista eller tupel: if 3 in [1,2,3]: print( 3 finns i listan ) else: print( 3 finns inte i listan ) Ofta vill man göra något för varje heltal i ett intervall. range() är praktisk i detta fall: for x in range(5): print(x, end= ) Skriver ut: 21/26 24/26

Mer om range() randrange(low, high) och random() Kan användas på följande 3 sätt: 1. list(range(3)) [0,1,2] 2. list(range(3,10)) [3,4,5,6,7,8,9] 3. list(range(3,15,2)) [3,5,7,9,11,13] Slumpmässigt heltal i ett givet intervall: import random t = random.randrange(3,6) Ett av talen 3, 4 eller 5 väljs slumpmässigt och tilldelas variabeln t. Slumpmässigt flyttal: r = random.random() Variabeln r kommer att tilldelas ett slumpmässigt decimaltal i intervallet [0, 1). 25/26 28/26 Mer om range() Sammanfattning Avtagande heltalslistor list(range(6,1,-1)) [6,5,4,3,2] list(range(10,0,-2)) [10,8,6,4,2] Listor, tupler och strängar är strukturmässigt lika varandra Tupler och strängar är omuterbara Tupler är snabbare än listor Tupler ska användas när man har ett antal värden som inte kommer att ändras under körningen av programmet. for-slingor i kombination med listor, tupler och strängar är en kraftfull konstruktion. range() underlättar att skapa långa listor av heltal 26/26 29/26 Importering av moduler Det finns en hel del funktioner man kan använda genom att importera dem från pythons standard bibliotek. För att importera de så använder man reserverade ordet import. Ett bibliotek av tillgängliga moduler finns beskrivet här: http://docs.python.org/3/library/index.html Exempel: import random random.random() import math math.sin(3.14) 27/26