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

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

TDDE44 Programmering, grundkurs

729G04 Programmering och diskret matematik. Python 3: Loopar

729G04 Programmering och diskret matematik. Python 6: Abstrakta datatyper

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

Övningsuppgifter kapitel 8

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

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

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

729G74 - IT och programmering, grundkurs. Dugga.

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

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

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

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

Föreläsning 18 Filer och avbildningar

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

729G04 PYTHON 6 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden

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

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

Pythons standardbibliotek

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

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

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

TDP002 - Imperativ programmering

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

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

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

Ordlistor, filhantering och ut på webben. Linda Mannila

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

729G04 Programmering och diskret matematik

Tenta i Grundläggande programmering DD klockan

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

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?

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

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

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

Imperativ programmering. Föreläsning 2

Programmering och algoritmiskt tänkande. Tema 3, föreläsning 1 Jody Foo

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Föreläsning 2 Programmeringsteknik och C DD1316

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

Grundläggande databehandling ht 2005

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

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

Inledande programmering med C# (1DV402) Summera med while"-satsen

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

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.

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Data, typ, selektion, iteration

Dagens föreläsning Programmering i Lisp Fö 5

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

Erfarenheter från labben

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

729G04 Programmering och diskret matematik

TDIU01 - Programmering i C++, grundkurs

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Klassdeklaration. Metoddeklaration. Parameteröverföring

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

TDDE44 Programmering, grundkurs

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering

Variabler och konstanter

TDDC74 Programmering, abstraktion och modellering DUGGA 2

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

Sekvensdatatyper, ASCII och chiffer. Linda Mannila

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

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

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

Föreläsning 3: Booleans, if, switch

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

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

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

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

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

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

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

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

DD1314 Programmeringsteknik

Tentamen i Introduktion till programmering

Tentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

TDP002 - Imperativ programmering

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

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

Arrayer (fält)

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

Grundläggande datalogi - Övning 1

Programmering II (ID1019) :00-17:00

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

Laboration: Whitebox- och blackboxtesting

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

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

Introduk+on +ll programmering i JavaScript

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

Transkript:

729G74 IT och programmering, grundkurs Tema 3. Föreläsning 2 Jody Foo, jody.foo@liu.se

Föreläsningsöversikt Repetition: syntax-quiz Fler for-loopar (över listor och dictionaries) range() Nästlade strukturer och nästlade loopar matris/2-dimensionell lista/array

Repetitionsquiz

Quiz Givet enbart nedanstående fristående kodrader, vad kommer Python att tolka nedanstående som och i vilka fall kommer fel att genereras? a) a b) "a" + "a" c) a + "a" d) "a" + a() e) (a + a) + "a" f) (a + a) + [a]

Operatorn in

Operatorer: repetition Exempel på operatorer: +, *, -, /, and, or, not Operatorer kan ses som funktioner plus(x, y) minus(x, y) Argument till operatorer kallas för operander Operatorer kan vara binära (tar exakt två argument), eller unära (tar exakt ett argument)

Operatorn in Operatorn in är en binär operator. Operanderna är ett värde och en sekvens Exempel på sekvenser är: strängar, listor, tupler, dictionaries (implicit dess nycklar) Operatorn returnerar True om värdet finns i sekvensen.

Exempel "h" in "hej" True "h" in ["hej", "hopp"] False "hej" in ["hej", "hopp"] True "hej" in [["hej"],"hopp"] False ["hej"] in [["hej"],"hopp"] True

Mer om for-loopen

for element in a_sequence: statement1 statement2 statement3...

Gå igenom en lista med for names = ["Adam", "Bethany", "Chris"] # gå igenom alla element i names. det aktuella elementet # refereras till via variabeln name i loopen. for name in names: # skriv ut det aktuella elementet i listan names print(name)

Summera tal med for numbers = [2000, 39, 596] sum = 0 # summera alla element i listan numbers for number in numbers: sum = sum + number print(sum)

range() range() skapar en "virtuell lista med heltal" (en generator) som man kan använda som en vanlig lista med heltal. range(stop): lista med heltal från 0 och som är stop lång range(start, stop): lista med heltal från start till stop-1 range(start, stop, step): lista med heltal från start till

