Linda Mannila 11.9 · Denna föreläsning l Räkneövningstider l Algoritmer l Interaktiv Python...
Transcript of Linda Mannila 11.9 · Denna föreläsning l Räkneövningstider l Algoritmer l Interaktiv Python...
Algoritmer och interaktiv PythonAlgoritmer och interaktiv PythonLinda Mannila 11.9.2007Linda Mannila 11.9.2007
Denna föreläsningDenna föreläsning
l Räkneövningstider
l Algoritmer
l Interaktiv Python
l Datatyper
l Variabler
l Typning
l Räkneövningstider
l Algoritmer
l Interaktiv Python
l Datatyper
l Variabler
l Typning
RepetitionRepetition
l Vad vi än skall göra måste vi veta hur vi skall bära oss åt för att få det gjortl Kan inte köra bil om vi inte vet hur man görl Omöjligt (åtminstone himla dumt ☺) att hoppa i 10 m djupt vatten om vi inte kan simma
l MEN - vi kan gå i bilskolan och ta simlektionerför att lära oss
l En dator vet inte hur den skall göra någotoch kan inte lära sigl Användaren måste förklara vad datorn skallgöra och hur à programmering
l Vad vi än skall göra måste vi veta hur vi skall bära oss åt för att få det gjortl Kan inte köra bil om vi inte vet hur man görl Omöjligt (åtminstone himla dumt ☺) att hoppa i 10 m djupt vatten om vi inte kan simma
l MEN - vi kan gå i bilskolan och ta simlektionerför att lära oss
l En dator vet inte hur den skall göra någotoch kan inte lära sigl Användaren måste förklara vad datorn skallgöra och hur à programmering
RepetitionRepetition
l För att få en dator att göra något måste vil skriva ett program som exakt berättar för datorn vad den skall göra, och
l hur den skall göra det, steg för steg
l Datorn kan sedan exekvera (köra) programmetl utför varje steg tills det slutliga målet är nått
l Instruktioner (satser) är den verkliga grunden i ettprogram, och används för att manipulera data, utföra beräkningar, skriva ut data på skärmen osv.
l För att få en dator att göra något måste vil skriva ett program som exakt berättar för datorn vad den skall göra, och
l hur den skall göra det, steg för steg
l Datorn kan sedan exekvera (köra) programmetl utför varje steg tills det slutliga målet är nått
l Instruktioner (satser) är den verkliga grunden i ettprogram, och används för att manipulera data, utföra beräkningar, skriva ut data på skärmen osv.
Program skapas i faserProgram skapas i faser
1. Definiera problemet
2. Identifiera input och output
3. Designa en algoritm
4. Representera algoritmen (flödesschemaoch/eller pseudokod)
5. Skriv programkoden
6. Testa programmet (kör det)
7. Debugga programmet (fixa eventuella fel)
1. Definiera problemet
2. Identifiera input och output
3. Designa en algoritm
4. Representera algoritmen (flödesschemaoch/eller pseudokod)
5. Skriv programkoden
6. Testa programmet (kör det)
7. Debugga programmet (fixa eventuella fel)
Vad är en algoritm?Vad är en algoritm?
l En mängd steg-för-steg instruktioner som berättarexakt hur ett problem skall lösas (ett “recept”)
l Exakta, entydiga och fullständiga instruktioner
l Problemet måste vara välspecifierat
l Algoritmer kan uttryckasl med vanligt språk (svenska, finska, kinesiska), l i ett programmeringsspråk, l med pseudokod ellerl med flödesscheman
l En mängd steg-för-steg instruktioner som berättarexakt hur ett problem skall lösas (ett “recept”)
l Exakta, entydiga och fullständiga instruktioner
l Problemet måste vara välspecifierat
l Algoritmer kan uttryckasl med vanligt språk (svenska, finska, kinesiska), l i ett programmeringsspråk, l med pseudokod ellerl med flödesscheman
Vad är ett program?Vad är ett program?
l En algoritm som implementerats såatt den kan utföras av en dator
l Uttrycks i ett programmeringsspråk
l En algoritm som implementerats såatt den kan utföras av en dator
l Uttrycks i ett programmeringsspråk
Fasters resaFasters resa
ProblemDin gamla faster från Amerika skall komma på besök, men du hinner inte möta hennepå flygfältet. I stället måste du henne instruktioner för hur hon kan ta sig till ditt hus påegen hand. Du ger henne tre olika alternativ:
Ta en taxi
1. Gå till taxi-stationen2. Hoppa in i en taxi3. Ge chauffören hemadressen
Hyr en bil
1. Gå till biluthyrningsdisken på flygfältet2. Hyr en bil3. Använd kartan för att hitta ända fram
Ta bussen
1. Ta buss 57 till centrum2. Byt till buss 613. Stig av på Rådhusgatan4. Gå två kvarter söderut
ProblemDin gamla faster från Amerika skall komma på besök, men du hinner inte möta hennepå flygfältet. I stället måste du henne instruktioner för hur hon kan ta sig till ditt hus påegen hand. Du ger henne tre olika alternativ:
Ta en taxi
1. Gå till taxi-stationen2. Hoppa in i en taxi3. Ge chauffören hemadressen
Hyr en bil
1. Gå till biluthyrningsdisken på flygfältet2. Hyr en bil3. Använd kartan för att hitta ända fram
Ta bussen
1. Ta buss 57 till centrum2. Byt till buss 613. Stig av på Rådhusgatan4. Gå två kvarter söderut
Fasters resaFasters resa
l Alla alternativ är en algoritm, dvs. en samling steg-gör-steg-instruktioner
l Alla tre algoritmer leder till samma resultat, men på olika sättl Även inom programmering flera olika algoritmer för hur man kanutföra en viss uppgift eller lösa ett problem
l Varje algoritm har sina för- respektive nackdelarl Taxi – snabbt men dyrtl Bil – kräver mer av din faster men flexibeltl Buss – långsamt men billigt
l Man väljer algoritm beroende på omständigheterna
l Alla alternativ är en algoritm, dvs. en samling steg-gör-steg-instruktioner
l Alla tre algoritmer leder till samma resultat, men på olika sättl Även inom programmering flera olika algoritmer för hur man kanutföra en viss uppgift eller lösa ett problem
l Varje algoritm har sina för- respektive nackdelarl Taxi – snabbt men dyrtl Bil – kräver mer av din faster men flexibeltl Buss – långsamt men billigt
l Man väljer algoritm beroende på omständigheterna
En algoritm måste...En algoritm måste...
l vara välordnadl klart i vilken ordning de olika instruktionerna skall utföras
l innehålla entydiga instruktionerl inte kunna tolkas på olika sätt, ingen tvekan om betydelsen
l kunna utförasl alla instruktioner som ingår måste gå att utföra. Ej t.ex. instruktion som kräveratt vi dividerar med noll
l alltid ge ett resultatl annars omöjligt veta om algoritmen har utförts eller om den ännu är på hälft
l avslutas inom ändlig tidl inga evighetsprogram, måste alltid komma till ett slut
l vara välordnadl klart i vilken ordning de olika instruktionerna skall utföras
l innehålla entydiga instruktionerl inte kunna tolkas på olika sätt, ingen tvekan om betydelsen
l kunna utförasl alla instruktioner som ingår måste gå att utföra. Ej t.ex. instruktion som kräveratt vi dividerar med noll
l alltid ge ett resultatl annars omöjligt veta om algoritmen har utförts eller om den ännu är på hälft
l avslutas inom ändlig tidl inga evighetsprogram, måste alltid komma till ett slut
Koka teKoka te
Version 1:
1.Koka vatten
2.Sätt tepåsen i en kopp
3.Häll vatten i koppen
Version 1:
1.Koka vatten
2.Sätt tepåsen i en kopp
3.Häll vatten i koppen
Koka teKoka te
Version 2:1. Fyll en kastrull med vatten.2. Sätt kastrullen på spisplattan.3. Vänta tills vattnet kokar.4. Ta av kastrullen från plattan.5. Ta fram en tepåse.6. Sätt påsen i en kopp.7. Lyft vattenkastrullen.8. Luta kastrullen så att vattnet rinner ner i koppen.9. Vänta tills koppen är full.10. Ställ tillbaka kastrullen på plattan.
Version 2:1. Fyll en kastrull med vatten.2. Sätt kastrullen på spisplattan.3. Vänta tills vattnet kokar.4. Ta av kastrullen från plattan.5. Ta fram en tepåse.6. Sätt påsen i en kopp.7. Lyft vattenkastrullen.8. Luta kastrullen så att vattnet rinner ner i koppen.9. Vänta tills koppen är full.10. Ställ tillbaka kastrullen på plattan.
Poängen?Poängen?
l När man programmerar måste man vara
otroligt exakt och detaljerad
l Precis allt som datorn skall göra måsteskrivas ut
l När man programmerar måste man vara
otroligt exakt och detaljerad
l Precis allt som datorn skall göra måsteskrivas ut
Att skapa programAtt skapa program
l Ett program är helt enkelt en lösning på ett probleml Det svåra ligger i att komma på lösningen
l För att ett program skall fungera som man tänkt: för- och eftervillkor
Förvillkor => Program => Eftervillkor
l Om förvillkoren är uppfyllda då man startarprogrammet kommer eftervillkoren att vara uppfylldadå man har kört programmet
l Ett program är helt enkelt en lösning på ett probleml Det svåra ligger i att komma på lösningen
l För att ett program skall fungera som man tänkt: för- och eftervillkor
Förvillkor => Program => Eftervillkor
l Om förvillkoren är uppfyllda då man startarprogrammet kommer eftervillkoren att vara uppfylldadå man har kört programmet
Att skapa programAtt skapa program
l “Jag är snål på sockerkaka men har ingen. Hur skall jag få en?”
l Vissa förutsättningar som måste gälla föratt du skall kunna lösa problemetl ingredienser som behövsl en funktionsduglig ugnl kakforml veta hur man bakar en kaka, dvs. ett recept
à Kakbakningens förvillkor
l “Jag är snål på sockerkaka men har ingen. Hur skall jag få en?”
l Vissa förutsättningar som måste gälla föratt du skall kunna lösa problemetl ingredienser som behövsl en funktionsduglig ugnl kakforml veta hur man bakar en kaka, dvs. ett recept
à Kakbakningens förvillkor
Att skapa programAtt skapa program
l Förvillkor: Du har alla ingredienseroch annat som behövs
l Program: Receptet
l Eftervillkor: Nygräddad sockerkaka
l Förvillkor: Du har alla ingredienseroch annat som behövs
l Program: Receptet
l Eftervillkor: Nygräddad sockerkaka
Att skapa programAtt skapa program
l Förvillkor: Det som måste gälla föratt programmet skall kunna köras
l Program: Den implementeradealgoritmen / koden
l Eftervillkor: Det resultat man är uteefter
l Förvillkor: Det som måste gälla föratt programmet skall kunna köras
l Program: Den implementeradealgoritmen / koden
l Eftervillkor: Det resultat man är uteefter
SpaghettikodSpaghettikod
l Första programmen skrivna i högnivåspråk var ofta svåra attläsa och förstål användningen av GOTO-satser, (berättar för datorn att hoppa till en viss rad i programmet)
à spaghettikod, massa hopp framoch tillbaka i koden, svårhittade fel
l Första programmen skrivna i högnivåspråk var ofta svåra attläsa och förstål användningen av GOTO-satser, (berättar för datorn att hoppa till en viss rad i programmet)
à spaghettikod, massa hopp framoch tillbaka i koden, svårhittade fel
Spaghettikod, exempelSpaghettikod, exempel
10 i = 0
20 i = i + 1
30 print i; " squared = "; i * i
40 if i < 10 then goto 20
50 print "Program Completed."
60 end
l Problem?
10 i = 0
20 i = i + 1
30 print i; " squared = "; i * i
40 if i < 10 then goto 20
50 print "Program Completed."
60 end
l Problem?
Strukturerad programmeringStrukturerad programmering
l Edsger Dijkstra (1930-2002) l Mål: program som är lättare att skriva, läsaoch underhålla
l Samma utgångspunkt: en mängdinstruktioner som tillsammans bildar ettprogram.
l I stället för hoppsatser:l Tre olika typer av instruktioner
l Vissa skall utföras en gångl Upprepasl Kanske inte utföras alls
l Edsger Dijkstra (1930-2002) l Mål: program som är lättare att skriva, läsaoch underhålla
l Samma utgångspunkt: en mängdinstruktioner som tillsammans bildar ettprogram.
l I stället för hoppsatser:l Tre olika typer av instruktioner
l Vissa skall utföras en gångl Upprepasl Kanske inte utföras alls
Tre instruktionstyperTre instruktionstyper
Sekvens: allt i tur och ordningFörst – sedan – sist
Villkorliga: valmöjlighet, kanske inte utförs allsOm... så...
Iterativa: repeteras, om och om igenUpprepa, tills, medan, ...
Sekvens: allt i tur och ordningFörst – sedan – sist
Villkorliga: valmöjlighet, kanske inte utförs allsOm... så...
Iterativa: repeteras, om och om igenUpprepa, tills, medan, ...
No more spaghetticodeNo more spaghetticode
10 i = 0
20 i = i + 1
30 print i; " squared = "; i * i
40 if i < 10 then goto 20
50 print "Program Completed."
60 end
l Strukturerad, anti-spaghettiversion
10 i = 0
20 i = i + 1
30 print i; " squared = "; i * i
40 if i < 10 then goto 20
50 print "Program Completed."
60 end
l Strukturerad, anti-spaghettiversion
for i in range(1,10):
print i, "squared =", i ** 2
print "Program Completed."
for i in range(1,10):
print i, "squared =", i ** 2
print "Program Completed."
Representera algoritmerRepresentera algoritmer
l Algoritmer à planera program med papper ochpenna, utan dator och programmeringsspråkl lösningsmodell som sedan kan implementeras och exekveras
l Hittills uttryckt i naturligt språk
l Mer exakta alternativ:l pseudokod
l flödesscheman
l Algoritmer à planera program med papper ochpenna, utan dator och programmeringsspråkl lösningsmodell som sedan kan implementeras och exekveras
l Hittills uttryckt i naturligt språk
l Mer exakta alternativ:l pseudokod
l flödesscheman
Pseudokod & flödesscheman
Pseudokod & flödesscheman
l inte programmeringsspråk
l låter oss strukturera algoritmer (program) klart och tydligt utan att behöva använda ett programmeringsspråk
l viktiga när man designar program
l inte programmeringsspråk
l låter oss strukturera algoritmer (program) klart och tydligt utan att behöva använda ett programmeringsspråk
l viktiga när man designar program
Pseudokod vs. flödesschemanPseudokod vs.
flödesscheman
Pseudokod (”nästan kod”)
beskriver algoritmer exakt med ord
Flödesscheman
beskriver algoritmer exakt grafiskt med figurer
Pseudokod (”nästan kod”)
beskriver algoritmer exakt med ord
Flödesscheman
beskriver algoritmer exakt grafiskt med figurer
Flödesscheman, symbolerFlödesscheman, symboler
Flödesscheman, symbolerFlödesscheman, symboler
Flödesscheman, symbolerFlödesscheman, symboler
In- ellerutmatning
Funktion, under-program
Start
Stop
Koka makaronerKoka makaroner
Slut
Start
vatten àààà gryta
koka vatten
makaroner -> gryta
tills makaroner mjuka eller lång tid gått
låt makaroner koka
Algoritmer i algoritmerAlgoritmer i algoritmer
Vanlig approach:Dela problemet i mindre delar (”divide and conquer”)
Här t.ex. egen algoritm för att koka vatten
Input: vatten, gryta, spis
1. Häll vatten i gryta2. Ställ gryta på spis3. Vrid på platta4. Vänta tills vatten kokar
Vanlig approach:Dela problemet i mindre delar (”divide and conquer”)
Här t.ex. egen algoritm för att koka vatten
Input: vatten, gryta, spis
1. Häll vatten i gryta2. Ställ gryta på spis3. Vrid på platta4. Vänta tills vatten kokar
Algoritmer i algoritmerAlgoritmer i algoritmer
Slut
Start
UppgiftUppgift
l Parvis – minst en i paret bör ha snörade skor
l Skriv en algoritm för hur man knyter skosnören
l Pseudokod, flödesschema eller båda
l Parvis – minst en i paret bör ha snörade skor
l Skriv en algoritm för hur man knyter skosnören
l Pseudokod, flödesschema eller båda
Äntligen...Äntligen...
Dags att börja programmera
- Interaktiv Python -
Dags att börja programmera
- Interaktiv Python -
RepetitionRepetition
l Python är ett tolkat språk
l Den interaktiva promptenl >>>
l Instruktionerna körs (exekveras) genastde skrivs in
l Omedelbar feedback – du ser resultatetgenast
l Python är ett tolkat språk
l Den interaktiva promptenl >>>
l Instruktionerna körs (exekveras) genastde skrivs in
l Omedelbar feedback – du ser resultatetgenast
Python som räknemaskinPython som räknemaskin
l Skriv in beräkningar vid promptenoch tryck enter
l Vanliga aritmetiska operationer:
l Skriv in beräkningar vid promptenoch tryck enter
l Vanliga aritmetiska operationer:
Python som räknemaskinPython som räknemaskin
l Operationerna utförs i samma ordningsom i matten:
1. parenteser ()
2. exponenter **
3. multiplikation *, division /, och rest %
4. addition + och subtraktion -
l Operationerna utförs i samma ordningsom i matten:
1. parenteser ()
2. exponenter **
3. multiplikation *, division /, och rest %
4. addition + och subtraktion -
DatatyperDatatyper
l Värden kan vara av olika typl t.ex. text är inte ett tal à behöver en egen typ
l Primitiva datatyper (eng. primitives)l Grundläggande typer, bastyperl Motsvarar ett enda värde
l Samlingar (eng. collections)l Kombinationer av de primitival Kan innehålla flera värden
l Värden kan vara av olika typl t.ex. text är inte ett tal à behöver en egen typ
l Primitiva datatyper (eng. primitives)l Grundläggande typer, bastyperl Motsvarar ett enda värde
l Samlingar (eng. collections)l Kombinationer av de primitival Kan innehålla flera värden
Datatyper: TalDatatyper: Tal
l Heltal (eng. integer)l tal utan decimaldell 13, 23, 1128, -99 etc.
l Flyttal (eng. Float)l tal med decimaldell 2.3, -0.0076, 19.89, 6.0 etc.
l Obs! Punkt, intekomma!
l Heltal (eng. integer)l tal utan decimaldell 13, 23, 1128, -99 etc.
l Flyttal (eng. Float)l tal med decimaldell 2.3, -0.0076, 19.89, 6.0 etc.
l Obs! Punkt, intekomma!
l Komplexa tal (eng. complex)l 4+3j
l Longl Stora heltall 62081372132
l Komplexa tal (eng. complex)l 4+3j
l Longl Stora heltall 62081372132
DivisionDivision
l När ett heltal divideras med ett annat utförsheltalsdivision:
l 12 / 5 = 2
l 1 / 3 = 0
l För att få reda på resten kan man användarest-operatorn (%)l 12 % 5 = 2
l 1 % 3 = 1
l När ett heltal divideras med ett annat utförsheltalsdivision:
l 12 / 5 = 2
l 1 / 3 = 0
l För att få reda på resten kan man användarest-operatorn (%)l 12 % 5 = 2
l 1 % 3 = 1
FlyttalsdivisionFlyttalsdivision
>>> 12 / 5
2
>>> 12.0 / 5
2.3999999999999999
>>> 12 / 5.0
2.3999999999999999
>>> 12.0 / 5.0
2.3999999999999999
För att få flyttalsdivisionmåste minst ett av talenvara ett flyttal.
För att få flyttalsdivisionmåste minst ett av talenvara ett flyttal.
Datatyper: SträngarDatatyper: Strängar
l Text i programmeringsspråk kallas för strängar
l Sträng = text innanför citationstecken
l Både ' och " kan användas‘Detta är en sträng’
“Och det här”
l Strängar kan innehålla citationstecken‘Han sade: “Hoppsan” högt’
l Text i programmeringsspråk kallas för strängar
l Sträng = text innanför citationstecken
l Både ' och " kan användas‘Detta är en sträng’
“Och det här”
l Strängar kan innehålla citationstecken‘Han sade: “Hoppsan” högt’
Utskrift på skärmenUtskrift på skärmen
l Python
l Java
l Python
l Java
SträngoperationerSträngoperationer
l Både + och * kan användas med strängar
l + operatorn konkatenerar (fogar ihop) två strängar>>> print “Hej" + “då!”
skriver ut Hejdå!
l Operatorn * repeterar en sträng>>> print 3 * "ha"
skriver ut hahaha
l Både + och * kan användas med strängar
l + operatorn konkatenerar (fogar ihop) två strängar>>> print “Hej" + “då!”
skriver ut Hejdå!
l Operatorn * repeterar en sträng>>> print 3 * "ha"
skriver ut hahaha
Bart SimpsonBart Simpson
>>> print "I won’t teach others to fly” * 100
Skriver ut texten 100 gånger!
Men, efter varandra
– hur få dem på skilda rader?
>>> print "I won’t teach others to fly” * 100
Skriver ut texten 100 gånger!
Men, efter varandra
– hur få dem på skilda rader?
Bart SimpsonBart Simpson
>>> print ("I won’t teach others to fly” + ”\n”) * 100
eller
>>> print ("I won’t teach others to fly\n” * 100
Specialtecknet “\n” skriver ut en ny rad.
>>> print ("I won’t teach others to fly” + ”\n”) * 100
eller
>>> print ("I won’t teach others to fly\n” * 100
Specialtecknet “\n” skriver ut en ny rad.
Foga ihop strängar med talFoga ihop strängar med tal
l Använd kommatecken för att foga ihop strängar med t.ex. tal
>>> print "2 + 2 blir", 2 + 2
>>> print "3 * 4 blir", 3 * 4
>>> print 100 - 1, "är det samma som 100 - 1"
l Använd kommatecken för att foga ihop strängar med t.ex. tal
>>> print "2 + 2 blir", 2 + 2
>>> print "3 * 4 blir", 3 * 4
>>> print 100 - 1, "är det samma som 100 - 1"
VariablerVariabler
l Variabel = namn som refererar till ett värde
l Plats i datorns minne för att lagra data så att vi kan komma åt det senare igen.
l Variabeln är ett namn som refererar till ett värde(pekar på den minnescell som innehåller det värdet)
l Variabel = namn som refererar till ett värde
l Plats i datorns minne för att lagra data så att vi kan komma åt det senare igen.
l Variabeln är ett namn som refererar till ett värde(pekar på den minnescell som innehåller det värdet)
mitt_namn
“Linda”
VariablerVariabler
l I Python skapas en ny variabel samtidigt som man ger den ett värde. Detta görs genom en ochsamma tilldelningssats
>>> mitt_namn = ’Linda’
l = kallas tilldelningsoperator
l Efter tilldelningen kan man användavariabelnamnet var som helst i koden där ett värdeav samma datatyp passar in
>>> print ’Hej’, mitt_namn
Hej Linda
l I Python skapas en ny variabel samtidigt som man ger den ett värde. Detta görs genom en ochsamma tilldelningssats
>>> mitt_namn = ’Linda’
l = kallas tilldelningsoperator
l Efter tilldelningen kan man användavariabelnamnet var som helst i koden där ett värdeav samma datatyp passar in
>>> print ’Hej’, mitt_namn
Hej Linda
VariablerVariabler
l OBS! En variabel som lagrar en primitiv datatypkan bara innehålla ett värde i taget! Om mantilldelar en variabel ett nytt värde skrivs det gamlaöver!
>>> mitt_namn = ’Linda’
>>> print mitt_namn
Linda
>>> mitt_namn = ’Linus’
>>> print mitt_namn
Linus
>>> age = 45
>>> age = age +1
>>> print age
46
l OBS! En variabel som lagrar en primitiv datatypkan bara innehålla ett värde i taget! Om mantilldelar en variabel ett nytt värde skrivs det gamlaöver!
>>> mitt_namn = ’Linda’
>>> print mitt_namn
Linda
>>> mitt_namn = ’Linus’
>>> print mitt_namn
Linus
>>> age = 45
>>> age = age +1
>>> print age
46
VariabelnamnVariabelnamn
l Variabelnamn får intel vara ett nyckelord l börja med en siffra l innehålla otillåtna tecken (t.ex. $, %, ?, =)
l Skillnad på små och stora bokstäver l minBil är inte samma variabel som minbil
l Vänj dig från början vid att använda namn som betyder något: l Dåligt: vd = 7
l Bra: veckodagar = 7
l Variabelnamn får intel vara ett nyckelord l börja med en siffra l innehålla otillåtna tecken (t.ex. $, %, ?, =)
l Skillnad på små och stora bokstäver l minBil är inte samma variabel som minbil
l Vänj dig från början vid att använda namn som betyder något: l Dåligt: vd = 7
l Bra: veckodagar = 7
TypningTypning
l Python har dynamisk typning
l kan själv avgöra vilken datatyp en variabel har
l type(variabelnamn)
l Andra programmeringsspråk har oftastatisk typning
l programmeraren måste deklarera alla variablertill den datatyp som den skall kunna innehåll
l Python har dynamisk typning
l kan själv avgöra vilken datatyp en variabel har
l type(variabelnamn)
l Andra programmeringsspråk har oftastatisk typning
l programmeraren måste deklarera alla variablertill den datatyp som den skall kunna innehåll
TypningTypning
l Python:
vikt = 55.5 (Python vet att vikt är en flyttalsvariabel)
age = 25 (Python vet att age är en heltalsvariabel)
ord = ’dag’ (Python vet att namn är en strängvariabel)
l Statiskt typade språk (t.ex. Java):
float vikt = 55.5
int age = 25
String ord = ’dag’
l Python:
vikt = 55.5 (Python vet att vikt är en flyttalsvariabel)
age = 25 (Python vet att age är en heltalsvariabel)
ord = ’dag’ (Python vet att namn är en strängvariabel)
l Statiskt typade språk (t.ex. Java):
float vikt = 55.5
int age = 25
String ord = ’dag’