Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HT20 - DA354A - Listor & Lexikon

1e708b2afb8622d5c5f070a94a3425a9?s=47 Anton Tibblin
December 02, 2020

HT20 - DA354A - Listor & Lexikon

1e708b2afb8622d5c5f070a94a3425a9?s=128

Anton Tibblin

December 02, 2020
Tweet

Transcript

  1. Introduktion till programmering Listor och lexikon

  2. 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
  3. Frågor innan vi börjar?

  4. None
  5. Kursens uppbyggnad Modul 1 Modul 2 Modul 3 Modul 4

    Modul 5 Modul Webb Variabler, utskrifter Funktioner, argument, parametrar, returvärden If-satser, for-loopar, while-loopar Listor, lexikon Filhantering, felhantering Webbtjänst
  6. None
  7. Modulerna hittills

  8. None
  9. None
  10. Vad gör ett program egentligen? Input Output Beräkningar Konditional exekvering

    Repetition Från användare Till användare Beräkningar If-satser Iterationer Spara data när programmet körs?
  11. Men vi har ju sparat data innan?

  12. Ex. 1 – Min filmsamling

  13. Om vi vill spara 10st filmer, hur gör vi då?

  14. None
  15. Om vi vill spara 50st filmer, hur gör vi då?

  16. None
  17. Om jag vill skriva ut mina 10st filmer, hur gör

    vi då?
  18. None
  19. Vad finns det för problem med detta?

  20. Vad finns det för problem med detta? 1) Jag måste

    in i källkoden för att lägga till en ny film • Vi 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 filmen • Vi 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 film • Vi vill ju automatisera processen så att alla filmen ligger i samma variabel 5) Hur hanterar vi 100st filmer?
  21. Andra sätt att spara data? Än som värde: strängar /

    boolean / nummer
  22. Listor!

  23. Listor – Sekvens av data

  24. 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.
  25. Strängar, listor, (tupler) Olika typer av sekvenser

  26. Strängar som sekvenser – med index

  27. None
  28. None
  29. Metoder för strängar - test

  30. Metoder för strängar - modifieringar

  31. Exempel på strängar

  32. Listor i Python • Hittills har vi bara sparat ett

    värde i varje variabel, t.ex. nr_1= 5 nr_2 = 3 nr_3 = 6 • Vi skulle istället kunna spara dessa som en lista: numbers = [5, 3, 6] • På detta sätt kan vi enkelt spara flera värden på samma plats
  33. 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 metoder för att modifiera listor
  34. None
  35. None
  36. 0 1 2 3 4 5 6 0 1 2

    3 4 5 6
  37. print(inköpslista[3])

  38. None
  39. None
  40. None
  41. 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
  42. None
  43. Lägga ihop listor (konkatenering)

  44. In <sekvens> • Vi kan kontrollera om ett värde finns

    i en lista genom in
  45. Funktioner för listor

  46. Lägga till saker i en lista ( ( ) )

  47. Att gå igenom listor med data Nu blir for-loopen väldigt

    händig!
  48. None
  49. None
  50. None
  51. None
  52. None
  53. Listor är förändringsbara datatyper Vad innebär detta?

  54. En lista på böcker

  55. None
  56. 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:
  57. Demo på lexikon

  58. Listor är förändringsbara datatyper Vad innebär detta?