HT15, DA354A - Listor och lexikon

35
Introduktion till programmering Listor och lexikon

Transcript of HT15, DA354A - Listor och lexikon

Page 1: HT15, DA354A - Listor och lexikon

Introduktion till programmeringListor och lexikon

Page 2: HT15, DA354A - Listor och 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: HT15, DA354A - Listor och lexikon

Frågor innan vi börjar?

Page 4: HT15, DA354A - Listor och lexikon

Vad gör ett program egentligen?

InputOutput

BeräkningarKonditional exekveringRepetition

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

Spara data när programmet körs?

Page 5: HT15, DA354A - Listor och lexikon

Sekvenser

Page 6: HT15, DA354A - Listor och lexikon

Sekvenser

Page 7: HT15, DA354A - Listor och lexikon

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

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

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

Page 8: HT15, DA354A - Listor och lexikon

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

Page 9: HT15, DA354A - Listor och lexikon

Strängar som sekvenser – med index

Page 10: HT15, DA354A - Listor och lexikon
Page 11: HT15, DA354A - Listor och lexikon
Page 12: HT15, DA354A - Listor och lexikon

Metoder för strängar - test

Page 13: HT15, DA354A - Listor och lexikon

Metoder för strängar - modifieringar

Page 14: HT15, DA354A - Listor och lexikon

SträngformateringBonus!

Page 15: HT15, DA354A - Listor och lexikon
Page 16: HT15, DA354A - Listor och lexikon

För de nyfikna ”Gammal” syntax för strängformatering: http://www.diveintopython.net/native_data_types/formatting_strings.html

”Ny” syntax för strängformatering: https://docs.python.org/2/library/string.html#format-examples

Page 17: HT15, DA354A - Listor och lexikon

Exempel på strängar

Page 18: HT15, DA354A - Listor och 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 19: HT15, DA354A - Listor och 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 20: HT15, DA354A - Listor och lexikon
Page 21: HT15, DA354A - Listor och lexikon
Page 22: HT15, DA354A - Listor och lexikon

Uppdelning (slicing) av listor

Måndag Tisdag Onsdag Torsdag Fredag Lördag Söndag0 1 2 3 4 5 6-7 -6 -5 -4 -3 -2 -1

Page 23: HT15, DA354A - Listor och lexikon
Page 24: HT15, DA354A - Listor och lexikon

Lägga ihop listor (konkatenering)

Page 25: HT15, DA354A - Listor och lexikon

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

Page 26: HT15, DA354A - Listor och lexikon

Funktioner för listor

Page 27: HT15, DA354A - Listor och lexikon

Lägga till saker i en lista

Page 28: HT15, DA354A - Listor och lexikon

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

Page 29: HT15, DA354A - Listor och lexikon
Page 30: HT15, DA354A - Listor och lexikon
Page 31: HT15, DA354A - Listor och lexikon

En lista på böcker

Page 32: HT15, DA354A - Listor och 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 33: HT15, DA354A - Listor och lexikon

Demo på lexikon

Page 34: HT15, DA354A - Listor och lexikon

VG?På kommande inlämningsuppgifter

Page 35: HT15, DA354A - Listor och lexikon

… på fredag…