際際滷

際際滷Share a Scribd company logo
Introduktion till
programmering
Iteration, felhantering och datasamlingar
Simon Johansson
mail@simon-johansson.com
name = 'Simon'
print 'Jag heter ' + name
x = 30
y = 20
svar = x + y
print svar
Repetition - variabler & datatyper ex.1
Jag heter Simon
50
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
def addera(tal1, tal2):
summa = tal1 + tal2
return summa
def main():
svar = addera(5, 10)
print svar
main()
Repetition - funktioner ex.2
15
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
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
try:
userInput = raw_input('Skriv in ett heltal:')
number = int( userInput )
except ValueError:
print 'Det m奪ste vara ett heltal!'
ValueError ex.3
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
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.
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
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
villkor = False
if villkor == True:
print 'Ja, det 辰r sant!'
else:
print 'Nej, det 辰r falskt.'
Boolska villkor ex.5
Nej, det 辰r falskt
Beslutsstrukturer
Cold
outside
Wear a coat
True
False
Wear a hat
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
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
Iteration: while-loop
Condition Statement(s)
True
False
tal = 1
while tal <= 7:
print tal
tal = tal + 1
while-loop ex.7
1
2
3
4
5
6
7
tal = 2
while tal <= 1000:
print tal
tal *= 2
if tal == 128:
break
while-loop: break ex.8
2
4
8
16
32
64
128
Iteration: for-loop
B辰st n辰r du vet antalet iterationer
Passar bra med datasamlingar
Anv辰nds tillsammans med range()
for i in range(0,7):
print i
for-loop ex.10
0
1
2
3
4
5
6
for i in range(0,7,2):
print i
for-loop ex.11
0
2
4
6
for i in range(7,0,-2):
print i
for-loop ex.12
7
5
3
1
Datasamlingar
Listor - []
Tupletter - ()
Ordlistor - {}
Ta nytta av inbyggda funktioner:
len() & extend()
frukter = ["Mango", "Kiwi", "Melon", "Lime"]
print frukter[0]
print frukter[3]
Datasamlingar: listor ex.13
Mango
Lime
frukter = ["Mango", "Kiwi", "Melon", "Lime"]
print len(frukter)
Datasamlingar: listor ex.13
4
Plommon
5
frukter.extend(["Plommon"])
print frukter[4]
print len(frukter)
frukter = ["Mango", "Kiwi", "Melon", "Lime"]
for element in frukter:
print element.upper()
Datasamlingar: listor ex.13
MANGO
KIWI
MELON
LIME
person = {"namn": "Simon",
"tele": 12345678,
"yrke": "Designer"}
print person["namn"]
print person["tele"]
Datasamlingar: ordlistor ex.15
Simon
12345678
Sammanfattning
Felhantering: try/except
Booleska variabler: True & False
Ut旦kad selektion: if/elif/else
Iteration: while & for
Datasamlingar: [], (), {}
from random import randint
def main():
numberToGuess = randint(1,100)
answer = False
while answer == False:
try:
userInput = int(raw_input("Gissa talet:"))
except ValueError:
print "Det m奪ste vara ett heltal"
continue
Sammanfattningsexempel - del 1 ex.16
if userInput > numberToGuess:
print "Fel, f旦r h旦gt!"
elif userInput < numberToGuess:
print "Fel, f旦r l奪gt!"
else:
answer = True
print "R辰tt!"
main()
Sammanfattningsexempel - del 2 ex.16
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
酷姻奪乙看姻?!

More Related Content

Introduktion till programmering - iteration, felhantering och datasamlingar

  • 3. name = 'Simon' print 'Jag heter ' + name x = 30 y = 20 svar = x + y print svar Repetition - variabler & datatyper ex.1 Jag heter Simon 50
  • 4. 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
  • 5. def addera(tal1, tal2): summa = tal1 + tal2 return summa def main(): svar = addera(5, 10) print svar main() Repetition - funktioner ex.2 15
  • 6. 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
  • 7. 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
  • 8. try: userInput = raw_input('Skriv in ett heltal:') number = int( userInput ) except ValueError: print 'Det m奪ste vara ett heltal!' ValueError ex.3
  • 9. 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
  • 10. 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.
  • 11. 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
  • 12. 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
  • 13. villkor = False if villkor == True: print 'Ja, det 辰r sant!' else: print 'Nej, det 辰r falskt.' Boolska villkor ex.5 Nej, det 辰r falskt
  • 15. 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
  • 16. 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
  • 18. tal = 1 while tal <= 7: print tal tal = tal + 1 while-loop ex.7 1 2 3 4 5 6 7
  • 19. tal = 2 while tal <= 1000: print tal tal *= 2 if tal == 128: break while-loop: break ex.8 2 4 8 16 32 64 128
  • 20. Iteration: for-loop B辰st n辰r du vet antalet iterationer Passar bra med datasamlingar Anv辰nds tillsammans med range()
  • 21. for i in range(0,7): print i for-loop ex.10 0 1 2 3 4 5 6
  • 22. for i in range(0,7,2): print i for-loop ex.11 0 2 4 6
  • 23. for i in range(7,0,-2): print i for-loop ex.12 7 5 3 1
  • 24. Datasamlingar Listor - [] Tupletter - () Ordlistor - {} Ta nytta av inbyggda funktioner: len() & extend()
  • 25. frukter = ["Mango", "Kiwi", "Melon", "Lime"] print frukter[0] print frukter[3] Datasamlingar: listor ex.13 Mango Lime
  • 26. frukter = ["Mango", "Kiwi", "Melon", "Lime"] print len(frukter) Datasamlingar: listor ex.13 4 Plommon 5 frukter.extend(["Plommon"]) print frukter[4] print len(frukter)
  • 27. frukter = ["Mango", "Kiwi", "Melon", "Lime"] for element in frukter: print element.upper() Datasamlingar: listor ex.13 MANGO KIWI MELON LIME
  • 28. person = {"namn": "Simon", "tele": 12345678, "yrke": "Designer"} print person["namn"] print person["tele"] Datasamlingar: ordlistor ex.15 Simon 12345678
  • 29. Sammanfattning Felhantering: try/except Booleska variabler: True & False Ut旦kad selektion: if/elif/else Iteration: while & for Datasamlingar: [], (), {}
  • 30. from random import randint def main(): numberToGuess = randint(1,100) answer = False while answer == False: try: userInput = int(raw_input("Gissa talet:")) except ValueError: print "Det m奪ste vara ett heltal" continue Sammanfattningsexempel - del 1 ex.16
  • 31. if userInput > numberToGuess: print "Fel, f旦r h旦gt!" elif userInput < numberToGuess: print "Fel, f旦r l奪gt!" else: answer = True print "R辰tt!" main() Sammanfattningsexempel - del 2 ex.16
  • 32. 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