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

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

Allmän (och viktig) kursinformation

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

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

729G04 Programmering och diskret matematik. Python 3: Loopar

DD1314 Programmeringsteknik

TDDE44 Programmering, grundkurs

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

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.

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Extramaterial till Matematik Y

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

729G04 Programmering och diskret matematik

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

Föreläsning 2 Programmeringsteknik och C DD1316

Datorsystem och programmering

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Objektorienterad Programmering (TDDC77)

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

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Grundläggande datalogi - Övning 1

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

TDIU01 - Programmering i C++, grundkurs

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

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

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

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

729G04 Programmering och diskret matematik

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

v. 43 Python HT17 En introduktion Oscar Bergqvist

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

SMD 134 Objektorienterad programmering

Använda Python Laboration 1 GruDat, DD1344

Grundläggande Datalogi

Övningsuppgifter kapitel 8

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

v. 42 Python HT17 En introduktion Oscar Bergqvist

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

TDDC77 Objektorienterad Programmering

Teori: Variabler En variabel har fyra grundläggande egenskaper: Namn, Typ, Värde och Synlighet.

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

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

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

Användarhandledning Version 1.2

Objektorienterad Programmering (TDDC77)

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

Kort-kort om utdelade användarkonton och datormiljön på NADA

Objektorienterad Programmering (TDDC77)

Uppgifter teknik HT17 (uppdaterad v. 40)

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

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

Grundläggande databehandling ht 2005

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

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

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

Programmering, grundkurs

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

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

Tilpro Övning 1. Per-Anders Staav (föredrar att kallas Pa) Kan nås via epost: (fast de flesta frågor besvaras nog bäst av Alexander)

Erfarenheter från labben

Programmering för språkteknologer I, VT2012. Rum

Kursinformation Grundkurs i programmering med Python

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

729G04 Programmering och diskret matematik

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Kort-kort om utdelade användarkonton och datormiljön på NADA

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

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

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Tilpro Övning Per-Anders Staav (vikarierande) (föredrar att kallas Pa) Kan nås via epost:

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

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

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till Unix och Linux

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

Pythons standardbibliotek

Webbprogrammering 725G54

TDP002 Imperativ programmering

TDP002 - Imperativ programmering

Tenta i Grundläggande programmering DD klockan

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

Visual Basic, en snabbgenomgång

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

TDDE44 Programmering, grundkurs

729G04 Programmering och diskret matematik. Kursintroduk+on Jody Foo

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

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Programmering A. Johan Eliasson

729G74 - IT och programmering, grundkurs. Dugga.

Transkript:

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

Kursmål OM PROGRAMMERINGSDELEN konstruera grundläggande datorprogram och formella modeller för enkla kognitionsvetenskapliga tillämpningar använda begrepp och modeller från grundläggande diskret matematik förklara vad en algoritm är och tillämpa grundläggande algoritmer använda olika datatyper/datastrukturer använda olika typer av styrstrukturer visa förståelse för vad datormodellering innebär och ha förmåga att konstruera enkla datorprogram LiU EXPANDING REALITY 5 6 Personal Examinationsmoment Examinator & kursansvarig: Jody Foo Föreläsare: Jody Foo Labbassistenter: Benjamin Helmersson Elias Åsgård Evelina Rennes Ove Jansson Kursadministratör: Annelie Almquist Examinationsmomenten ska stämma överrens med kursmålen. I denna kurs: UPG1 1,5hp: Hemuppgift i diskret matematik TEN4 2,5hp: Datorsalstenta LAB5 1hp: Individuella labbar LAB6 1hp: Parlabbar LiU EXPANDING REALITY LiU EXPANDING REALITY 7 8

