Commit 56b7431b authored by Vilde Roland Arntzen's avatar Vilde Roland Arntzen
Browse files

Lagt til notebook ØF 6

parent a6370873
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Øvingsforelesning 6"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Forklaring av lister\n",
"**Lister** er en datatype som inneholder *elementer* som kan ha ulike datatyper. Det er altså en måte å samle flere ting i samme variabel. En liste lages ved å legge elementer inn i et par med firkantparanteser `[]`. Dette kan også tilegnes en variabel. For eksempel kan jeg opprette en liste `min_liste` med partall mellom 2 og 10: \n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"min_liste = [2,4,6,8,10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For å aksessere elementene i listen under kan vi benytte indeksering. Indeksen forteller hvilken \"plass\" vi er på i listen. Den første indeksen i listen er 0 og den siste er *antall elementer - 1*. Det vil si at det første elementet i `min_liste`, 2, kan hentes ut slik:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"min_liste[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"og det siste elementet i listen kan hentes ut slik:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"min_liste[4] # Hvor 4 er lengden til listen minus 1 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test deg frem med lister selv\n",
"Kodeblokken under er lagt til for at du skal kunne leke deg litt frem med lister selv. Gjerne kombiner det med konsepter du har lært tidligere som if-setninger, løkker og funksjoner. Hvis du trenger litt hjelp til å begynne kan du titte i tabellene under som viser hvordan vi kan jobbe med lister i Python."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Indeksering, Slicing og Traversering\n",
"<img src=\"liste-indeksering.jpg\" style=\"width: 600px;\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Innebygde liste-funksjoner: Nice to know\n",
"<img src=\"liste-funksjoner.jpg\" style=\"width: 600px;\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Oppgaver til øvingsforelesning 5 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Oppgave 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Du skal på butikken for moren din og har fått beskjed om å huske alle gjenstandene du skal kjøpe med. Du bestemmer deg derfor for å programmere en handleliste i Python.*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a) Lag en liste som heter `handleliste` som inneholder følgende elementer som strenger i den gitte rekkefølgen:\n",
"* `'Melk'`\n",
"* `'Bananer'`\n",
"* `'Brus'`\n",
"* `'Rundstykker'`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*I siste liten endrer moren din mening og ber deg om å kjøpe brød istedenfor rundstykker* <br><br>\n",
"b) Endre det siste elementet i handlelisten til `'Brød'` istedenfor `'Rundstykker'`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Vennen din Kåre sier han kan hjelpe deg med å handle og vil derfor ta halve handlelista*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"c) Lag en **funksjon** som returnerer første halvdelen av en liste, og bruk den på lista fra b)\n",
"* Hint: slicing: liste[a:b] \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Du er sikker på at du husker det siste elementet `'Brød'` så du trenger egentlig bare en handleliste med elementene som forekommer før `'Brød'` i handlelisten*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"d) Lag en **funksjon** som kopierer alt utenom det første og siste elementet i en ny liste, og returnerer den nye listen. \n",
"* Hint: `liste[-1]`gir det siste elementet i en liste\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Oppgave 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Du skal lage multiple choice-eksamen i ITGK og vil at svaralternativene skal være et tall mellom 1 og 4.*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a) Lag en funksjon, `multiple_choice_fasit`, som lager en liste som inneholder 5 elementer der hvert element har en tilfeldig tall-verdi mellom 1 og 4.\n",
"* Hint: import random, random.randint(1, 4) "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Du ønsker å lage et program som automatisk retter eksamen for deg * <br><br>\n",
"b) Lag en funksjon, `antall_rette`, som tar inn to lister, `fasit` og `gjett` og returnerer hvor mange av gjettene som var like med fasit. \n",
"\n",
"*Hint*:\n",
"* Indeksen korresponderer til spørsmålet Dvs. at fasiten til spørsmål 1 er `fasit[0]` og brukerens gjett til spørsmål 1 er `gjett[0]` osv."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Du ønsker deretter å lage et eksamens-program som utfører eksamen for deg* <br><br>\n",
"\n",
"c) Lag en funksjon `eksamen` som gjør følgende:\n",
"* Lager en variabel `fasit` inneholder 5 tilfeldige tall mellom 1 og 4. \n",
"* Lager en liste `gjett`som inneholder 5 gjett fra brukeren som hentes ved bruk av input()-funksjonen og skal være et heltallmellom 1 og 4 (Hint: bruk en for-løkke)\n",
"* Printer ut til skjermen hvor mange spørsmål der brukeren svarte likt med fasiten\n",
"\n",
"\n",
"*Ekstraoppgave:*\n",
"* Hvis brukeren svarte riktig på mer enn 2 spørsmål, skriv ut til skjermen \"Gratulerer, du bestod eksamen!!\" og hvis ikke skriv ut til skjermen \"Besre lykke neste gang....."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Skriv koden din her"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Oppgave 3: Eksamensoppgave Høst 2014"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"E2014-3.jpg\" style=\"width: 750px;\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"E2014-3a.jpg\" style=\"width: 750px;\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br><br>\n",
"**Oppgaven:**<br>\n",
"Du skal lage en funksjon som går gjennom listen weatherData og skriver ut\n",
"* Antall dager i perioden (Dvs. antall lister i weatherData)\n",
"* Total nedbørsmengde i perioden \n",
"* Laveste temperatur og dagen denne forekom \n",
"* Høyeste temperatur og dagen denne forekom\n",
"\n",
"*`weatherData`:*\n",
"* weatherData er en liste med lister i (matrise), hvor hver liste i weatherData er på formatet `[maximumstemperatur, minimumstemperatur, nedbørsmengde]`\n",
"* Den første lista i weatherData, dvs. `weatherData[0]` er vær-data for dag 1, den andre lista i weatherData, dv `weatherData[1]` er værdata for dag 2 osv. \n",
"\n",
"\n",
"*Hint:* Konsentrer deg om ett av punktene over om gangen, lagre informasjonen i variabler og skriv ut informasjonen til slutt.\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def weatherStats(weatherData):\n",
" # Regn ut antall dager i perioden \n",
" \n",
" # Regn ut total nedbørsmengde \n",
" \n",
" # Finn laveste temperatur og dagen denne forekom\n",
" \n",
" # Finn høyeste temperatur og dagen denne forekom \n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Test om funksjonen din skriver ut riktig informasjon ved å kjøre kodeblokken under og sammenligne med det som kommer ut i eksamensbeskrivelsen."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"weatherData = [[12.0, 2.4, 8.2], [6.1, 0.6, 11.9], [8.3, -3.5, 0.0], [11.6, -5.2, 0.0], [15.3, 2.8, 14.3]]\n",
"\n",
"weatherStats(weatherData)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment