SlideShare une entreprise Scribd logo
1  sur  51
Introduktion till
programmering
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
Frågor innan vi börjar?
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
Informationsarkitekt, 180 hp
Introduktion till
webbutveckling
Introduktion till
programmering
Systemutveckling och projekt I
Introduktion till
datavetenskap
Introduktion till
interaktionsdesign
Databasteknik Informationsarkitektur I
Informationsarkitektur II Informationsdesign Metodik för mätning av användbarhet
Objektorienterad programmering
och modellering för IA Webbtjänster Informationssäkerhet
Flerplattformsapplikationer
med webbtekniker
Examensprojekt IA Examensarbete
Valbar Valbar Valbar Valbar
År 1
År 2
År 3
https://edu.mah.se/tgiaa
Modulerna hittills
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?
Men vi har ju sparat data innan?
Ex. 1 – Min filmsamling
Vi vill bygga ett program som
sparar filmer, hur gör vi?
Låt säga 10st till en början
Vi vill bygga ett program som
sparar 50 filmer, hur gör vi?
Om jag vill skriva ut mina 10st
filmer, hur gör vi då?
Vad finns det för problem med detta?
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?
Andra sätt att spara data?
Än som värde: strängar / boolean / nummer
Listor!
Listor – Sekvens av data
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.
Strängar, listor, (tupler)
Olika typer av sekvenser
Strängar som sekvenser – med index
Metoder för strängar - test
Metoder för strängar - modifieringar
Strängformatering
Bonus!
Exempel på strängar
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
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
Exempel på listor
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
Lägga ihop listor (konkatenering)
In <sekvens>
• Vi kan kontrollera om ett värde finns i en lista genom in
Funktioner för listor
Lägga till saker i en lista
(
(
)
)
Att gå igenom listor med data
Nu blir for-loopen väldigt händig!
)
)
)(
(
(
En lista på böcker
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:
Demo på lexikon
VG?
På kommande inlämningsuppgifter
På fredag

Contenu connexe

Similaire à HT19 - DA354A - Listor och lexikon

Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016Lars Blixt
 
HT15, DA354A - Nästlade listor & Globala variabler
HT15, DA354A - Nästlade listor & Globala variablerHT15, DA354A - Nästlade listor & Globala variabler
HT15, DA354A - Nästlade listor & Globala variablerAnton Tibblin
 
HT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonHT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonAnton Tibblin
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingAnton Tibblin
 
HT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerHT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerAnton Tibblin
 
HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringAnton Tibblin
 
Mönster och datastrukturer, del 2
Mönster och datastrukturer, del 2Mönster och datastrukturer, del 2
Mönster och datastrukturer, del 2Johan Holmberg
 
Metadata (Vad är metadata?)
Metadata (Vad är metadata?)Metadata (Vad är metadata?)
Metadata (Vad är metadata?)Stina Degerstedt
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLAnton Tibblin
 
HT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerHT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerAnton Tibblin
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerAnton Tibblin
 
Librisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarcLibrisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarcJanne Johannesson
 
VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLAnton Tibblin
 
Introduktion till länkade data
Introduktion till länkade dataIntroduktion till länkade data
Introduktion till länkade dataMetaSolutions AB
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - FunctionsAnton Tibblin
 
HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonAnton Tibblin
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)Anton Tibblin
 

Similaire à HT19 - DA354A - Listor och lexikon (19)

Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016Presentation dokumenthantering workshop 27 april 2016
Presentation dokumenthantering workshop 27 april 2016
 
HT15, DA354A - Nästlade listor & Globala variabler
HT15, DA354A - Nästlade listor & Globala variablerHT15, DA354A - Nästlade listor & Globala variabler
HT15, DA354A - Nästlade listor & Globala variabler
 
HT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till PythonHT19 - DA354A - Introduktion till Python
HT19 - DA354A - Introduktion till Python
 
HT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programmingHT18 - DA354A - Introduction to programming
HT18 - DA354A - Introduction to programming
 
HT16 - DA354A - Funktioner
HT16 - DA354A - FunktionerHT16 - DA354A - Funktioner
HT16 - DA354A - Funktioner
 
HT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till ProgrammeringHT22 - DA354A - Introduktion till Programmering
HT22 - DA354A - Introduktion till Programmering
 
Mönster och datastrukturer, del 2
Mönster och datastrukturer, del 2Mönster och datastrukturer, del 2
Mönster och datastrukturer, del 2
 
Metadata (Vad är metadata?)
Metadata (Vad är metadata?)Metadata (Vad är metadata?)
Metadata (Vad är metadata?)
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTML
 
HT22 - DA354A - Funktioner
HT22 - DA354A - FunktionerHT22 - DA354A - Funktioner
HT22 - DA354A - Funktioner
 
HT19 - DA354A - Funktioner
HT19 - DA354A - FunktionerHT19 - DA354A - Funktioner
HT19 - DA354A - Funktioner
 
Etl verktyg
Etl verktygEtl verktyg
Etl verktyg
 
Librisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarcLibrisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarc
 
JavaScript - Intro
JavaScript - IntroJavaScript - Intro
JavaScript - Intro
 
VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTML
 
Introduktion till länkade data
Introduktion till länkade dataIntroduktion till länkade data
Introduktion till länkade data
 
HT18 - DA354A - Functions
HT18 - DA354A - FunctionsHT18 - DA354A - Functions
HT18 - DA354A - Functions
 
HT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till PythonHT15, DA354A - Introduktion till Python
HT15, DA354A - Introduktion till Python
 
HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)HT16 - DA354A - Introduktion till programmering (Python)
HT16 - DA354A - Introduktion till programmering (Python)
 

Plus de Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdfAnton Tibblin
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingAnton Tibblin
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelAnton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerAnton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonAnton Tibblin
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringAnton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionAnton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekAnton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptAnton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingAnton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSSAnton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulärAnton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTMLAnton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaAnton Tibblin
 

Plus de Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 

HT19 - DA354A - 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. 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
  • 5. Informationsarkitekt, 180 hp Introduktion till webbutveckling Introduktion till programmering Systemutveckling och projekt I Introduktion till datavetenskap Introduktion till interaktionsdesign Databasteknik Informationsarkitektur I Informationsarkitektur II Informationsdesign Metodik för mätning av användbarhet Objektorienterad programmering och modellering för IA Webbtjänster Informationssäkerhet Flerplattformsapplikationer med webbtekniker Examensprojekt IA Examensarbete Valbar Valbar Valbar Valbar År 1 År 2 År 3 https://edu.mah.se/tgiaa
  • 6.
  • 8.
  • 9.
  • 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. Vi vill bygga ett program som sparar filmer, hur gör vi? Låt säga 10st till en början
  • 14.
  • 15. Vi vill bygga ett program som sparar 50 filmer, hur gör vi?
  • 16.
  • 17. Om jag vill skriva ut mina 10st filmer, hur gör vi då?
  • 18.
  • 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
  • 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.
  • 28.
  • 30. Metoder för strängar - modifieringar
  • 32.
  • 34. 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
  • 35. 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
  • 37. 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
  • 38.
  • 39. Lägga ihop listor (konkatenering)
  • 40. In <sekvens> • Vi kan kontrollera om ett värde finns i en lista genom in
  • 42. Lägga till saker i en lista ( ( ) )
  • 43. Att gå igenom listor med data Nu blir for-loopen väldigt händig!
  • 45.
  • 46. En lista på böcker
  • 47.
  • 48. 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:

Notes de l'éditeur

  1. Liam Neeson