Python Tutor
Vi skal legge inn koden under i Python Tutor, og bruke «Next >» til å gå gjennom den skritt for skritt.
for n in range(1, 5):
if n % 2 == 0:
print(f"{n} er et partall")
else:
print(f"{n} er et oddetall")

Mens vi klikker, ser vi at pila i hvert gjennomløp av løkka peker på rad 1 og 2, men bare annen hver gang på rad 3 og 5, avhengig av om n er partall eller oddetall.
Konstanter
Vi skal skrive Python-kode som leser inn et antall nautiske mil, konverterer til kilometer, og skriver ut resultatet med 3 desimaler. Det er oppgitt at 1 nm = 1,852 km, og vi skal representere konverteringsfaktoren som en konstant i koden.
Koden kan se slik ut:
# Leser inn nautiske mil og konverterer til kilometer
NM_TIL_KM = 1.852
nm = float(input("Oppgi antall nautiske mil: "))
km = nm * NM_TIL_KM
print(f"{nm:.3f} nautiske mil er {km:.3f} kilometer.")
Metoder
Vi har Python-koden
hilsen = "GOD MORGEN, ALLE SAMMEN!"
og skal skrive kode som skriver ut hilsen med bare små bokstaver.
Vi leter på referansesiden Python String Methods. og finner ut at metoden vi trenger heter lower(). Så koden blir
print(hilsen.lower())
Import fra moduler
Vi skal skrive Python-kode som bruker funksjonen randint() i modulen random til å simulere terningkast.
Koden kan se slik ut:
from random import randint
print(f"Terningkast {randint(1, 6)}")
Alternativt
import random
print(f"Terningkast {random.randint(1, 6)}")
Vi skal endre koden fra oppgave 1 slik at randint() blir importert med alias rint() og brukt i koden.
Vi legger da til teksten as rint bak randint, og bruker rint() i stedet for randint() i koden.
from random import randint as rint
print(f"Terningkast {rint(1, 6)}")
Hvis vi velger varianten med å importere hele modulen, kan vi bare gi alias til modulnavnet, ikke enkeltfunksjoner i modulen.
Logiske operatorer
Vi skal analysere Python-koden under og avgjøre om den vil skrive ut True eller False.
x = -3 y = 4 print( x > 0 or x < y)
Her er to betingelser. Den første, x > 0, er False fordi x = −3. Den andre, x < y, er True fordi x = −3 og y = 4. Siden de to betingelsene er bundet sammen med or, og minst én av dem er True, vil det bli skrevet ut True.
Vi skal analysere to linjer med Python-kode og avgjøre om de vil skrive ut True eller False.
print(True or False and False)
Siden and har høyere prioritet enn or, får vi:
True or False and False → True or False → True
Python vil skrive ut True.
print(True and False or not(False and True))
Siden parenteser beregnes først, deretter not, and og or, får vi:
True and False or not(False and True) → True and False or not(False) → True and False or True → False or True → True
Python vil skrive ut True.
Boolsk algebra
Ved å sette opp sannhetstabeller skal vi bevise:
-
- a == True er det samme som a.
a kan enten være True eller False, og vi kan sette opp følgende sannhetstabell:
| a | True | False |
| a == True | True == True → True | False == True → False |
Vi ser at resultatet er likt i begge tilfeller.
-
- not (a or b) er det samme som not a and not b.
a og b kan være henholdsvis True og False, og vi kan sette opp følgende sannhetstabell:
| a | True | True | False | False |
| b | True | False | True | False |
| not (a or b) | not (True or True) → not True → False |
not (True or False) → not True → False |
not (False or True) → not True → False |
not (False or False) → not False → True |
| not a and not b | not True and not True → False and False → False |
not True and not False → False and True → False |
not False and not True → True and False → False |
not False and not False → True and True → True |
Vi ser at resultatet er likt i alle 4 tilfeller.