33
Introduktion till programmering Iteration, felhantering och datasamlingar

Introduktion till programmering - iteration, felhantering och datasamlingar

Embed Size (px)

DESCRIPTION

Slides from the course Introduction to Programming, lecture held at The Department of Computer and Systems Sciences at Stockholm University 2014

Citation preview

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?!