Linux – Friheden til at programmere i Python: Version 1.0.20040516 – 2020-12-31
forrige Kapitel 2. Sprog reference næste

2.9. If, elif og else

Her er et eksempel på hvorledes man kan teste for forskellige betingelser, og få ens funktioner til at gøre nogle forskellige ting.

>>>def findMax(a,b,c):...max = a...if b > a:...max = b...if c > b:...max = c...return max...>>>findMax(37, 2 * 19 ,43)43
>>>tal = 17 ** 4>>>if tal < 50000:...print "Tallet er mindre end 50000"...else:...print "Tallet er",tal...Tallet er 83521

If sætningen er måske den bedst kendte sætning (statement)

>>>x = int(raw_input("Skriv et helt tal: "))>>>if x < 0:...x = 0...print 'Negativt tal ændret til nul'...elif x == 0:...print 'Nul'...elif x == 1:...print 'Et'...else:...print 'Større end 1'...

Der kan være nul eller flere elif blokke, else kan vælges/udelades efter ønske. Nøgleordet “elif” er en forkortelse af “else if” og er praktisk, da der derved er muligt at undgå alt for mange blokindrykninger (de fylder enormt i bredden).

>>>streng = "wqexmjupiolåærdtce45rft6g8ijuplbkilmæø3we45rft6g8ijupl">>>if len(streng) > 50:...print "Længden af strengen er større end 50"...elif len(streng) > 45:...print "Længden af strengen er større end 45"...elif len(streng) > 40:...print "Længden af strengen er større end 40"...else:...print "Længden af strengen er:", len(streng)...Længden af strengen er større end 50

Simulering af terningekast: ALLE variabler i Python SKAL være erklærede, inden de bruges første gang, I det følgende eksempel skal der bruges 6 fordefinerede variabler. Her har Python en speciel og særdeles konstruktiv måde at gøre det på:

f6 = f5 = f4 = f3 = f2 = f1 = 0
I andre om ikke alle andre computersprog skulle det gøres nogenlunde således:
f1 = 0
f2 = 0
f3 = 0
f4 = 0
f5 = 0
f6 = 0
Simulering af terningekast:
>>> import random
>>> f6 = f5 = f4 = f3 = f2 = f1 = 0
>>> for kast in range( 1, 10001 ):       # 10.000 terningekast
...     udfald = random.randrange( 1, 7 )
...     if udfald == 1:
...             f1 += 1
...     elif udfald == 2:
...             f2 += 1
...     elif udfald == 3:
...             f3 += 1
...     elif udfald == 4:
...             f4 += 1
...     elif udfald == 5:
...             f5 += 1
...     else:
...             f6 += 1
print "Udfald:"
print "Antal enere:  ", f1
print "Antal toere:  ", f2
print "Antal treere:  ", f3
print "Antal firere:  ", f4
print "Antal femmere: " ,f5
print "Antal seksere: ", f6
import random
def kastMed2():
   terning1 = random.randrange( 1, 7 )
   terning2 = random.randrange( 1, 7 )
   sumTotal = terning1 + terning2
   print "Spiller slog%d + %d = %d" % ( terning1, terning2, sumTotal )
   return sumTotal
sum = kastMed2()       # første omgang kast
if sum == 7 or sum == 11:
   gameStatus = "VANDT"
elif sum == 2 or sum == 3 or sum == 12:
   gameStatus = "TABTE"
else:                                     # husker points
   gameStatus = "FORTSÆT"
   minePoints = sum
   print "Spillers points er ", minePoints
while gameStatus == "FORTSÆT":   # fortsæt spillet
   sum = kastMed2()
   if sum == minePoints:             # vandt med følgende resultat
      gameStatus = "VANDT"
   elif sum == 7:                  # vandt ved at slå/kaste summen 7
      gameStatus = "TABTE"
if gameStatus == "VANDT":
   print "Spilleren vandt"
else:
   print "Spilleren tabte"

forrige hjem næste
Scripts op Break og continue