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

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

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

729G04 Programmering och diskret matematik

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

TDDE44 Programmering, grundkurs

729G04 Programmering och diskret matematik

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

729G04 Programmering och diskret matematik

729G04 Programmering och diskret matematik

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

ADT Set, Map, Dictionary. Iteratorer TDDD86: DALGP. Tommy Färnqvist, IDA, Linköpings universitet

Föreläsning 18 Filer och avbildningar

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

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

TDP002 Imperativ programmering

DD1311 Programmeringsteknik för S1 Laborationer läsåret

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

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

729G04 Programmering och diskret matematik. Python'1:'Labbmiljö'och'introduk7on'7ll'Python'

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

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

Ordlistor, filhantering och ut på webben. Linda Mannila

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

729G06 Föreläsning 1 Objektorienterad programmering

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

729G04 Programmering och diskret matematik Tenta kl 14:00-18:00

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA)

Labbrapport Svantes Bageri

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

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

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

TDP003 Projekt: Egna datormiljön

TDP002 - Imperativ programmering

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

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.

DD1311 Programmeringsteknik för CL1 Laborationer läsåret

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

TDP002 - Imperativ programmering

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

Avancerade Webbteknologier

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

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

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

Instruktion för laboration 1

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

Använda Python Laboration 1 GruDat, DD1344

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

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

TDDE44 Programmering, grundkurs

Grundläggande datalogi - Övning 1

Uppgifter teknik HT17 (uppdaterad v. 40)

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

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

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

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Inlämningsuppgifter, EDAF30, 2015

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

Översikt. Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot. Linux 2 2 / 12

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

Pythons standardbibliotek

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

kl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Om e-post. Introduktion till Emacs. Att skicka e-post. ÅÄÖåäö i pine. Varför Emacs? Vad är Emacs? Emacs en editor/textbehandlare

Sekvensdatatyper, ASCII och chiffer. Linda Mannila

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

TDDC74 Lab 04 Muterbara strukturer, omgivningar

Filer, dokument och TextWrangler. Vad är en fil? Gruppering av ettorna och nollorna. Lagra information. Använda senare

Föreläsning 3.1: Datastrukturer, en översikt

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

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

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Arrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Program. Kapitel make Program Interpreterande och kompilerande program

Dokumentmallar i praktiken, Nyps

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

Programmering, grundkurs

Projektuppgift - Gymmet

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18

Laboration 1 Introduktion till Visual Basic 6.0

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd!

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

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

TDDC77 Objektorienterad Programmering

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

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

Klasser och objekt, referenser Grundkurs i programmering med Python

SND:s användarguide för Colectica for Excel

Transkript:

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

Dagens föreläsning Nya verktyg IPython Texteditorer Ny datatyp Dictionary Abstraktion Felhantering Referenser vs värden

IPython + Texteditor Labb 6, 7, 8: Texteditor och IPython Varför? För att prova på en annan miljö. Vanligare att använda en text-editor för att skriva kod. IPython är en bättre interaktiv miljö än Pythonskalet i IDLE.

IPython Bläddra bland tidigare kommandon med piltangenterna Tab-komplettering av anrop/variabler Tillgång till kommandon för att navigera i kataloger Magiska kommandon, t.ex. %run %run -i %reset %paste

Textfiler Minns vad en textfil (plain text) är: innehållet består av bytes som representerar tecken från en teckentabell med hjälp en specifik kodning/encoding. Exempel på textfiler: pythonkod, html-fil, css, xml, tecken-separerad data Exempel på icke-text: word-dokument, exceldokument, bilder, dokument i rtf-format, pdf-dokument

Vad gör en text-editor Redigerar textfiler, (plain text) Saknar formattering och layoutfunktionalitet (paragrafjustering, fetstil, understruket, kursivt stil etc) Har ofta funktioner och verktyg som är bra att ha vid redigering av kod- eller datafiler, men som inte behövs vid vanlig ordbehandling.

Exempel på funktionalitet redigera en kolumn använda regex-uttryck för sök och ersätt indenteringshjälp automatisk syntaxmarkering förslag på kompletteringar - variabler, funktioner stöd för olika teckenkodningar: läsa och skriva stöd för olika radbryt