Examination Datorsalstenta Datorsalstenta (G/VG): 14:00-18:00 15 december 2014 Inlämningsuppgift i Diskret matematik (G): 22-26 september 2014 Labborationsuppgifter i Python (G) Betyg G+G+G = G VG + G + G = VG Programmeringstenta vid dator Godkänd bok får tas med Test-tenta för att prova på hur det känns LiU EXPANDING REALITY LiU EXPANDING REALITY 9 10 Laborationer Webreg och grupper Laborationer görs vid dator Ni kommer behöva lägga ner mer tid än den schemalagda. Vissa labbtillfällen är med handledare, andra utan.! Labb 1-3 görs individuellt & labb 4-8 som görs i grupper om två Inlämning: e-post till er handledare LiU EXPANDING REALITY LiU EXPANDING REALITY 11 12

Inlämningar och rättningstillfällen Översiktsplan I regel 1 vecka per labb. Står i TimeEdit vilken labb som hör till vilket tillfälle. Inlämning: Labbar skickas till din labbassistent Rättningstillfällen: labbar rättas vid rättningstillfällen. Datum kommer att publiceras på kurshemsidan under "Labbar". LiU EXPANDING REALITY 13 14 Kurslitteratur Strandh, R. 2014. Introduktion till Datavetenskap. Miller & Ranum. 2013. How to Think Like a Computer Scientist - Learning with Python: Interactive Edition (Using Python 3.x). URL: http:// interactivepython.org/runestone/static/thinkcspy/ index.html. PILOTPROJEKT - CODELA Downey. 2012. Think Python - How to Think Like a Computer Scientist. URL: http:// www.greenteapress.com/thinkpython/. Gratis som PDF/HTML, finns att beställa som bok LiU EXPANDING REALITY 15 16

Tillgång till laptop/surfplatta Tillgång till surftelefon 17 18 Dagens Python Datatyper: siffor, text och listor Operatorer Variabler Funktioner PYTHON 19 20

Varför Python Om Python - Historia Generellt, högnivåspråk Fokus på läsbarhet Flera programmeringparadigm kan användas Det går att använda till vardags Skapades av Guido van Rossum version 1.0, i januari 1994 version 2.0 i oktober 2000 version 3.0 i december 2008 21 22 DATATYPER: OLIKA SLAGS INFORMATION Wikimedia Commons, JurgenG 23 24

Siffror - numeriska värden SIFFROR OCH TEXT I PYTHON heltal (integer): int decimaltal: float 25 26 Från heltal till flyttal Sträng float(1) 1.0 int(1.1) 1 int(1.6) 1 En sträng är en sekvens av tecken. Början och slut på en sträng markeras med ett citattecken - "! Ex: "hej" "Här är en längre sträng!" "356" 27 28

Operatorer OPERATORER: JOBBAR MED DATA +, -, /, *, %! 5 + 5 3-1 21 / 7 3 * 7 7 % 3 29 30 Sätta ihop strängar Datatyper är viktiga Använd operatorn + "Hej" + "san" "Hejsan" 5 + 5 =? "hej" + "5" =? "hej" + 5 =? 31 32

CODELA 1: SIFFROR, OPERATORER, PRINT VARIABLER http://www.ida.liu.se/codela/as/729g04/01a 33 34 Variabler och tilldelning Variabler och tilldelning En variabel är en etikett som står för ett värde Låt etiketten x stå för värdet 10 x = 10 Vi säger att vi tilldelar x värdet 10. Variablen på vänster sida om likhetstecknet får värdet som vi beräknar på höger sida. z = x + y x = 5 y = x x = x + y 35 36

Variabelnamn I Python är det skillnad på stora och små bokstäver Variabeln a är inte samma som variabeln A hej är inte samma som Hej För längre variabelnamn används understreck som mellanslag number_of_students = 53 CODELA 2: VARIABLER OCH VÄRDEN http://www.ida.liu.se/codela/as/729g04/01b 37 38 Sanningsvärden SANNING OCH SEKVENS Python har en speciell datatyp som används för värdena sant och falskt. True = sant False = falskt 39 40

