Download - Introduktion till programmering - iteration, felhantering och datasamlingar

Transcript
Page 1: Introduktion till programmering - iteration, felhantering och datasamlingar

Introduktion till programmering

Iteration, felhantering och datasamlingar

Page 2: Introduktion till programmering - iteration, felhantering och datasamlingar

Simon [email protected]

Page 3: Introduktion till programmering - iteration, felhantering och datasamlingar

name = 'Simon'print 'Jag heter ' + name

x = 30y = 20svar = x + yprint svar

Repetition - variabler & datatyper ex.1

Jag heter Simon

50

Page 4: Introduktion till programmering - iteration, felhantering och datasamlingar

temperatur = 0

if temperatur >= 20: print 'Varmt och skönt!'else: print 'På med vantar och mössa'

Repetition - selektion ex.1

På med vantar och mössa

Page 5: Introduktion till programmering - iteration, felhantering och datasamlingar

def addera(tal1, tal2): summa = tal1 + tal2 return summa

def main(): svar = addera(5, 10) print svar

main()

Repetition - funktioner ex.2

15

Page 6: Introduktion till programmering - iteration, felhantering och datasamlingar

Felhantering

Olika sorters fel:● Syntaktiska fel● Semantiska fel● Undantag

Robusthet: kod som även kan hantera de undantag som uppstår när användaren inte beter sig som förväntat

Page 7: Introduktion till programmering - iteration, felhantering och datasamlingar

try: #Kod som alltid körs, #stöter potentiellt på ett error.

except typ-av-error: #Kod som körs om try-blocket stöter #på ett error

Felhantering

Page 8: Introduktion till programmering - iteration, felhantering och datasamlingar

try: userInput = raw_input('Skriv in ett heltal:') number = int( userInput )

except ValueError: print 'Det måste vara ett heltal!'

ValueError ex.3

Page 9: Introduktion till programmering - iteration, felhantering och datasamlingar

def dividera(a, b):try:

kvot = a / b return 'Svaret är: ' + str(kvot)

except ZeroDivisionError: return 'Division med 0 är inte tillåtet.'

ZeroDivisionError - del 1 ex.4

Page 10: Introduktion till programmering - iteration, felhantering och datasamlingar

def main(): svar = dividera(10, 2) print svar

svar2 = dividera(5, 0) print svar2

main()

ZeroDivisionError - del 2 ex.4

Svaret är 5

Division med 0 är inte tillåtet.

Page 11: Introduktion till programmering - iteration, felhantering och datasamlingar

Booleska variabler

Booleska variabler tilldelas lämpligen något av värdena från följande konstanter:

● True● False

Men, till skillnad från i vissa andra språk så finns det även andra värden för sant och falskt

Page 12: Introduktion till programmering - iteration, felhantering och datasamlingar

Booleska värden

Som falskt räknas även bl a:

● None● Siffran 0 ● Tomma strängar eller datasamlingar: ””,[],()

De flesta andra värden räknas som sanna

Page 13: Introduktion till programmering - iteration, felhantering och datasamlingar

villkor = False

if villkor == True: print 'Ja, det är sant!'else: print 'Nej, det är falskt.'

Boolska villkor ex.5

Nej, det är falskt

Page 14: Introduktion till programmering - iteration, felhantering och datasamlingar

Beslutsstrukturer

Coldoutside

Wear a coat

True

False

Wear a hat

Page 15: Introduktion till programmering - iteration, felhantering och datasamlingar

if hp == 100: print 'Du mår super!'

if-elif-else ex.6

Du mår helt okej.

elif hp <= 99 and hp >= 50: print 'Du mår helt okej.'

elif hp <= 49 and hp >= 1: print 'Du mår inget vidare.'

else: print 'Du är tyvärr död.'

hp = 62

Page 16: Introduktion till programmering - iteration, felhantering och datasamlingar

Iteration

Iteration = upprepning

Upprepa en beräkning eller en annan operation tills ett önskat resultat har uppnåtts

