729G04 Programmering och diskret matematik Python'1:'Labbmiljö'och'introduk7on'7ll'Python'
Föreläsningsöversikt Upplägg'för'programmeringsdelen' Labbmiljön' Introduk7on'7ll'Python:' data:'siffror,'text,'listor' funk7oner:'egna'och'inbyggda' (denna'föreläsning'kommer'fortsäda'på'torsdag)'
Kursmål: programmering konstruera'grundläggande'datorprogram'och'formella' modeller'för'enkla'kogni7onsvetenskapliga'7llämpningar' förklara'vad'en'algoritm'är'och'7llä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'ad'konstruera'enkla'datorprogram'
Examination: Programmering TEN3'2,5hp:'Datorsalstenta'(G/VG)' LAB5'1hp:'Individuella'labbar'(G)' LAB6'1hp:'Parlabbar'(G)'
Personal under Pythondelen Lärare:'Jody'Foo' Kursassistent:'Evelina'Rennes' Labbassistenter:'Sarah'Albertsson,'Per'Fallgren,'Ove' Jansson,'Evelina'Rennes' Kursadministratör:'Annelie'Almquist'
Upplägg för programmeringsdelen
Tre delar Introduk3on4och4syntax4 Föreläsning'1[3' Labb'0[3,'görs'individuellt' Lek7on'1' Strukturera4programflöde4 Föreläsning'4'&'5' Labb'4'och'5,'görs'i'par' Lek7on'2' Modellering:4grafer4i4Python4 Föreläsning'6[8' Labb'6[8,'görs'i'par' Lek7on'3[5'
Översiktsschema vecka4 FÖ/LE4 Handledda4labb3llfällen4 Inlämning4 40' FÖ'1'&'2' 0.1' 41' 1.1,'2.1' Labb'1' 42' FÖ'3,'LE'1' 2.2,'3.1' Labb'2' 43' 44' FÖ'4' 3.2,'3.3,'4.1' Labb'3' 45' FÖ'5,'LE'2' 4.2,'5.1' Labb'4' 46' 5.2,'5.3' Labb'5' 47' FÖ'6,'LE'3' 6.1' 48' FÖ'7,'LE'4' 6.2,'7.1' Labb'6' 49' FÖ'8,'LE'5' 7.2,'8.1' Labb'7' 50' 8.2' Labb'8' 51' Tenta'
Labbgrupper Individuella4labbar4(labb40J3)4 Anmäl'er'7ll'en'labbgrupp'i'Webreg'(se'kurshemsidan)' Parlabbar4(labb44J8)4 Anmälan'sker'också'via'Webreg.' OBS!'Försök'aD'bilda'labbpar'där'båda'medlemmarna' ligger'på'samma'nivå!'
Inlämning Labbar'skickas'in'via'e[post'(bifoga'kod'etc)'7ll' 729G04@ida.liu.se4 Endast4en4labb4per4eJpost4 Ni'får'bekräfelse'på'aD'den'är'moDagen' Vik7gt'aD'ni'skriver'korrekt'ämnesrad:'labbnummer)+'ert) LiU.ID)+'handledares)ID)t.ex.' Labb'1'jodfo01'[evere22]' Labb'4'jodfo01'jodfo02'[evere22]' E[post'förvandlas'7ll'ärenden'som'blir'7lldelade'räD' labbassistent'
Komplettering av labbar Skicka'in'kompleDering'som'svar'på'bekräfelsen,'så'får'er' labbassistent'en'no7fiering'om'ad'ni'lämnat'in'en' kompledering.'
Varför gör vi på detta viset? Ni'får'bekräfelse'på'aD'en'labb'lämnats'in' Minska'risken'för'aD'labbinlämningar'drunknar'bland'alla' andra'mail' Inlämnade'labbar'kvar'hos'kursen'istället'för'hos'en' labbassistent' Även'om'er'labbassistent'jobbar'kvar'om/när'ni' komplederar'i'fram7den,'hamnar'er'inlämning'på'ed' säkert'ställe'
Rättning och deadlines Översiktsschemat'ger'en'bild'över'när'vilken'labb'ska' lämnas'in.' Det'bästa'är'om'ni'ligger'i'fas' 'om'ni'inte'ligger'i'fas' kommer'ni'ha'labbar'kvar'och'inga'handledda'labbar'ad' gå'på.' Datum'för'räDnings7llfällen'finns'på'kurshemsidan.' Deadlines4 Förstagångsinlämningar:'114januari420164 KompleDeringsinlämningar:'254januari420164
Litteraturhänvisningar På'kurshemsidan'anges'området'för'föreläsningarna,'samt' rekommenderad'kurslideratur.' Använd'innehållsförteckningar'och'index'i'böckerna'eller' Googla'för'hiDa'relevanta'avsniD'aD'läsa.' AD'självständigt'orientera'er'i'liDeraturen'är'en'del'av' kursen.' TIPS:'Den'interak7va'boken'är'bra'+'aD'det'finns' yderligare'resurser'på'kurshemsidan'(klicka'på'"resurser")'
Labbsalar och labbmiljön
Labbmiljön HiDa'7ll'PUL:arna' Konto' Linux'
PUL:arna
IDA-konto Samma'användarnamn'och'lösenord'som'för'LiU[ID'(e[ post'm.m.)' Registrering' 'LiU[ID' 'IDA[konto' Jobba'hemmifrån:' http://www.ida.liu.se/local/students/remote/index.sv.shtml
Fönster och skal
Starta terminal-programmet
Fönster terminalapplikationen och skal Fönster'7ll'applika7onen'Terminal'som'kör'skalet'tsh' (TENEX'C'shell'f.'1975).'ED'skal'(shell)'är'eD' textbaserat'program'som'har'7ll'uppgif'ad'göra'det' möjligt'för'användaren'ad'köra'andra'program'och' kommandon.'
Fönster terminalapplikationen och skal Fönster'7ll'applika7onen'Terminal'som'kör'skalet'bash' (Bourne[again'shell'f.'1989).'
Principer och begrepp för skalfönster prompt' kommandon' argument' förgrund' bakgrund' output/stdout'
Vanliga kommandon ls' 'list' cd' 'change'directory' rm' 'remove' mv' 'move' pwd' 'print'working'directory'
Filsystem?
Filsystem Filer'och'kataloger/mappar'+'symboliska'länkar' tecken' betydelse'./! nuvarnade katalog!../! katalogen ovanför! ~! användarkatalog! ~/! min hemkatalog!
Navigation i skalet zaza <1>!
Navigation i skalet zaza <1> pwd!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2>!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /! zaza <3>!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /! zaza <3> cd ~/!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /! zaza <3> cd ~/! zaza <4>!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /! zaza <3> cd ~/! zaza <4> cd ~/www-pub!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /! zaza <3> cd ~/! zaza <4> cd ~/www-pub! zaza <5>!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /! zaza <3> cd ~/! zaza <4> cd ~/www-pub! zaza <5> cd..!
Navigation i skalet zaza <1> pwd! /home/jodfo042! zaza <2> cd /! zaza <3> cd ~/! zaza <4> cd ~/www-pub! zaza <5> cd..! zaza <6>!
Labb 0: STONE
Programmeringsspråket Python
Varför Python Generellt,'högnivåspråk' Fokus'på'läsbarhet' Flera'programmeringparadigm'kan'användas' Det'går'aD'använda'7ll'vardags'
Om Python - Historia Skapades'av'Guido'van'Rossum' version'1.0:'januari'1994' version'2.0:'oktober'2000' version'3.0:'december'2008' version'3.5:'september'2015' python)is)for)girls)
Så hur ser det här Python ut? Demo'av'IDLE'3:'starta,'spara'fil,'öppna'fil,'ladda'kod,'köra' kod,'interak7vt'läge'
Representera information
Wikimedia Commons, JurgenG!
Siffror
Siffror - numeriska värden Vi'kommer'aD'jobba'med'två'typer'av'siffror:' heltal'(integer):'int' decimaltal:'float' Heltal'och'decimaltal'är'två)olika)datatyper)i'Python.'
Från heltal till flyttal #"För"att"konverer"ett"heltal"till"ett"flyttal"använder"" #"vi"den"inbyggda"funktionen"float()" float(1)$#"ger"1.0" & #"Den"inbyggda"funktionen"int()"konverterar"ett"flyttal" #"till"ett"heltal."observera"att"det"decimala"värdet"inte" #"avrundas,"utan"kapas"(trunkeras)" int(1.1)$#"ger"1" int(1.6)$#"ger"1"
Funktioner
En funktion i matematiken f:&a&+>&b& & Funktionen&f&går&avbildar&mängden&A&på&mängden&B.& & f(x)&=&2x& & Vi&definierar&funktionen&f&som&att&den&tar&in&ett&värde,& argumentet&x.&det&som&"kommer&ut"&från&funktionen&är& värdet&på&x&multiplicerat&med&2.&
En funktion i Python def$min_funktion(x):$ &&&&return$2$*$x$ Vi&definierar&funktionen&min_funktion&som&att&den&tar&in& ett&värde,&argumentet&x.&det&som&"kommer&ut"&från& funktionen&är&värdet&på&x&multiplicerat&med&2.& & & &
Funktionsdefinitionens beståndsdelar funk7onsnamn' argument' returvärde' indentering'för'ad'visa'vad'som'7llhör'funk7onen' def f(x):! return x + x!
Inbyggda funktionen print() #"Funktionen"print()"skriver"ut"saker."Exempel:" print(5)$ print(1.23456789)$ &
Inbyggda funktionen print() #"Vi"definierar"funktionen"min_funktion()." #"OBSERVERA"att"detta"bara"är"definitionen,"inget"anrop!" def$min_funktion(x):$ &&&&return$2$*$x$ & #"Nedanstående"kommer"skriva"ut"10" print(min_funktion(5))$
CODELA: Funktioner hdps://www.ida.liu.se/codela/as/729g04a/funk7oner1'
Datatyp: Sträng En'sträng'är'en'sekvens'av'tecken.' Början'och'slut'på'en'sträng'markeras'med'citaDecken'"' Ex:' "hej"& "Här&är&en&längre&sträng!"& "356"&
Operatorer: jobbar med data
Operatorer +,'[,'/,'*,'%' 5'+'5' 3'['1' 21'/'7' 3'*'7' 7'%'3'
Sätta ihop strängar Använd'operatorn'''+''''med'två'strängar.' "Hej"'+'"san"' '"Hejsan"'
Datatyper är viktiga 5'+'5'='?' "hej"'+'"5"'='?' "hej"'+'5'='?'
CODELA: Siffror, operatorer, strängar https://www.ida.liu.se/codela/as/729g04a/sos&
Variabler
Variabler och tilldelning En'variabel'är'en'e7keD'som'står'för'eD'värde' Låt'e7keDen'x'stå'för'värdet'10' x'='10' Vi'säger'aD'vi'7lldelar'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'
Variabler och tilldelning x&=&5& y&=&x& x&=&x&+&y&
Variabelnamn 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&
Skillnad på variabelnamn och strängar namn1&=$"pythagoras"$ namn2&=$"triangel"$ & #"Vad"blir"namn3"och"namn4?" namn3&=$namn1$+$"$"$+$namn2$ namn4&=$"namn1"$+$"$"$+$"namn2"$
CODELA: variabler och värden https://www.ida.liu.se/codela/as/729g04a/variabler&