range() >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(4,6)) [4, 5] >>> list(range(10, 101, 10)) [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] >>> list(range(10, 0, -1)) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

for med range() # Skriv ut siffrorna 0 till 9 (10 siffror) for i in range(10): print(str(i))

continue och break

Hoppa ur en loop for i in range(10): if i == 5: # för att avbryta en loop i förtid # används break break print(i)

Hoppa till nästa varv for i in range(10): if i == 5: # För att gå vidare till nästa varv i loopen # används continue continue print(i)

Repetition av dictionaries

Repetition från förra föreläsningen Ett dictionary har element precis som en lista, men istället för index, kommer man åt elementen (värdena) med via nycklar. Alla datatyper som är oföränderliga (immutable) kan användas som nycklar, t.ex. numeriska värden, strängar och tupler.

Skapa, läsa, lägga till och ändra värden i ett dictionary # skapa dictionary med innehåll dictionary1 = {"nyckel1":"värde 1", 345:"värde 2", (3):54 } # plocka ut värde för en specifik nyckel i ett dictionary # kommer returnera strängen 'värde 1' dictionary1["nyckel1"] # kommer returnera strängen 'värde 2' dictionary1[345] # lägga till nya nycklar och värden till dictionaryt dictionary1["ny nyckel"] = "nytt värde" dictionary1["böcker"] = ["bok 1", "bok 2", "bok 3"] # hämtning av skapade nyckel-värdepar: 'nytt värde' resp. listan # ['bok 1', 'bok 2', ' bok 3'] dictionary1["ny nyckel"] dictionary1["böcker"]

Vi kan loopa genom nycklar i ett dictionary # loopa genom nycklar, explicit (ingen _bestämd_ ordning finns) for key in dictionary1.keys(): print("key: " + key) print("value: " + dictionary1[key]) # loopa genom nycklar, implicit (ingen _bestämd_ ordning finns) for key in dictionary1: print("key: " + key) print("value: " + dictionary1[key]) Vi kan komma åt alla nycklar antingen implicit eller explicit. Operatorn in kan också användas på nycklarna implicit: if key_i_am_looking_for in dictionary1:...

Vi kan loopa genom värden i ett dictionary # loopa genom värden, explicit (ingen _bestämd_ ordning finns) for value in dictionary1.values(): print("value: " + value) dict.values(), precis som dict.keys() ger en struktur (ett view objekt) som beter sig som en lista (men det är ingen riktig lista). Se https://docs.python.org/release/3.3.0/library/stdtypes.html#dict-views för mer information.

Vi kan loopa genom par av nycklar och värden # loopa genom par av nycklar och värden explicit (ingen _bestämd_ # ordning finns) for key, value in dictionary1.items(): print("key: " + key) print("value: " + value) # en lista av tupler med två element per tupel kan loopas igenom på # samma sätt list_of_tuples = [("ett", 1), ("två", 2), ("tre", 3)] for word, number in list_of_tuples: print("word: " + word) print("number" + str(number)) dict.items() returnerar en struktur som kan användas som en lista av tupler med två element per tupel.

Nästlade strukturer och loopar 2D-array/lista/matris Listor i dictionaries Loopa genom nästlade strukturer

Nästlade strukturer När man har flera "lager" av t.ex. listor eller dictionaries säger man att man har en nästlad struktur. Exempel [["ada", 11], ["bada", 22], ["cada", 33]] {"smaker": ["surt", "sött", "salt", "syrligt"], "former": ["rund", "fyrkantig", "oval", "flaskformad"] "färger": ["grön", "röd", "brun", "blå", "rosa", "gul"]}

Skriv ut alla element i en nästlad lista # exempel med enkel lista names = ["a", "b", "c"] for name in names: print(name) # exempel med listor med två element i en lista. observera mönstret i # namngivningen av listan och hjälpvariabeln i for-loopen contact = [["a", "013-123456"], ["b", "070-123456"], ["c", "+46 8 123456"]] for contact in contacts: print(contact[0]) print(contact[1]) # exampel med listor med två element i varje lista. for-loop istället för # två hårdkodade print-satser används för att skriva ut innehållet # i den inre listan contact = [["a", "013-123456"], ["b", "070-123456"], ["c", "+46 8 123456"]] for contact in contacts: for contact_value in contact: print(contact_value)