Sekvenser Sekvenser list är en datatyp i Python Både listor och strängar är sekvenser. listor: list [1, 2, 3, 4] En lista börjar och slutar med en hak-klammer. Varje element skiljs åt med ett kommatecken. man kan stoppa in vad som helst i en lista teckensträngar: str "hej" "12" 'jag är en sträng' 41 42 Plocka ut delar av en sekvens Plocka ut delar av sekvenser Numrering av element görs med heltal och börjar med heltalet 0. Numreringen kallas för index. 1:a elementet har alltså index 0.! Sista index = längden på sekvensen - 1 eggs = [1, 2, 3, 4, 5] 0 1 2 3 4 43 44

Index Plocka ut delar av sekvenser [heltal] eggs = [1, 2, 3, 4, 5] eggs[ 0 ] 1 2 3 4 45 46 Plocka ut delar av sekvenser Plocka ut delar av sekvenser eggs = [1, 2, 3, 4, 5] eggs[ 0 1 ] 2 3 4 eggs = [1, 2, 3, 4, 5] 0 eggs[ 1 2 ] 3 4 47 48

Plocka ut delar av sekvenser Plocka ut delar av sekvenser eggs = [1, 2, 3, 4, 5] 0 1 eggs[ 2 3 ] 4 eggs = [1, 2, 3, 4, 5] 0 1 2 eggs[ 3 4 ] 49 50 Plocka ut delar av sekvenser eggs = [1, 2, 3, 4, 5] eggs[-1] 5 eggs[-2] 4 eggs[5] FEL Plocka ut delar av sekvenser 0 1 2 3 4 5 eggs = [1, 2, 3, 4, 5] 51 52

Slice Plocka ut delar av sekvenser 0 1 2 3 4 5 [heltal1:heltal2] "Plocka ut mellan strecken heltal1 och heltal2." eggs = [1, 2, 3, 4, 5] eggs[0:1] 53 54 Plocka ut delar av sekvenser 0 1 2 3 4 5 eggs = [1, 2, 3, 4, 5] eggs[2:4] Plocka ut delar av sekvenser eggs = [1, 2, 3, 4, 5] eggs[1:] [2, 3, 4, 5] eggs[-2:] [4, 5] eggs[:4] [1, 2, 3, 4] 55 56

Funkar också för strängar Blandade listor, listor i listor spam = "buy cheap" spam[0] "b" spam[0:3] "buy" [1, "2", 3, "hejsan"] [1, 2, 3, [4], [5, 6], ["7", [8, [9]]]] 57 58 Snabbrepetition listor och strängar är sekvenser sekvenser har index man kan använda [] för att plocka fram en slice (ny sekvens) eller värdet på en viss plats man kan använda operatorn + på sekvenser en lista kan innehålla blandade datatyper CODELA 3: LISTOR OCH STRÄNGAR http://www.ida.liu.se/codela/as/729g04/01c 59 60

Snabbrepetition! Datatyper numeriska värden: int, float sekvenser: str, list sanningsvärden: True, False Operatorer + - * / [], slice, index FUNKTIONER I PYTHON 61 62 f(x) = x + x f(x) = 4x Funktioner def f(x): return x + x def f(x): return 4*x funktionsnamn argument returvärde indentering Funktioner def f(x): return x + x 63 64

Funktioner def add_numbers(number1, number2): return number1 + number2! add_numbers(1, 2) CODELA 4: FUNKTIONER http://www.ida.liu.se/codela/as/729g04/01d 65 66 Använd type() för att ta reda på datatyp INBYGGDA FUNKTIONER För att ta reda på vilken datatyp något är, kan funktionen type() användas! Ex: type(3) -> int type("hej") -> str type([1, 2, 3]) -> list 67 68