Några texteditorer till Solaris emacs gedit jedit vi

Några texteditorer till Windows emacs jedit Notepad++ Komodo Edit Sublime Text vim

Några texteditorer till Mac emacs jedit Komodo Edit MacVim TextMate Textwrangler / BBEdit Sublime Text

TEXTEDITORER ÄR VIKTIGA FÖR PROGRAMMERARE

xkcd: real programmers

IPython och texteditorer i PUL Starta IPython: skriv ipython3 i skalfönster. Texteditorer: Välj t.ex. gedit eller kate. Hittas via "start-menyn" under Accessories.

Dictionaries Innan vi går vidare ska vi lära oss om datatypen dictionary.

Dictionaries - en mängd nycklar och värden nyckel:attribut {nyckel_1:attribut1, nyckel_2:attribut_2, nyckel_n:attribut_n }

Istället för index använder vi nyckeln person = {"namn":"jody", "twitter":"fnurl"} kurs = {"kurskod":"729g04", "kursnamn":"programmering och diskret matematik"} print(person["namn"]) print(kurs["kurskod"])

Vi kan ändra värden genom att använda nyckeln person = {"namn":"jody", "twitter":"fnurl"} kurs = {"kurskod":"729g04", "kursnamn":"programmering och diskret matematik"} print(person["namn"]) # kommer skriva ut 'jody' # Ändra namn på person person["namn"] = "Jody Foo" print(person["namn"]) # kommer skriva ut 'Jody Foo'

Vi kan lägga till element till ett dictionary person = {"namn":"jody", "twitter":"fnurl"} person["ålder"] = "ja"

Vi kan loopa genom ett dictionary person = {"namn":"jody", "twitter":"fnurl", "ålder":"ja"} # vanlig loop över ett dictionary går igeom nycklarna for key in person: print(key) # man kan använda nyckeln för att komma åt värdet for key in person: print(person[key]) # man kan även få ut både nycklar och värden for key, value in person.items(): print(key, value)

Dictionaries En dictionary har element precis som en lista, men istället för index, kommer man åt elementen 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.

ABSTRAKTION

TÄNK PERCEPTION

ABSTRAKTION: TVÅ KOMPONENTER

Datastuktur: vi använder inbyggda datatyper för att representera en typ av data som inte finns inbyggd Hjälpfunktioner: vi använder hjälpfunktioner för att lättare hantera vår egenkonstruerade datastruktur. Abstrakt datatyp (ADT): datastruktur + hjälpfunktioner

EN ADT FÖR EN FYRKANT

EN ADT FÖR EN PERSON

EN ADT FÖR EN SAMLING PERSONER

FELHANTERING

Felhantering Varför? Undvik att programmet kraschar. Ge användaren feedback om något går fel. Hur? Kontrollera indata från användaren. Kontrollera data som en funktion får - det är inte bara användaren som gör fel. Gör något vettigt om det blir fel. Ibland kan det vettiga vara att avsluta programmet - när?

REFERENSER TILL VÄRDEN KONTRA VÄRDEN

Referenser och föränderliga (mutable) datatyper s1 = "sträng1" i1 = 5 l1 = ["e1"] l2 = ["e1"] d1 = {"nyckel1":1} s2 = s1 i2 = i1 l3 = l1 l4 = l2 d2 = d1 s2 = "sträng2" # vad är s1? i2 = 4 # vad är i1? l3 = l1 + ["e2"] # vad är l1? l4.append("e2") # vad är l2? d2["nyckel1"] = 2 # vad är d1? s1: "sträng" i1: 5 l1: ["e1"] l2: ["e1", "e2"] d1: {"nyckel1": 2}

Referenser Variabler som står för datatyper som är oföränderliga innehåller ett värde. Variabler som står för datatyper som är föränderliga innehåller en referens.

Referenser i1 = 5 l1 = [1, 2, 3] i2 = i1 l2 = l1 i1 i2 l1 l2 5 5 1 2 3