Python - kontrollstrukturer
Uke 40
datatyper:
- int
- float
- str
- boolean
navn: variabler
operatorer:
+ - * /
// %
Uke 41
datastrukturer:
- list
- tuple
- dictionary
- set
oppretting
uthenting
oppdatering
manipulering
Uke 42
kontrollstrukturer:
- betingelser
- valg
- løkker
- conditions
- conditional execution
- loops
Lærebok:
- 4: Conditional execution
- 5: Iterations
import math
lon = float(input("Oppgi lengdegrad: "))
lat = float(input("Oppgi breddegrad: "))
R = 6378137
phi = lat * math.pi / 180
lmda = lon * math.pi / 180
lmda_0 = 0
x = R * (lmda - lmda_0)
y = R * (math.log(math.tan((math.pi / 4) + (phi / 2))))
print("x: ", x, "y: ", y)
# Gyldige kombinasjoner for at spiller A skal vinne
# (Valg for spiller A står først,
# deretter valg for spiller B):
#
# (Stein, Saks)
# (Saks, Papir)
# (Papir, Stein)
Stein, saks, papir
vinnervalg_A = [("Stein", "Saks"), ("Saks", "Papir"), ("Papir", "Stein")]
uavgjort = [("Stein", "Stein"), ("Saks", "Saks"), ("Papir", "Papir")]
Hva må til for at A skal vinne?
A = input("Spiller A - velg Stein, Saks eller Papir: ")
B = input("Spiller B - velg Stein, Saks eller Papir: ")
spillervalg = (A, B)
A og B legger inn sine valg
if spillervalg in uavgjort:
print("Uavgjort")
elif spillervalg in vinnervalg_A:
print("A vinner")
else:
print("B vinner")
Bare én av print-linjene vil bli utført
if spillervalg in uavgjort:
print("Uavgjort")
if-setninger inneholder betingelser som er enten True eller False
Betingelsen er her "spillervalg in uavgjort"
Kodeblokka under blir bare utført hvis betingelsen er True
elif spillervalg in vinnervalg_A:
print("A vinner")
Vi kan utvide en if-setning med flere betingelser som testes etter tur med elif (som betyr else if)
else:
print("B vinner")
else-delen av if-setningen brukes for de tilfellene der ingen betingelser er True
# Gyldige kombinasjoner for at spiller A skal vinne
# (Valg for A står først, deretter valg for B):
#
# (Stein, Saks)
# (Saks, Papir)
# (Papir, Stein)
vinnervalg_A = [("Stein", "Saks"), ("Saks", "Papir"), ("Papir", "Stein")]
uavgjort = [("Stein", "Stein"), ("Saks", "Saks"), ("Papir", "Papir")]
A = input("Spiller A - velg Stein, Saks eller Papir: ")
B = input("Spiller B - velg Stein, Saks eller Papir: ")
spillervalg = (A, B)
if spillervalg in uavgjort:
print("Uavgjort")
elif spillervalg in vinnervalg_A:
print("A vinner")
else:
print("B vinner")
Text
Hele programmet:
Fig. fra Ch. 4.9 i Halterman
Generell struktur for if-setninger
Et flyt-skjema kan vise beslutningsstrukturen i en if-setning
Fig. 4.8 i Halterman
Hvordan programmeres betingelser?
x == 3
x < y
x >= y
x <= y
x != y - 2
x < 10
x >= 0 and x < 10
x < 0 and x < 10
x >= 0 and x < 2
x < 0 or x < 10
x > 0 or x < 10
x < 0 or x > 10
Given the following definitions:
x, y, z = 3, 5, 7
evaluate the following Boolean expressions:
True
True
False
True
False
True
True
False
False
True
True
False
Haltermann, ex. 4.14.6
Truth Value Testing
If we use a non-boolean object as a condition in an if statement in place of the boolean expression, Python will check for its truth value and use that to decide whether or not to run the indented code. By default, the truth value of an object in Python is considered True unless specified as False in the documentation.
Here are most of the built-in objects that are considered False in Python:
- constants defined to be false: None and False
- zero of any numeric type: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
- empty sequences and collections: '"", (), [], {}, set(), range(0)
Udacity-kurset, Lesson 4.7 Boolean Expressions for Conditions
print(bool(0))
print(bool([]))
print(bool({}))
print(bool(()))
print(bool(range(0)))
print(bool(5))
print(bool((1, 2, 3)))
print(bool([1, 2, 3]))
False
False
False
False
False
True
True
True
Vi kan teste sannhetsverdien av objekter med bool-funksjonen:
Se flere eksempler og mer avansert bruk i læreboka og Udacity-kurset.
Løkke-programmering
Eng.: loops, iterations
- Endelige løkker - repeteres et kjent antall ganger
- Ubestemte løkker - repeteres så lenge betingelse er sann
For-løkker
Se eksempler på bruk av for-løkker her:
While-løkker
Fig. fra Ch. 5.1 i Halterman
# number to find the factorial of
number = 6
# start with our product equal to one
product = 1
# track the current number being multiplied
current = 1
while current <= number:
# multiply the product so far by the current number
if current == 1:
print(current, end=" ")
else:
print( "*", current, end=" ")
product *= current
# increment current with each iteration until it reaches number
current += 1
print(" =", end=" ")
# print the factorial of number
print(product)
Uke 42 - bruk tid på dette:
- Mange gode oppgaver i Udacity-kurset
- Bruk veiledningstimene til øvelsene i Udacity-kurset
INGG1001 Kontrollstrukturer
By sverres
INGG1001 Kontrollstrukturer
- 482