240 likes | 404 Vues
Föreläsning 2 Datalogi för E1 2D1343. Interpreterare och kompilator. Två olika typer av program omvandlar högnivå till lågnivå program. Interpreterande program och kompilerande program. Python är ett interpreterande programmeringsspråk. Java, c, c++ är kompilerande programmeringsspråk.
E N D
Interpreterare och kompilator • Två olika typer av program omvandlar högnivå till lågnivå program. Interpreterande program och kompilerande program. • Python är ett interpreterande programmeringsspråk. • Java, c, c++ är kompilerande programmeringsspråk.
Vad är ett program • Input (tangentbord, fil, nätverket …) • Output (skärm, fil, ljudkortet) • Logiken • Matematisk beräkning • Jämförelse • Villkor satser • loop
Språkets syntax • Syntax betyder språkets struktur. • Följande är en massa ord i svenska språket:Labbarna i tid gör till bonus samla tentamen! OchKan man gissa fram vad meningen vill egentligen säga? Kan en maskin gissa det utan att missuppfatta meningen? • Ovanstående gäller också för olika programmeringsspråk bl.a. Python: Man kan alltså inte skriva: 23 = age Om man vill lagra talet 3 i variabeln age För att datorn ska förstå ska man skriva på följande sätt: age = 23
Värde, datatyp och variabel, • Ett värde är en data som ska behandlas av programmet. Ett värde kan ha en typ. Vi delar typen till två stora delar till och börja med tal och strängar. • En variabel är ett namn som refererar till ett värde.t.ex: kursbeteckning = ”2D1343”
Utskrift på skärmen print ”Hej” print ”Hur är det?” Hej Hur är det? 1 print ”Hej”, print ”Hur är det?” Hej Hur är det? 2 Nu med ett kommatecken
Kommentarer # Följande sats skriver ut ett # viktig meddelande print ”skriv kod för att lära dig python” Skriv kod för att lära dig python
Variabelnamn • Variabelnamn • Typ • Värde • Tilldelning Exempel: age = 20 name = ”vahid”
Reserverade ord Det finns en del ord som programmeraren inte får välja som variabelnamn, de har ett betydelse för språket och därför kallar vi dom reserverade ord: and del for is raise assert elif from lambda try break else global not while class except if or return continue exec import pass def finally in print
Standard data typer • Number • Integer • Long • Float • Complex number • String • List • Tuple • Dicsionary
Omvandling mellan typer string till int agetext = ”21” age = int(agetext) int till string weekdays = 7 wdtext = str(weekdays)
Definition och användning Ett program består av definitioner och användning av definitioner. Det blir fel om vi försöker använda något som inte är definierat. Rätt namn = ”Vahid” print namn,”är 20” Här blir det fel, varför? print namn,”är 20”
Några inbyggda funktioner int(a) divmod(a,b) str(a) pow(a,b) abs(a) round(a) round(a,b) cmp(a,b) len(a) type(a)
import Det finns en hel del andra funktioner som man kan importera från fördefinierade bibliotek, för att importera de så använder man reserverade ordet fromochimport: t.ex. för att importera funktionen sin() som finns i modulen math så skriver man i programmet: from math import sin
inläsning • Inläsning från tangentbordet kan man göra på 3 följande sätt: • raw_input() • input() • sys.stdin.readline() (det sista sättet behöver importera sys modulen)
Operatorer +, -, / ,* :är aritmetiska operatorer som används för tal. **: är en till operator som används för tal. 2**5 returnerar 2*2*2*2*2=32 *, + är två operatorer som kan användas för strängar och listor, förklaringen framgår av exempel på nästa bild:
Jämförelseoperatorer Följande är operatorer som returnerar ett boolskt värde d.v.s. sant eller falskt. Med hjälp av följande operatorer kan man skapa villkor-sats: ==, is !=, not < <= > >=
Exempel A=1 B=1 A is B True A=”hej” B=”hej” A is B True A=”hej” B=”hej” A == B True A=1 B=1 A==B True A=”hej”+”1” B=”hej”+”1” A is B False A=”hej”+”1” B=”hej”+”1” A == B True
If-sats If-sats används för att undvika eller påtvinga en-sats att exekveras: Syntax: if villkor-sats : sats som ska exekveras om villkoret är sant
exempel age =18 if age<20: print ”Du är inte behörig för”, ”att handla på systembolaget ” Obs! Läs själv om if-elif-else på python kramaren
while-loop(while-slinga) • while-slinga har samma funktion som for-slinga d.v.s att används för att upprepa en sak flera ggr fast den har en mycket annorlunda syntax: while ett villkor sats : koden som ska upprepas koden som ska se till att villkoret blir falskt efter ett tag
Exempel iter=0 while iter != 3: print ”Hej”, iter=iter+1 Hej Hej Hej
Indentering Indentering (indragning av kod) betyder mycket för python. iter=0 while iter != 3: print ”Hej”, iter=iter+1 Vad kommer att ovanstående program göra?
återigen print Funktionen print är inställd att mellan varje objekt som ska skrivas ut lägga till en extra mellanslag. t.ex: print ”python är”, ”enkel” python är enkel Detta kan man stänga av genom att skriva sys.stdout.softspace=False Efter print satsen