Utforskning 1
Utforskende lesning relevante for lab1.
I følgende kodeeksempler skal du først lese koden, så forsøke å forstå hva den gjør. Etterpå skal du prøve å kjøre koden og se om den gjør det du trodde den kom til å gjøre. Du kan også kjøre den linje for linje ved å trykk på "se steg" knappen.
Eksempel 1
print('Hello World!')
print()
print("Hei hei")
print("Velkommen!")
print()
print('Prøv å skrive ut mer...')
2 + 2
print(9 + 8)
Eksempel 2
Svar på spørsmålene i koden før du kjører/ser stegene.
sted = 'Vi er i Bergen'
print(sted)
flere = 'Aaa\nBbb\nCcc'
print(flere)
hei = 'Hei alle sammen!'
print(hei * 3)
print('\n' * 5)
# Hva er forskjellen her?
print(4 + 7)
print('4 + 7')
print()
x = 12
y = 20
print('x =', x)
print('y =', y)
print('y - x =', y-x)
print()
x = x + 1
y = y + 5
print('x =', x)
print('y =', y)
print('y + x =', y-x)
# Hvorfor er svaret feil her?
Eksempel 3
Når du kjører Pythonkode som inneholder input() så stanser kjøringen når den kommer til input(). Der venter den til den har fått input fra brukeren i terminalen. Den kan vente hvor lange som helst. Etter den har fått input fortsetter kjøringen.
I koden nedenfor, blir «Hyggelig å hilse på deg» printet før eller etter at du gitt ditt navn? Prøve å svare på spørsmålet før du kjører koden!
print('God morgen!')
print('Hva heter du? ')
navn = input()
print('Hyggelig å hilse på deg,', navn)
Eksemple 4
Svar på spørsmålet i koden før du kjører. Hva tror du outputet blir? Var det riktig? Hvorfor blir de to siste ulike?
# Input kan brukes uten = (assignment),
# men hva skjer med svaret her?
input('Kan vi gå videre? ')
print('Tall A: ')
a = input()
print('Tall B: ')
b = input()
print('Summen er ', a+b)
a = int(a)
b = int(b)
print('Summen er ', a+b)
Eksempel 5
Funksjonen len() kan brukes til å beregne hvor mange tegn det er i en tekststreng. Vi kan bruke len() til å for eksempel lage understrekk under et navn.
navn = "Ola"
lengde = len(navn)
print('Navnet ditt har', lengde, 'bokstaver.')
understrek = '-' * lengde
print()
print(navn)
print(understrek)
print()
print()
print()
Eksempel 6
Funksjonen max() returnerer den maksimale verdien av de tingene du putter inn. Den kan ta hvor mange argumenter som helst. Hva tror du utskriften blir?
print(max(3, 1))
print(max(5, 12, -3))
print(max(4.2, 9, -13.4, 22.52, 14))
print(max("a", "bbb", "cc"))
a = 5+2
b = 13-4
print(max(a, b, 4+4))
Ble utskriften som du trodde?
Eksempel 7
Denne koden inneholder noen feil som gjør at den ikke kan kjøres. Finn feilen(e) og endre koden slik at den kan kjøres.
a = 7
b = 12
sted = 'Vi er i Bergen'
print(stedt)
flere = 'Aaa\nBbb\nCcc'
print(flere)
print('\n' + 3)
print(4 + )
print('4 + 7')
prin()
x = 12
y = 20
print('x =', x)
print('y =', y)
print('y - x =', z-x)
print()
x = x + 1
y = y + 5
print('x =', x)
print('y =', y)
print('y + x =', y-x)
print('God morgen!)
print('Hva heter du? ')
navn = input()
print('Hyggelig å hilse på deg,',navn)
print('Tall A:')
A = input()
print('Tall B:')
B = input()
print('Summen av A og B er:', a + b)
Å finne og fikse feil i koden én etter én er en vanlig måte å jobbe på. (Vanligvis er det ikke så mange feil som her). Heldigvis er Python ganske hjelpsom med å si ifra. Her er en typisk feilmelding:
File "errors_2.py", line 7
Input("Hva heter du? ")
NameError: name 'Input' is not defined
Den første linjen forteller oss at feilen ligger i errors_2.py på linje 7. Den andre linjen viser oss innholdet til linje 7, der feilen er. Til slutt ser vi hva slags feil som har oppstått. Her er det en NameError og Python sier at Input (med stor I) ikke finnes. Vi fikser feilen ved å skrive input med liten i.
For å fikse alle feilene kan vi kjøre filen på nytt, få en ny feilmelding og fikse den også helt til vi ikke får flere feil.
Eksempel 8
Hva tror du outputet blir?
# Finner arealet av stuen din.
print('Vi skal beregne arealet av stuen din!')
print('Hva er bredden (m) på stuen din? ')
bredde_str = input()
print('Hva er lengden (m) på stuen din? ')
lengde_str = input()
bredde_int = float(bredde_str)
lengde_int = float(lengde_str)
arealet = bredde_int * lengde_int
print('Stuen din er', arealet, 'm^2.')
Hvorfor må vi bruke float() før beregningen av arealet? Hva skjer om vi ikke bruker float?