Commit 6b7c73e2 authored by Ole-Magnus Pedersen's avatar Ole-Magnus Pedersen
Browse files

Øving 1

parent f6ea7e38
%% Cell type:markdown id: tags:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="_Oving1.ipynb">Øving 1</a>
</div>
<ul class="nav navbar-nav">
<li><a href="Intro%20til%20jupyter.ipynb">Intro til Jupyter</a></li>
<li ><a href="Jeg%20elsker%20ITGK!.ipynb">Jeg elsker ITGK!</a></li>
<li ><a href="Kalkulasjoner.ipynb">Kalkulasjoner</a></li>
<li><a href="Input%20og%20variable.ipynb">Input og variable</a></li>
<li><a href="Tallkonvertering.ipynb">Tallkonvertering</a></li>
<li ><a href="Peppes%20Pizza.ipynb">Peppes Pizza</a></li>
<li ><a href="Geometri.ipynb">Geometri</a></li>
<li ><a href="Vitenskapelig%20notasjon.ipynb">Vitenskapelig notasjon</a></li>
<li ><a href="Tetraeder.ipynb">Tetraeder</a></li>
<li class="active"><a href="Bakekurs.ipynb">Bakekurs</a></li>
<li ><a href="James%20Bond%20and%20Operation%20round().ipynb">James Bond and Operation Round</a></li>
</ul>
</div>
</nav>
# Bakekurs
**Læringsmål:**
* Printe ut tekst til skjerm på en fin måte
* Kalkulasjoner i Python
**Starting Out with Python:**
* Kap. 2.3
* Kap. 2.8
* Kap. 8
I denne oppgaven skal du beregne mengden ingredienser som trengs for å lage cookies og printe resultatet på et fint format.
Du skal lage cookies og har en oppskrift som gir 48 cookies. Den oppskriften krever følgende ingredienser:
* 400 g sukker
* 320 g smør
* 500 g sjokolade
* 2 egg
* 460 g hvetemel
%% Cell type:markdown id: tags:
## a)
%% Cell type:markdown id: tags:
Spør brukeren om hvor mange cookies han eller hun ønsker å bake og skriv ut hvor mange ingredienser som trengs for å lage så mange cookies.
Eksempel på kjøring:
```python
Hvor mange cookies ønsker du å bake? 24
Antall cookies: 24
sukker(g): 200.0
smør(g): 160.0
sjokolade(g): 250.0
egg: 1.0
hvetemel(g): 230.0
```
***Skriv koden din i blokka under.***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
#### Tips til oppgave a: Escape Character
%% Cell type:markdown id: tags:
`\n` er nyttig å bruke her for å få en ny linje! Eks. `print(“hei\npå\ndeg”)` gir
**Utskrift**
```
hei
deg
```
%% Cell type:markdown id: tags:
## b)
%% Cell type:markdown id: tags:
Be brukeren om hvor mange cookies han eller hun ønsker å lage tre ganger og skriv ut ingrediensene på en fin og elegant måte. Du trenger kun å skrive ut antall cookies, og hvor mye sjokolade og sukker som trengs i gram.
Eksempel på kjøring:
```python
Hvor mange cookies vil du lage? 24
og hvor mange cookies vil du lage ? 48
og hvor mange cookies vil du lage til slutt? 72
Antall cookies: sukker(g) sjokolade(g)
24 200.0 250.0
48 400.0 500.0
72 600.0 750.0
```
`rjust()` og `ljust()` er nyttige funksjoner her, men for å bruke dem må man først konvertere antall cookies til en streng vha. `str()`. Andre ting som kan være nyttig er `\t` som lager et innrykk i teksten.
***Skriv koden din i blokka under.***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
#### ljust() og rjust()
%% Cell type:markdown id: tags:
`streng.ljust(width)` returnerer strengen "left justified" i en streng av lengde `width`. `streng.rjust(width)` gjør det sammen bare at strengen blir "right justified". For eksempel blir `print('hei'.rjust(15))` til:
```python
hei #teksten printes altså ut etter 12 white spaces, ettersom strengen har lengde 3
```
Du kan lese mer om `rjust()` og `ljust()` [her](https://docs.python.org/2/library/stdtypes.html?highlight=rjust#str.rjust).
%% Cell type:markdown id: tags:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="_Oving1.ipynb">Øving 1</a>
</div>
<ul class="nav navbar-nav">
<li><a href="Intro%20til%20jupyter.ipynb">Intro til Jupyter</a></li>
<li ><a href="Jeg%20elsker%20ITGK!.ipynb">Jeg elsker ITGK!</a></li>
<li ><a href="Kalkulasjoner.ipynb">Kalkulasjoner</a></li>
<li><a href="Input%20og%20variable.ipynb">Input og variable</a></li>
<li><a href="Tallkonvertering.ipynb">Tallkonvertering</a></li>
<li ><a href="Peppes%20Pizza.ipynb">Peppes Pizza</a></li>
<li class="active"><a href="Geometri.ipynb">Geometri</a></li>
<li><a href="Vitenskapelig%20notasjon.ipynb">Vitenskapelig notasjon</a></li>
<li><a href="Tetraeder.ipynb">Tetraeder</a></li>
<li><a href="Bakekurs.ipynb">Bakekurs</a></li>
<li ><a href="James%20Bond%20and%20Operation%20round().ipynb">James Bond and Operation Round</a></li>
</ul>
</div>
</nav>
# Geometri
**Læringsmål:**
* Forstå at kode må være feilfri for å kjøre, og rette enkle syntaksfeil
* Debugging
**Starting Out with Python:**
* Kap. 2
I denne oppgaven skal vi rette feil i koden og endre utskriftsformat.
Norsklæreren din kunne utmerket godt lest en stil og forstått den på tross av noen småfeil, og til og med gitt god karakter hvis innholdet forøvrig var bra. Datamaskinen er ikke like tilgivende: I et Python-program må alt være pinlig nøyaktig, en enkelt skrivefeil kan være nok til at programmet slett ikke kjører.
%% Cell type:markdown id: tags:
## a)
%% Cell type:markdown id: tags:
Rett alle syntaksfeilene i koden under slik at koden kjører uten problemer. Hver av syntaksfeilene her kan rettes ved å fjerne, legge til eller endre ett enkelt tegn, dvs. det er ikke nødvendig å gjøre større endringer i koden. Ved å kjøre programmet (velg ”Run” i menyen) og se på feilmeldinger vil du få hint om hvor hver enkelt syntaksfeil befinner seg.
%% Cell type:code id: tags:
``` python
r = 5
print("Vi har en sirkel med radius" + r)
omkrets = 2 * 3.14 * r
print("Omkretsen er", omkrets))
areal = 3.14 * radius * * 2
print("Arealet er", areal
h = 8
volum = aral * h
Print("Sylinder med høyde", h, ": Volumet er, volum)
```
%% Cell type:markdown id: tags:
Når koden fungerer bør du få følgende output:
```python
Vi har en sirkel med radius 5
Omkretsen er 31.400000000000002
Arealet er 78.5
Sylinder med høyde 8 : Volumet er 628.0
```
%% Cell type:markdown id: tags:
#### Hint
%% Cell type:markdown id: tags:
Tenk parenteser, fnutter, variabelnavn og (+/,) i kombinasjon av tekst og variabelnavn.
%% Cell type:markdown id: tags:
#### Formatering av antall desimaler
%% Cell type:markdown id: tags:
At omkretsen får en liten hale med ...002 skyldes at flyttall ikke kan lagres helt nøyaktig i dataens minne. Derfor kan det være ønskelig med kun to desimaler. Det er en innebygd funksjon i Python som tar seg av formatering og den ser slik ut: `format(tall, formatering)`. `tall` er her tallet som skal konverteres, dvs. omkretsen i eksempelet over, mens formatering går ut hvordan man ønsker å formere tallet. Et eksempel er format`(2/3, ‘.3f’)` som gir `0.667`. 3-tallet indikerer at det ønskes 3 desimaler.
%% Cell type:markdown id: tags:
## b
%% Cell type:markdown id: tags:
Endre koden fra **a)** til å skrive ut omkretsen med kun 2 desimaler. Dvs. at linje to over skal bli endret til Omkretsen er 31.40.
Kjøring av oppdatert kode:
```python
Vi har en sirkel med radius 5
Omkretsen er 31.40
Arealet er 78.5
Sylinder med høyde 8 : Volumet er 628.0
```
%% Cell type:markdown id: tags:
## c)
%% Cell type:markdown id: tags:
(frivillig vanskelig oppgave) I oppgave a får omkretsen verdien 31.400...002, hvorfor blir ikke omkretsen sin verdi lik 31.400...000?
%% Cell type:markdown id: tags:
Dobbelklikk på teksten under og skriv svaret ditt der:
%% Cell type:markdown id: tags:
**Svar:** <dobbelklikk her\>
This diff is collapsed.
%% Cell type:markdown id: tags:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="_Oving1.ipynb">Øving 1</a>
</div>
<ul class="nav navbar-nav">
<li class="active"><a href="Intro%20til%20jupyter.ipynb">Intro til Jupyter</a></li>
<li><a href="Jeg%20elsker%20ITGK!.ipynb">Jeg elsker ITGK!</a></li>
<li ><a href="Kalkulasjoner.ipynb">Kalkulasjoner</a></li>
<li><a href="Input%20og%20variable.ipynb">Input og variable</a></li>
<li><a href="Tallkonvertering.ipynb">Tallkonvertering</a></li>
<li><a href="Peppes%20Pizza.ipynb">Peppes Pizza</a></li>
<li><a href="Geometri.ipynb">Geometri</a></li>
<li><a href="Vitenskapelig%20notasjon.ipynb">Vitenskapelig notasjon</a></li>
<li><a href="Tetraeder.ipynb">Tetraeder</a></li>
<li><a href="Bakekurs.ipynb">Bakekurs</a></li>
<li ><a href="James%20Bond%20and%20Operation%20round().ipynb">James Bond and Operation Round</a></li>
</ul>
</div>
</nav>
# Introduksjon til Jupyter
Hei, og velkommen til Jupyter, en annen måte å skrive kode på! Jupyter er et system som lar deg lage dokumenter som inneholder både tekst og kode på en gang. Det fine her er at du kan kjøre koden i dokumentet og se resultatet umiddelbart. Dette kan du prøve ut nå.
**oppgave a)** Klikk på kodeblokken under og trykk `ctrl + enter` på tastaturet for å kjøre koden. (Det er også mulig å klikke på kodeblokken for så å klikke `run` i menyen på toppen)
%% Cell type:code id: tags:
``` python
print("Velkommen til jupyter")
```
%% Cell type:markdown id: tags:
Som du ser kommer resultatet av koden ut rett nedenfor kodeblokken. Dette er veldig praktisk og du kan kjøre koden så mange ganger du vil! Hvis du trykker på `ctrl + enter` i kodeblokken over en gang til vil du se at tallet til venstre for kodeblokken øker. Dette tallet brukes bare som referanse og er ikke noe du trenger å tenke på til vanlig.
Alle kodeblokker i et dokument kan endres på, og dette oppfordres på det sterkeste! Det er mye god læring i å endre kode, tenke seg til hva som skal skje og sjekke om dette faktisk skjer. Du kan for eksempel prøve å kjøre programmet under med `ctrl + enter`, gjøre et par endringer og sjekke om den nye versjonen din gjør det du hadde tenkt.
%% Cell type:markdown id: tags:
**Oppgave b)** Endre første linje i koden under til `print("Dette er mitt første Jupyter-program")`
%% Cell type:code id: tags:
``` python
print("Dette er et program i jupyter") #endre denne linjen
print("Nå skal programmet stille et spørsmål")
navn = input("Hva heter du? ")
print("Hei", navn)
alder = int(input("Hvor gammel er du? ")) # Her må du kun skrive et tall
print("Da er du", alder + 5, "år gammel om 5 år")
```
%% Cell type:markdown id: tags:
# Variabler mellom kodeblokker
%% Cell type:markdown id: tags:
Noe som er verdt å merke seg er at data kan eksistere mellom kodeblokkene i en Jupyter Notebook. La oss se på et eksempel. Trykk `ctrl + enter` i kodeblokken nedenfor slik at den kjører.
%% Cell type:code id: tags:
``` python
message = "Wow! Dette var kult!"
```
%% Cell type:markdown id: tags:
Kjør så kodeblokken nedenfor:
%% Cell type:code id: tags:
``` python
print(message)
```
%% Cell type:markdown id: tags:
Som du ser får vi printet ut verdien av `message` selv om `message` ikke er definert i den nederste kodeblokken. Dette kan være veldig praktisk, men kan noen ganger være forvirrende. Prøv å endre på verdien til `message` ("Wow! Dette var kult!") i den første kodeblokken, for så å trykke `ctrl + enter` i den andre blokken.
Som du ser er ikke `message` blitt oppdatert. Dette er fordi **vi er nødt til å kjøre kodeblokken med `message =` for at `message` skal bli oppdatert**.
Prøv nå å kjøre kodeblokken med `message =` igjen for så å kjøre blokken med `print` på nytt. Da burde riktig melding printes.
**Oppgave c)** Endre message til `"Wow, Jupyter er kult!"`, og print det ut i blokken under.
Dette gjelder ikke bare for *variabler*, men også for *funksjoner*, som dere skal lære å bruke etterhvert. Hvis du skriver en funksjon og ønsker å bruke den i en annen kodeblokk må du kjøre kodeblokken hver gang funksjonen endres akkurat som med variabler.
%% Cell type:markdown id: tags:
# Restarting dersom problemer skulle oppstå
%% Cell type:markdown id: tags:
Hvis du ønsker å fjerne all output fra dokumentet og *starte på nytt* kan du trykke på `Kernel -> Restart and clear output` i menyen på toppen. Det vil komme opp en boks med en skummel rød knapp, men dette går helt fint. Å kunne restarte kan også være nyttig hvis dokumentet henger seg opp. Dette skal vi se et eksempel på nå.
Kjør kodeblokken under to ganger uten å taste inn noe i inputfeltet som dukker opp (du må trykke på blokken igjen for å kjøre den andre gang).
%% Cell type:code id: tags:
``` python
navn = input("Hva heter du?")
print("Hei,", navn)
```
%% Cell type:markdown id: tags:
Dette var veldig uheldig. Nå skjer det ingenting og vi kan heller ikke kjøre andre kodeblokker i dokumentet :(
Når en kodeblokk venter på input kan man ikke kjøre andre kodeblokker, så hvis man da prøver å kjøre andre kodeblokker vil disse bli satt på vent.
Nå ser vi at det står `In [*]` ved flere av blokkene våre, dette betyr at de venter på andre blokker før de selv kjører, i vårt tilfelle kjørte vi input-blokken på nytt, uten å gi inn noe til forrige kjøring av blokken. Programmet venter fortsatt på input til forrige kjøring av blokken, selv om feltet er borte, som ikke er helt optimalt! Om du ikke forstår helt hva som skjer her er ikke det noe farlig. For å komme oss ut av dette kan vi restarte med `Kernel -> Restart and clear output` i toppmenyen. **Merk: Dette endrer ikke på koden du selv har skrevet.**
**Oppgave d)** Restart notebooken med kommandoen beskrevet over.
%% Cell type:markdown id: tags:
# Endring av tekst
%% Cell type:markdown id: tags:
Det er også mulig å endre på teksten i et dokument ved å dobbelklikke på en tekstboks, men dette er noe du sjeldent trenger å gjøre. For å gjøre teksten «vanlig» igjen etter at du har endret trykker du her også på `ctrl + enter`.
Jupyter bruker noe som heter markdown til formatering av tekst. Dette er ikke pensum, men hvis du ønsker å se litt på det finnes det en ganske fin oversikt (på engelsk) [her](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet?fbclid=IwAR2PRFaYr3YAPnKBzNRpgaumRufU4WHbT6Xd-0v9EsJwxtgqxOyzLluvPOA#tables). Det er også mulig å legge til LaTeX (et tekst-format til å lage fine matteuttrykk) i jupyter-tekstbokser. Dette er heller ikke pensum.
Hvis vi skal be dere om et tekst-svar vil vi dere se noe sånt som under. Her kan dere selv fjerne det som står inne i krokodilletegnene.
**Oppgave e)** Endre tekstboksen under til `ITGK er gøy`. *Merk: I en tekstboks trenger man ikke skrive python-kode*
%% Cell type:markdown id: tags:
**Ditt svar:** <dobbelklikk her for å svare\>
%% Cell type:markdown id: tags:
# En advarsel
%% Cell type:markdown id: tags:
Jupyter er generelt ikke så glad i at du har samme dokument åpnet i flere faner. Hvis du har dette er det mulig at endringene du gjør i den ene fanen overskriver endringene du gjør i en annen fane, noe som kan være uheldig. Sørg derfor for at du aldri har mer enn en fane åpnet med det samme dokumentet.
%% Cell type:markdown id: tags:
# Til slutt
%% Cell type:markdown id: tags:
Det er mange muligheter som ligger inne i jupyter, og vi skal ikke bruke alt i dette kurset. Det er ingenting som hindrer dere fra i å finne andre jupyter-notatbøker på nettet selv hvis dere ønsker mer utfordring eller å utforske hva som er mulig.
**Lykke til videre med jupyter!**
%% Cell type:markdown id: tags:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="_Oving1.ipynb">Øving 1</a>
</div>
<ul class="nav navbar-nav">
<li><a href="Intro%20til%20jupyter.ipynb">Intro til Jupyter</a></li>
<li ><a href="Jeg%20elsker%20ITGK!.ipynb">Jeg elsker ITGK!</a></li>
<li ><a href="Kalkulasjoner.ipynb">Kalkulasjoner</a></li>
<li><a href="Input%20og%20variable.ipynb">Input og variable</a></li>
<li><a href="Tallkonvertering.ipynb">Tallkonvertering</a></li>
<li ><a href="Peppes%20Pizza.ipynb">Peppes Pizza</a></li>
<li ><a href="Geometri.ipynb">Geometri</a></li>
<li ><a href="Vitenskapelig%20notasjon.ipynb">Vitenskapelig notasjon</a></li>
<li ><a href="Tetraeder.ipynb">Tetraeder</a></li>
<li ><a href="Bakekurs.ipynb">Bakekurs</a></li>
<li class="active"><a href="James%20Bond%20and%20Operation%20round().ipynb">James Bond and Operation Round</a></li>
</ul>
</div>
</nav>
# James Bond and Operation round()
**Læringsmål:**
* Bruk av heltallsdivisjon og modulo, konvertering av data
* Avrunding
* (særlig c) Oppdeling / håndtering av strenger
**Starting Out with Python:**
* Kap. 2.3
* Kap. 3.1
* Kap. 4.2
* Kap. 8.2
%% Cell type:markdown id: tags:
## a) Kjøpmannsavrunding
%% Cell type:markdown id: tags:
"Kjøpmannsavrunding" innebærer at man alltid runder opp når et tall er midt mellom to runde tall. F.eks. at 2.5 rundes til 3 og 3.5 til 4 hvis vi skal ha hele tall, og 2.25 likeledes rundes til 2.3 hvis vi skal ha en desimal. Som forklart i tutorial i oppgaven Tallkonvertering (tidligere i denne samme øvingen) bruker Pythons funksjon `round()` **ikke** kjøpmannsavrunding, men runder i stedet i partallsretning i situasjoner hvor tallet er midt mellom to alternativer. Dvs., 2.5 vil da rundes ned til 2 fordi 2 er partall, mens 3.5 rundes opp til 4. Det er fornuftige grunner til dette (unngå systematiske feil som man får hvis man alltid runder opp). I noen situasjoner - f.eks. hvis man er kjøpmann - kan det imidlertid være at man faktisk ønsker kjøpmannsavrunding.
Oppgaven din her er å lage et program som får til kjøpmannsavrunding. Det skal be bruker om å skrive inn et desimaltall, samt ønsket antall desimaler det skal avrundes til - og så foreta denne avrundingen. Dette må da gjøres på annet vis enn å bruke Pythons `round()`-funksjon, siden du f.eks. skal runde 2.5 til 3 (hvis null desimaler) og 2.25 til 2.3 (hvis en desimal) mens `round()` ville runde nedover her. Et par eksempler på kjøring:
```python
Gi inn et desimaltall: 2.5
Antall desimaler i avrunding: 0
Avrundet til 0 desimaler: 3
```
```python
Gi inn et desimaltall: 2.25
Antall desimaler i avrunding: 1
Avrundet til 1 desimal: 2.3
```
```python
Gi inn et desimaltall: 2500.0
Antall desimaler i avrunding: -3
Avrundet til -3 desimaler: 3000
```
Som eksemplet viser skal det også være mulig å gi inn negativt antall desimaler for å få grovere avrunding enn nærmeste heltall. Også da med kjøpmannsavrunding (dvs. 2500 blir 3000, ikke 2000).
***Skriv koden din i blokka under.***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
## b) Avrunding som unngår unøyaktig tallrepresentasjon
%% Cell type:markdown id: tags:
Selv hvis vi er fornøyde med IEEE-standarden for avrunding (heller enn kjøpmannsavrunding), kan `round()` av og til gi overraskende resultater. F.eks.
* `round(2.50000000000000000001)` gir 2, selv om tallet er litt nærmere 3
* `round(2.15, 1)` gir 2.1, selv om regelen om å gå mot partall skulle tilsi 2.2
Begge disse og andre lignende tilfeller skyldes egentlig ikke noen feil ved `round()`-funksjonen, men problemer med selve representasjonen av tall i det binære systemet.
2.50000000000000000001 lar seg ikke representere eksakt i maskinen, så den tar det nærmeste den får til, som her blir 2.5 - og dermed vipper `round()` ned.
2.15 lar seg heller ikke representere eksakt (i det binære tallsystemet, selv om det kun trengs tre siffer i titallssystemet), det nærmeste maskinen får til er 2.14999999999999999999. Dermed ligger tallet ikke lenger midt imellom men litt nærmere 2.1, så avrunding vipper ned.
Oppgaven her er å lage et program som klarer å avrunde korrekt selv med slike tall som dette. For å klare oss mest mulig med det som er undervist av pensum hittil, kan heltallsdelen og desimaldelen til tallet vi skal behandle, leses inn hver for seg. Eksempel på kjøring blir da:
```
Oppgi heltallsdelen av tallet (det foran punktum): 2
Oppgi desimaldelen av tallet (det bak punktum): 5
Oppgi ønsket antall desimaler i avrunding: 0
2.5 avrundet til 0 desimaler blir 2
Oppgi heltallsdelen av tallet (det foran punktum): 2
Oppgi desimaldelen av tallet (det bak punktum): 15
Oppgi ønsket antall desimaler i avrunding: 1
2.15 avrundet til 1 desimal blir 2.2
Oppgi heltallsdelen av tallet (det foran punktum): 2
Oppgi desimaldelen av tallet (det bak punktum): 500000000000000000001
Oppgi ønsket antall desimaler i avrunding: 0
2.500000000000000000001 avrundet til 0 desimaler blir 3
```
Denne oppgaven går delvis utenfor det som undervist hittil i emnet.
***Skriv koden din i blokka under.***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
## c) Strenghåndtering
%% Cell type:markdown id: tags:
Lag et program hvor brukeren skriver inn navnet sitt fra tastaturet etter ledeteksten "Jeg heter:", og la maskinen svare med setningen The name is... som vist i boksen under.
```
Jeg heter: James Bond
The name is Bond, James Bond
```
Her vil du mest sannsynlig måtte benytte deg av programmeringsmekanismer som ikke er forelest ennå, enten if-setninger, løkker og strengindeksering, eller strengmetoder som `split()` med tilhørende listebehandling. Hvis du vil gjøre det ekstra vanskelig for deg selv (**VALGFRITT**, ikke nødvendig for å få godkjent), prøv å lage et program som også funker for personer med flere enn to navn (f.eks. The name is Hopper, Grace Murray Hopper), men som tar hensyn til at preposisjoner som Von, Van, De, Di er del av etternavnet (f.eks. The name is Von Neumann, John Von Neumann; The name is De Morgan, Augustus De Morgan... dog likevel bare hvis dette kommer i midten, det må fortsatt bli The name is Morrison, Van Morrison). Dessuten, hvis et navn slutter med Jr, Sr eller romertall, er det ikke det siste ordet som er etternavnet men det nest siste: The name is Northug, Petter Northug Jr; The name is Huxtable, Henry Huxtable III.
***Skriv koden din i blokka under.***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="_Oving1.ipynb">Øving 1</a>
</div>
<ul class="nav navbar-nav">
<li><a href="Intro%20til%20jupyter.ipynb">Intro til Jupyter</a></li>
<li class="active"><a href="Jeg%20elsker%20ITGK!.ipynb">Jeg elsker ITGK!</a></li>
<li ><a href="Kalkulasjoner.ipynb">Kalkulasjoner</a></li>
<li><a href="Input%20og%20variable.ipynb">Input og variable</a></li>
<li><a href="Tallkonvertering.ipynb">Tallkonvertering</a></li>
<li><a href="Peppes%20Pizza.ipynb">Peppes Pizza</a></li>
<li><a href="Geometri.ipynb">Geometri</a></li>
<li><a href="Vitenskapelig%20notasjon.ipynb">Vitenskapelig notasjon</a></li>
<li><a href="Tetraeder.ipynb">Tetraeder</a></li>
<li><a href="Bakekurs.ipynb">Bakekurs</a></li>
<li ><a href="James%20Bond%20and%20Operation%20round().ipynb">James Bond and Operation Round</a></li>
</ul>
</div>
</nav>
# Jeg elsker ITGK!
**Læringsmål:**
* Printe tekst og tall til konsoll
* Skrive et enkelt program
**Starting Out with Python:**
* Kap. 1.5
* Kap. 2.2-2.4
%% Cell type:markdown id: tags:
### print() - tutorial del 1:
Les gjerne denne før du gjør de neste oppgavene, særlig hvis du ikke kan programmere fra før.
%% Cell type:markdown id: tags:
Programmer som skal brukes av mennesker, må ofte vise informasjon på skjermen. En enkel måte for dette i Python er funksjonen print().