ht16 - da354a - listor & lexikon

41
Introduktion till programmering Listor och lexikon

Upload: anton-tibblin

Post on 09-Jan-2017

321 views

Category:

Education


1 download

TRANSCRIPT

Page 1: HT16 - DA354A - Listor & Lexikon

Introduktion till programmeringListor och lexikon

Page 2: HT16 - DA354A - Listor & Lexikon

Dagens föreläsning• Vad består ett program av• … och hur lagrar vi data?• Listor• Lagring i sekvenser• … i form av strängar• … i form av värdesekvenser• Lexikon…• Lagring genom nyckel/värde-principen

Page 3: HT16 - DA354A - Listor & Lexikon

Frågor innan vi börjar?

Page 4: HT16 - DA354A - Listor & Lexikon

Vad gör ett program egentligen?Input

OutputBeräkningar

Konditional exekveringRepetition

Från användareTill användareBeräkningarIf-satserIterationer

Spara data när programmet körs?

Page 5: HT16 - DA354A - Listor & Lexikon

Men vi har ju sparat data innan?

Page 6: HT16 - DA354A - Listor & Lexikon

Ex. 1 – Min filmsamling

Page 7: HT16 - DA354A - Listor & Lexikon
Page 8: HT16 - DA354A - Listor & Lexikon
Page 9: HT16 - DA354A - Listor & Lexikon

Vad finns det för problem med detta?

Page 10: HT16 - DA354A - Listor & Lexikon

1) Jag måste in i källkoden för att lägga till en ny filmVi vill ju att användaren ska kunna lägga in under programmets körning

2) Jag måste in i källkoden för att skriva ut den nya filmenVi vill ju att filmen automatiskt ska skrivas ut när användaren lagt till den

3) Jag behöver individuellt för varje film skriva ”print()”Vi vill ju skriva ut hela filmsamlingen, snarare än varje film individuellt

4) Den blir en variabel, en rad kod, per filmVi vill ju automatisera processen så att alla filmen ligger i samma variabel

5) Hur hanterar vi 100st filmer?

Page 11: HT16 - DA354A - Listor & Lexikon

Andra sätt att spara data?Än som värde: strängar / boolean / nummer

Page 12: HT16 - DA354A - Listor & Lexikon

Listor!

Page 13: HT16 - DA354A - Listor & Lexikon

Listor – Sekvens av data

Page 14: HT16 - DA354A - Listor & Lexikon

En sekvens är ett objekt som innehållerflera värden, som lagras en

efter den andra. Du kan utföraoperationer på en sekvens, för att

undersöka och manipulera de värdensom lagrats i sekvensen.

Page 15: HT16 - DA354A - Listor & Lexikon

Strängar, listor, (tupler)Olika typer av sekvenser

Page 16: HT16 - DA354A - Listor & Lexikon

Strängar som sekvenser – med index

Page 17: HT16 - DA354A - Listor & Lexikon
Page 18: HT16 - DA354A - Listor & Lexikon
Page 19: HT16 - DA354A - Listor & Lexikon

Metoder för strängar - test

Page 20: HT16 - DA354A - Listor & Lexikon

Metoder för strängar - modifieringar

Page 21: HT16 - DA354A - Listor & Lexikon

SträngformateringBonus!

Page 22: HT16 - DA354A - Listor & Lexikon
Page 23: HT16 - DA354A - Listor & Lexikon

Exempel på strängar

Page 24: HT16 - DA354A - Listor & Lexikon

Listor i Python• Hittills har vi bara sparat ett värde i varje variabel, t.ex.

dice_1 = 5dice_2 = 3dice_3 = 6

• Vi skulle istället kunna spara dessa som en lista:dices = [5, 3, 6]

• På detta sätt kan vi enkelt spara flera värden på samma plats

Page 25: HT16 - DA354A - Listor & Lexikon

Listor…• En lista är en datatyp som kan innehålla flera värden• Listor är förändringsbara, vilket gör att vi kan modifiera dem under ett programs körning• Tupler är inte detta• Listor är en dynamisk datastruktur, vilket gör att vi kan:• Lägga till värden• Modifiera värden• Ta bort värden• Man kan använda:• Indexering• ”slicing”• + mång fler metoder när man arbetar med listor

Page 26: HT16 - DA354A - Listor & Lexikon
Page 27: HT16 - DA354A - Listor & Lexikon
Page 28: HT16 - DA354A - Listor & Lexikon

Uppdelning (slicing) av listor

Måndag Tisdag Onsdag Torsdag Fredag Lördag Söndag

0 1 2 3 4 5 6

-7 -6 -5 -4 -3 -2 -1

Page 29: HT16 - DA354A - Listor & Lexikon
Page 30: HT16 - DA354A - Listor & Lexikon

Lägga ihop listor (konkatenering)

Page 31: HT16 - DA354A - Listor & Lexikon

In <sekvens>• Vi kan kontrollera om ett värde finns i en lista genom in

Page 32: HT16 - DA354A - Listor & Lexikon

Funktioner för listor

Page 33: HT16 - DA354A - Listor & Lexikon

Lägga till saker i en lista

Page 34: HT16 - DA354A - Listor & Lexikon

Skriva ut saker från listor• Nu blir for-loopen väldigt händig! =)

Page 35: HT16 - DA354A - Listor & Lexikon
Page 36: HT16 - DA354A - Listor & Lexikon
Page 37: HT16 - DA354A - Listor & Lexikon

En lista på böcker

Page 38: HT16 - DA354A - Listor & Lexikon

Lexikon• Vi använder lexikon för att strukturer upp våra värden genom nycklar• Ett tydligt exempel på detta är en klassisk kontaktlista:

Page 39: HT16 - DA354A - Listor & Lexikon

Demo på lexikon

Page 40: HT16 - DA354A - Listor & Lexikon

VG?På kommande inlämningsuppgifter

Page 41: HT16 - DA354A - Listor & Lexikon

… på fredag…