Introduktion till programmering - iteration, felhantering och datasamlingar
-
Upload
simon-johansson -
Category
Education
-
view
3.113 -
download
0
description
Transcript of Introduktion till programmering - iteration, felhantering och datasamlingar
Introduktion till programmering
Iteration, felhantering och datasamlingar
Simon [email protected]
name = 'Simon'print 'Jag heter ' + name
x = 30y = 20svar = x + yprint 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
Coldoutside
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 = 1while tal <= 7: print tal tal = tal + 1
while-loop ex.7
1
2
3
4
5
6
7
tal = 2while 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 = 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
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
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
Frågor?!