Typer av loopar: while & for

Användbara kommandon: break & continue

Page 17: Introduktion till programmering - iteration, felhantering och datasamlingar

Iteration: while-loop

Condition Statement(s)True

False

Page 18: Introduktion till programmering - iteration, felhantering och datasamlingar

tal = 1while tal <= 7: print tal tal = tal + 1

while-loop ex.7

1

2

3

4

5

6

7

Page 19: Introduktion till programmering - iteration, felhantering och datasamlingar

tal = 2while tal <= 1000:

print tal tal *= 2 if tal == 128: break

while-loop: break ex.8

2

4

8

16

32

64

128

Page 20: Introduktion till programmering - iteration, felhantering och datasamlingar

Iteration: for-loop

Bäst när du vet antalet iterationer

Passar bra med datasamlingar

Används tillsammans med range()

Page 21: Introduktion till programmering - iteration, felhantering och datasamlingar

for i in range(0,7):print i

for-loop ex.10

0

1

2

3

4

5

6

Page 22: Introduktion till programmering - iteration, felhantering och datasamlingar

for i in range(0,7,2):print i

for-loop ex.11

0

2

4

6

Page 23: Introduktion till programmering - iteration, felhantering och datasamlingar

for i in range(7,0,-2):print i

for-loop ex.12

7

5

3

1

Page 24: Introduktion till programmering - iteration, felhantering och datasamlingar

Datasamlingar

Listor - []Tupletter - ()Ordlistor - {}

Ta nytta av inbyggda funktioner: len() & extend()

Page 25: Introduktion till programmering - iteration, felhantering och datasamlingar

frukter = ["Mango", "Kiwi", "Melon", "Lime"]

print frukter[0]

print frukter[3]

Datasamlingar: listor ex.13

Mango

Lime

Page 26: Introduktion till programmering - iteration, felhantering och datasamlingar

frukter = ["Mango", "Kiwi", "Melon", "Lime"]

print len(frukter)

Datasamlingar: listor ex.13

4

Plommon

5

frukter.extend(["Plommon"])print frukter[4]print len(frukter)

Page 27: Introduktion till programmering - iteration, felhantering och datasamlingar

frukter = ["Mango", "Kiwi", "Melon", "Lime"]

for element in frukter:

print element.upper()

Datasamlingar: listor ex.13

MANGO

KIWI

MELON

LIME

Page 28: Introduktion till programmering - iteration, felhantering och datasamlingar

person = {"namn": "Simon", "tele": 12345678,"yrke": "Designer"}

print person["namn"]print person["tele"]

Datasamlingar: ordlistor ex.15

Simon

12345678

Page 29: Introduktion till programmering - iteration, felhantering och datasamlingar

Sammanfattning

Felhantering: try/except

Booleska variabler: True & False

Utökad selektion: if/elif/else

Iteration: while & for

Datasamlingar: [], (), {}

Page 30: Introduktion till programmering - iteration, felhantering och datasamlingar

from random import randint

def main():numberToGuess = randint(1,100)answer = Falsewhile answer == False:

try:userInput = int(raw_input("Gissa talet:"))

except ValueError:print "Det måste vara ett heltal"continue

Sammanfattningsexempel - del 1 ex.16

Page 31: Introduktion till programmering - iteration, felhantering och datasamlingar

if userInput > numberToGuess:print "Fel, för högt!"

elif userInput < numberToGuess:print "Fel, för lågt!"

else:answer = Trueprint "Rätt!"

main()

Sammanfattningsexempel - del 2 ex.16

Page 32: Introduktion till programmering - iteration, felhantering och datasamlingar

Tips

● Experimentera med exemplen från denna föreläsning (speciellt looparna)

● Försök tänka er in i verkliga implementationer av koncepten

● Ställ en massa frågor på handledningen och i forumet på iLearn2

Page 33: Introduktion till programmering - iteration, felhantering och datasamlingar

Frågor?!