Uke 2 — print / input

Eksempler

Les kapittel 1 av Automate the boring stuff.

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.

Obs

For å laste ned filene, kan du høyreklikke / ctrl-klikke på dem og velge «Save link as» fra menyen. Lagre filene i en mappe du bruker for INF100, så åpner du den samme mappen i VSCode etterpå.

Eksempel 1

Last ned filen her: hello_1.py.

print('Hello World!')
print()
print("Hei hei")
print("Velkommen!")
print()
print('Prøv å skrive ut mer...')
2 + 2
print(9 + 8)

Hva tror du outputet blir? Var det riktig?

Eksempel 2

Last ned filen her: hello_2.py.


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?

Svar på spørsmålet i filen. Hva tror du outputet blir? Var det riktig?

Eksempel 3

Last ned filen her: input_1.py.

print('God morgen!')

navn = input('Hva heter du? ')
print('Hyggelig å hilse på deg,', navn)

lengde = len(navn)
print('Navnet ditt har', lengde, 'bokstaver.')

understrek = '-' * lengde
print(navn)
print(understrek)

print()
print()
print()

# Input kan brukes uten = (assignment),
# men hva skjer med svaret her?
input('Kan vi gå videre? ')

a = input('Tall A: ')
b = input('Tall B: ')

print('Summen er ', a+b)

a = int(a)
b = int(b)
print('Summen er ', a+b)

Svar på spørsmålet i filen. Hva tror du outputet blir? Var det riktig? Hvorfor blir de to siste forskjellige?

Eksempel 4

Denne filen inneholder noen feil som gjør at den ikke kan kjøres. Finn feilen(e) og endre koden slik at den kan kjøres.

Last ned filen her: errors_1.py.

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!)

input('Hva heter du? ')
print('Hyggelig å hilse på deg,',navn)

A = input('Tall A:')
B = input('Tall B:')

print('Summen av A og B er:', a + b)

Å finne og fikse feil i koden er én etter én er en vanlig måte å jobbe på. (Vanligvis er det ikke så mange feil som her). Heldigvis er Python ganse 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 linja forteller oss at feilen ligger i errors_2.py på linje 7. Den andre linje viser oss linje 7, der hvor 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 fila på nytt, få en ny feilmelding og fikse den også helt til vi ikke får flere feil.

Eksempel 5

Last ned filen her: calc.py.

# Finner område av stuen din.
print('Vi skal beregne arealet av stuen din!')

bredde = float(input('Hva er bredden (m) på stuen din? '))
lengde = float(input('Hva er lengden (m) på stuen din? '))

arealet = bredde * lengde
print('Stuen din er', arealet, 'm^2.')

Svar på spørsmålet i filen. Hva tror du outputet blir? Hvorfor må vi bruke float() før beregningen av arealet?

Oppgaver

I disse oppgavene skal du lese inn input, og bruke det videre i koden din. Det er viktig å følge instruksene i oppgaven og skrive akkurat det som blir bedt om.

Husk på disse tingene:

  • Alle oppgavene skal løses med kun det dere har lært til nå. (input(), print(), len() og enkle utregninger)

  • Hver gang du leser inn noe med input() skal svaret være på den samme linjen. Skriv f.eks input('Skriv noe: '), istedet for input('Skriv noe:\n') (\n legger til en ny linje).

  • Les oppgaveteksten nøye, det er vanlig å måtte lese gjennom flere ganger før du forstår det 100%

  • Når eksempelkjøringer er oppgitt, skal kjøringen se akkurat ut som oppgitt, dette inkluderer mellomrom osv. Se f.eks nedenfor:

Eksempelkjøring:

Tekst: Heihei
==========
= Heihei =
==========

Hvis din kode ser slik ut:

Tekst:
Heihei
==========
= Heihei =
==========

Her er det en ny linje (\n) etter Tekst:

Hvis din kode ser slik ut:

Tekst:Heihei
==========
= Heihei =
==========

Her mangler det et mellomrom etter Tekst:

Oppgave 1

I filen oppgave_1.py, skriv kode som gjør følgende, i oppgitt rekkefølge:

  1. Spør brukeren om navnet deres via input(), og lagre (assign) resultatet i en variabel.

  2. Skriver ut navnet med print() funksjonen.

  3. Skriver ut antall bokstaver i navnet med len() og print() funksjonen.

Eksempelkjøring:

Hva heter du? Ola
Ola
3

Oppgave 2

I filen oppgave_2.py, skriv kode som gjør følgende, i oppgitt rekkefølge:

  1. Spør om brukerens alder via input() funksjonen, og lagrer resultatet i en variabel.

  2. Printer hvor mange år det er til brukeren blir 100 år.

Eksempelkjøring:

Hvor gammel er du? 23
Du blir 100 år om 77 år.

Oppgave 3

I filen oppgave_3.py, skriv kode som gjør følgende, i oppgitt rekkefølge:

  1. Spør brukeren om en temperatur i enheten Fahrenheit via input() funksjonen, og lagrer resultatet i en variabel.

  2. Beregner tilsvarende temperatur i enheten Celsius. Den matematiske formelen er:

    \[T_C = (T_F - 32) \cdot \frac{5}{9},\]

    hvor \(T_C\) er temperaturen i Celsius og \(T_F\) er temperaturen i Fahrenheit.

  3. Print resultatet.

Eksempelkjøring:

Temperatur i Fahrenheit: 225
Temperatur i Celsius: 107.22222222222223

Oppgave 4

I filen oppgave_4.py, skriv kode som gjør følgende, i oppgitt rekkefølge:

  1. Leser inn en streng via input() funksjonen, og lagrer resultatet i en variabel.

  2. Tegn en boks rundt strengen. Det skal være ett mellomrom før og etter strengen, og en = på hver side. Fyll inn over og under tilsvarende.

Eksempelkjøring:

Tekst: Heihei
==========
= Heihei =
==========

Oppgave 5

I filen oppgave_5.py, skriv kode som gjør følgende, i oppgitt rekkefølge:

  1. Les inn en streng via input() funksjonen, og lagre resultatet i en variabel.

  2. Les inn et heltall med input(), dette heltallet skal du bruke som lengde i neste steg.

  3. Skriv så ut en boks med input-strengen fra steg 1 i midten, den horisontale (sidelengs) lengden av boksen skal være lik heltallet fra steg 2.

Det er ikke nødvendig å bruke if(..) for å løse oppgaven.

Tips

Bruk heltallsdivisjon // for å beregne antall mellomrom til venstre og høyre for teksten.

Eksempelkjøring:

Tekst: Heihei
Tall: 40
========================================
=                Heihei                =
========================================