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

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

TDDE44 Programmering, grundkurs

729G04 Programmering och diskret matematik. Python 3: Loopar

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

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

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

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

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

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

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

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

Ordlistor, filhantering och ut på webben. Linda Mannila

Övningsuppgifter kapitel 8

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

Föreläsning 18 Filer och avbildningar

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

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

729G04 Programmering och diskret matematik

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

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

729G04 Programmering och diskret matematik

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

TDP002 - Imperativ programmering

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

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

TDP002 - Imperativ programmering

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

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

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

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Språket Python - Del 1 Grundkurs i programmering med Python

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

TDP002 Imperativ programmering

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

TDDE44 Programmering, grundkurs

729G74 - IT och programmering, grundkurs. Dugga.

Pythons standardbibliotek

Introduktion till programmering SMD180. Föreläsning 9: Tupler

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

TDP002 - Imperativ programmering

TDP003 Projekt: Egna datormiljön

Objektorienterad Programmering (TDDC77)

Laboration: Whitebox- och blackboxtesting

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Labbrapport Svantes Bageri

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

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

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

Universe Engine Rapport

Tenta i Grundläggande programmering DD klockan

Uppgifter teknik HT17 (uppdaterad v. 40)

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

Programmering för språkteknologer II, HT2011. Rum

TDDC77 Objektorienterad Programmering

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

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

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

Programmering för språkteknologer II, HT2014. Rum

Användarhandledning Version 1.2

Föreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

Installera Anaconda Python

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

Planering Programmering grundkurs HI1024 HT 2014

Avancerade Webbteknologier

Programmering B med Visual C

TDDC77 Objektorienterad Programmering

Programmering för webben

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

PHP. TNMK30 - Elektronisk publicering

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

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

TDIU01 - Programmering i C++, grundkurs

Frekvenstabell över tärningskast med C#

Hashtabeller! (& kanske lite sortering)

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

Grundläggande datalogi - Övning 1

Vilken skillnad gör det var du placerar det? Prova båda.

Erfarenheter från labben

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Introduktion till programmering SMD180. Föreläsning 8: Listor

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Föreläsning 1 & 2 INTRODUKTION

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

729G04 Programmering och diskret matematik

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

Text och strängindexerade fält Grundkurs i programmering med Python

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Övningsuppgift. En array baklänges. Steg 1. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Transkript:

729G74 IT och programmering, grundkurs Tema 3. Föreläsning 1 Jody Foo, jody.foo@liu.se

Föreläsningsöversikt Tema 3: Experiment Verktyget Python Vad kan man använda Python till? Python-paket Lite mer om terminalen, kommandon och skalet MuddyCards Python for-loopen dictionaries

Muddy Cards Skriv 3 positiva saker med Tema 2/Kursen hittills Skriv 3 negativa saker med Tema 2/Kursen hittills

Tema 3: Verktyget Python

Python som verktyg för kognitionsvetare? Artificiell intelligens: maskininlärning, kunskapsrepresentation, programmera robotar Lingvistik: språkteknologiska tillämpningar, korpuslingvistik Psykologi: Utforska data, räkna statistik, visualisera data Neurovetenskap: simulering, modellering, processa t.ex. fmri-bilder Allmänt: Automatisering, databearbetning, kognitionsvetenskapliga experiment, webbtjänster, IoT m.m.

Pythonpaket och moduler Pythonpaket tillhandahåller moduler som innehåller funktionalitet som inte finns med i Python "från början" Exempel pep8 och flakes: kontrollera pythonkod för fel och stilbrott requests: enklare HTTP-requests (kommunikation med webbservrar) beautifulsoup: paket för hantering av HTML och XML (t.ex. extrahera information från webben) bokeh: datavisualisering SciPy: databeararbetning, diagram och grafer (statistik, linjär algebra, m.m.) NLTK: naturligt språkbehandling Django och Flask: två ramverk för webbutveckling

Kort om att installera paket Kommandot pip Installera paket på IDA måste använda virtualenv virtualenv: ett sätt att skapa en egen pythonmiljö där man själv får bestämma vad som ska finnas med och inte (ungefär som ett eget rum när man bor hos sina föräldrar)

Terminalen, skalet, kommandon, program

VT100-terminal Server Terminal Terminal Terminal Terminal

Terminalen, skalet, kommandon, program Terminalen kommunicerar med servern Användaren kör ett skal (shell) som fungerar som användargränssnittet mot servern Via skalet kör kommandon och program