print() Används för att skriva ut print("i am a string") eggs = "Hello" print(eggs) print(eggs + "Mr Spam") DU FÅR SLUMPEN 69 70 Moduler - utökad funktionalitet Modulen random Man använder moduler för att uttöka funktionalitet Innan man kan använda funktioner från en modul måste man importera den med hjälp av nyckelordet import! import random random.choice(sekvens) random.shuffle(sekvens) random.sample(sekvens, antal) random.random() random.randint(heltal1, heltal2) 71 72

CODELA 5: RANDOM http://www.ida.liu.se/codela/as/729g04/01e LABBSALAR OCH LABBMILJÖN 73 74 Labbmiljön PUL:arna Hitta till PUL:arna Konto Tunna klienter som kör Solaris 75 76

IDA-konto Samma användarnamn som för LiU-ID (e-post m.m.) Samma lösenord (så länge man inte byter lokalt på IDA) Registrering LiU-ID IDA-konto 77 78 Fönster och skal 79 80

Fönster och skal 81 82 Principer och begrepp för skalfönster prompt kommandon argument förgrund bakgrund output/stdout Vanliga kommandon ls cd rm mv pwd 83 84

Filsystem Navigation i skalet Filer och kataloger/mappar + symboliska länkar / zaza <1> / tecken betydelse home/ home/./ nuvarnade katalog../ katalogen ovanför jodfo042/ jodfo042/ www-pub/ ~ användarkatalog ~/ min hemkatalog www-pub/ 85 86 Navigation i skalet Navigation i skalet / home/ zaza <1> pwd / home/ zaza <1> pwd /home/jodfo042 zaza <2> jodfo042/ jodfo042/ www-pub/ www-pub/ 87 88

Navigation i skalet Navigation i skalet / home/ zaza <1> pwd /home/jodfo042 zaza <2> cd / / home/ zaza <1> pwd /home/jodfo042 zaza <2> cd / zaza <3> jodfo042/ jodfo042/ www-pub/ www-pub/ 89 90 Navigation i skalet Navigation i skalet / home/ jodfo042/ zaza <1> pwd /home/jodfo042 zaza <2> cd / zaza <3> cd ~/ / home/ jodfo042/ zaza <1> pwd /home/jodfo042 zaza <2> cd / zaza <3> cd ~/ zaza <4> www-pub/ www-pub/ 91 92

Navigation i skalet Navigation i skalet / home/ jodfo042/ zaza <1> pwd /home/jodfo042 zaza <2> cd / zaza <3> cd ~/ zaza <4> cd ~/www-pub / home/ jodfo042/ zaza <1> pwd /home/jodfo042 zaza <2> cd / zaza <3> cd ~/ zaza <4> cd ~/www-pub zaza <5> www-pub/ www-pub/ 93 94 Navigation i skalet Navigation i skalet / home/ jodfo042/ www-pub/ zaza <1> pwd /home/jodfo042 zaza <2> cd / zaza <3> cd ~/ zaza <4> cd ~/www-pub zaza <5> cd.. / home/ jodfo042/ www-pub/ zaza <1> pwd /home/jodfo042 zaza <2> cd / zaza <3> cd ~/ zaza <4> cd ~/www-pub zaza <5> cd.. zaza <6> 95 96

STONE IDLE http://www.ida.liu.se/stone/main 97 98 IDLE Program som integrerar redigering av Pythonkod med funktionaliteten att exekvera den kodfil man redigerar i en interaktiv pythonmiljö. IDLE Python: pythoninterpretatorn Programkod Interpretator CPU Python: Programkod i språket Python 99 100

IDLE För att starta IDLE, skriv följande kommando i ett terminalfönster idle3 eller F5 idle3 &! Om det krånglar, använd idle3 -n eller idle3 -n & 101 102 DEMO: STARTA PYTHON (IDLE) SPARA TILL FIL I IDLE 103 104

Vad händer när det blir fel? Olika typer av fel: syntax error (syntaxfel) runtime error (fel vid körning) semantic error (semantiskt fel) SLUT 105 106