Standard input, standard output, standard error Skalet hanterar input och output som strömmar (tänk kanaler, slangar, rör). Terminal (emulerad) Skal (t.ex. bash, zsh, sh) Display Program Kommandon Skalet kan dirigera om information som ett program skickar till stdout (standard output) så att det används som input till ett annat program. Detta görs med 'pipe'-tecknet Disk Filer Man kan skicka en fil till ett program Standard input Standard output Standard error med < Man kan skicka output från ett program till en fil med >

Introuppgift 3 Lediga datorsalar

Ny datatyp: dictionary

Dictionaries Ett 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. Till skillnad från en lista, finns det ingen bestämd ordning på nyckel-värde-paren i ett dictionary.

Dictionaries - en mängd nycklar och värden # Ett dictionary omges av {} och består av nycklar och värden: # { nyckel_1:värde1, # nyckel_2:värde2, #..., # nyckel_n:värde_n } # Exempel dictionary1 = {"nyckel1":"värde 1", 345:"värde 2", (3):54 } Ett dictionary används för att lagra värden med associativ åtkomst, dvs att en nyckel kan användas för att komma åt ett värde. Som en lista, men med nycklar istället för index. Som nyckel kan alla oföränderliga (immutable) datatyper användas. Alla datatyper kan vara värden.

Istället för index använder vi nyckeln In [1]: dictionary1 = {"nyckel1":"värde 1", 345:"värde 2", (3):54 } In [2]: dictionary1["nyckel1"] Out[2]: 'värde 1' In [3]: dictionary1[345] Out[3]: 'värde 2' In [4]: dictionary1[(3)] Out[4]: 54 In [5]: Jämfört med en lista så använder vi nyckeln istället för index för att "komma åt" värdena.

Vi kan ändra värden genom att använda nyckeln In [5]: dictionary1 = {"nyckel1":"värde 1", 345:"värde 2", (3):54 } In [6]: dictionary1["nyckel1"] Out[6]: 'värde 1' In [7]: dictionary1["nyckel1"] = 1024 In [8]: dictionary1["nyckel1"] Out[8]: 1024 Precis som att man kan ange ett index vid tilldelning av ett värde på ett element i en lista, så kan man ange en nyckel vid tilldelning av ett associerat värde i en dictionary.

Vi kan lägga till element till ett dictionary In [9]: dictionary1 = {"nyckel1":"värde 1", 345:"värde 2", (3):54 } In [10]: dictionary1["ny nyckel"] = "nytt värde" In [11]: dictionary1["böcker"] = ["bok 1", "bok 2", "bok 3"] In [12]: dictionary1["ny nyckel"] Out[12]: 'nytt värde' In [13]: dictionary1["böcker"] Out[13]: ['bok 1', 'bok 2', 'bok 3'] Till skillnad från att använda index som är större än längden på listan, så kan man lägga till nya värden i ett dictionary genom att använda en ny nyckel.

Repetition: block

Exempel på block # I Python är block och indenteringsnivå samma sak! if i_am == "happy": print("inside the if block") print("still inside the if block") print("outside the if block")

Ny loop: for-loopen

for element in a_sequence: statement1 statement2 statement3...

Gå igenom en lista med for names = ["Adam", "Bethany", "Chris"] # gå igenom alla element i names. det aktuella elementet # refereras till via variabeln name i loopen. for name in names: # skriv ut det aktuella elementet i listan names print(name)

Ny datatyp: dictionary

Vi kan loopa genom nycklar i ett dictionary # loopa genom nycklar, explicit (ingen _bestämd_ ordning finns) for key in dictionary1.keys(): print("key: " + key) print("value: " + dictionary1[key]) # loopa genom nycklar, implicit (ingen _bestämd_ ordning finns) for key in dictionary1: print("key: " + key) print("value: " + dictionary1[key]) Vi kan komma åt alla nycklar antingen implicit eller explicit. Operatorn in kan också användas på nycklarna implicit: if key_i_am_looking_for in dictionary1

Vi kan loopa genom värden i ett dictionary # loopa genom värden, explicit (ingen _bestämd_ ordning finns) for value in dictionary1.values(): print("value: " + value) dict.values(), precis som dict.keys() ger en struktur (ett view objekt) som beter sig som en lista (men det är ingen riktig lista). Se https://docs.python.org/release/3.3.0/library/stdtypes.html#dict-views för mer information.

range() range() skapar en "virtuell lista med heltal" (en generator) som man kan använda som en vanlig lista med heltal. range(stop): lista med heltal från 0 och som är stop lång range(start, stop): lista med heltal från start till stop-1 range(start, stop, step): lista med heltal från start till

range() >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(4,6)) [4, 5] >>> list(range(10, 101, 10)) [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] >>> list(range(10, 0, -1)) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

for med range() # Skriv ut siffrorna 0 till 9 (10 siffror) for i in range(10): print(str(i))