Skip to content
Snippets Groups Projects
Commit 66b97bec authored by Vetle Roos Mangrud's avatar Vetle Roos Mangrud :alien:
Browse files

Oppdatere tittel ØF6

parent d9e6b7dc
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Øvingsforelesning 7 - ITGK
# Øvingsforelesning 6 - ITGK
Lister og tekstbehandling
%% Cell type:markdown id: tags:
### Oppgave 1
Du er gitt to lister:
- `handleliste`, som inneholder dagligvarer du skal kjøpe
- `priser`, som angir prisene til varene i `handleliste`
Prisen til et element i handleliste er elementet i priser som har samme indeks, altså vil prisen til `handeliste[i]` være `priser[i]` der `i` er indeksen (plassen) til elementet i listen.
Lag en funksjon `print_handleliste` som tar inn to parametre - en handleliste og en prislite - og som printer ut elementene i handlelisten med tilhørende pris på formatet
```
Melk: 17 kr
Bananer: 5 kr
```
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:markdown id: tags:
Testkode
%% Cell type:code id: tags:
``` python
print_handleliste(["Eple", "Pære", "Appelsin"], [10, 9, 8])
print_handleliste(["Paprika", "Pizza"], [5, 65])
print_handleliste(["Paprika", "Pizza", "Pølse", "Melk"], [5, 65, 25, 20])
```
%% Cell type:markdown id: tags:
### Oppgave 2
Lag en funksjon `zero_matrix(dim)` som tar inn et heltall `dim` og som oppretter en kvadratisk tabell (2D-liste) med antall rader og kolonner lik `dim`. Tabellen skal kun inneholde `0` i alle elementer, og funksjonen skal **returnere tabellen**.
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
# Denne hjelpefunksjonen printer en 2D-liste rad for rad
def print_matrix(matrix):
for row in matrix:
print(row)
print_matrix(zero_matrix(3))
print("")
print_matrix(zero_matrix(4))
print("")
print_matrix(zero_matrix(5))
```
%% Cell type:markdown id: tags:
### Oppgave 3
Lag en funksjon `matrix_max(matrix)` som tar inn en 2D-liste med tall, og returnerer det høyeste tallet
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
# Denne hjelpefunksjonen printer en 2D-liste rad for rad
def print_matrix(matrix):
for row in matrix:
print(row)
matrix1 = [[5]]
matrix2 = [[4,6], [1,3]]
matrix3 = [[1,2,6],[5,2,4],[3,2,7]]
print_matrix(matrix1)
print(f"Maks er",matrix_max(matrix1))
print_matrix(matrix2)
print("Maks er",matrix_max(matrix2))
print_matrix(matrix3)
print("Maks er",matrix_max(matrix3))
```
%% Cell type:markdown id: tags:
### Oppgave 4
- Lag en funksjon som tar inn to ord og sjekker om **de tre første bokstavene** i ordene er like, **ikke sensitivt for store/små bokstaver**
- Returner `True` hvis de tre første bokstavene er like, `False` ellers
- `"Fotball"` og `"fotografi"` skal returnere `True`
**Hint:**
- Bruk slicing for å hente ut en substreng med de tre første bokstavene: `new_str = str[0:3]`
- Bruk `str.lower()` for å kunne sammenligne små bokstaver
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
print(starts_with_same("Fotball", "fotografi"))
print(starts_with_same("Fotball", "fisk"))
print(starts_with_same("eple", "ePLe"))
```
%% Cell type:markdown id: tags:
### Oppgave 5: Hva printes her?
```python
my_word = "IATGGUK"
def myst(A):
new_word = ""
for i in range(0, len(A), 2):
new_word = new_word + A[i]
return new_word
myst_word = myst(my_word)
print(myst_word)
```
%% Cell type:markdown id: tags:
### Oppgave 6
- A. Lag en funksjon som tar inn et ord og en bokstav. Funksjonen skal returnere en **liste over alle indeksene man finner bokstaven** i ordet
- B. Lag en funksjon `contains_vocals(streng)` som tar inn en streng `streng` og som returnerer `True` eller `False` avhengig **om strengen inneholder vokaler** eller ikke
**Hint:**
- Vokaler: `a`, `e`, `i`, `o`, `u`, `y`, `æ`, `ø`, `å`
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:markdown id: tags:
### Oppgave 7
Lag funksjonen `is_angry(str)` som tar inn en streng `str` og som returnerer `True` hvis alle alfabetiske tegn er store og strengen slutter på `"!"`.
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
print(is_angry("Så fin du er !")) # False
print(is_angry("SÅ FIN DU ER")) # False
print(is_angry("SÅ FIN DU ER!")) # True
```
%% Cell type:markdown id: tags:
### Oppgave 8
Lag en funksjon `vocal_strings(str_list)` som tar inn en liste med strenger, `str_list`, og som returnerer en sammensatt streng bestående av strengene i listen som inneholder vokaler
**Hint:**
- Bruk `contains_vocals(streng)` fra oppgave 5B
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
print(vocal_strings(["Hei ", "ghkj", "alle ", "bgq", "sammen!"]))
print(vocal_stings(["ITGK ", "r", "er ", "gjlplqn", "kult"]))
```
%% Cell type:markdown id: tags:
### Oppgave 9
- Lag en funksjon `words_in_string(str)` som tar inn en streng og som returnerer en liste med alle ord i strengen
- Listen skal kun inneholde ord uten mellomrom og andre ikke-alfabetiske tegn
Hint: `str.isaplha()`
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
print(words_in_string("Her er det 6 ord med bokstaver")) # ["Her", "er", "det", "ord", "med", "bokstaver"]
print(words_in_string("Hello world.")) # ["Hello"]
```
%% Cell type:markdown id: tags:
## Eksamensoppgave
Kontinuasjonseksamen, august 2020 | Oppgave 2
%% Cell type:markdown id: tags:
### K2020, Oppgave 2.1
Lag funksjonen `home_draw_away(matches)` som har en input-parameter `matches` som er en liste som inneholder informasjon om fotballkamper i siste runde ble hjemmeseier (`"H"`), uavgjort (`"U"`) eller borteseier (`"B"`).
Funksjonen skal returnere ei liste med 3 tall, der det første tallet er antallet hjemmeseire, det andre tallet er antallet uavgjort, og det siste tallet er antallet borteseiere. Funksjonen skal fungere på lister av ulik lengde, skal fungere for stor og liten bokstav for H, U og B, samt at den skal ignorere resultat som ikke er H, U, eller B.
Eksempel på kjøring av kode:
```
>>> matches = ('H', 'u', 'B', 'h', 'b', 'H', 'U', 'H', 'h', 'B', 'H', 'U', 'x', 'h', 'U')
>>> res = home_draw_away(matches)
>>> print(res)
[7, 4, 3]
```
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
matches = ('H', 'u', 'B', 'h', 'b', 'H', 'U', 'H', 'h', 'B', 'H', 'U', 'x', 'h', 'U')
res = home_draw_away(matches)
print(res)
```
%% Cell type:markdown id: tags:
### K2020, Oppgave 2.2
Lag funksjon `pos_vocals(text)` som tar inn en parameter `text` som er en tekststreng og returnerer posisjonen til alle norske vokaler i strengen text som ei liste. Funksjonen skal fungere for vokaler skrevet med stor og liten bokstav.
Eksempel på kjøring av kode:
```
>>> test = "DettE er et eksempel pÅ lAng liste med vokaler"
>>> pos = pos_vocals(test)
>>> print(pos)
[1, 4, 6, 9, 12, 15, 18, 22, 25, 30, 33, 36, 40, 42, 44]
```
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
test = "DettE er et eksempel pÅ lAng liste med vokaler"
pos = pos_vocals(test)
print(pos)
```
%% Cell type:markdown id: tags:
### K2020, Oppgave 2.3
Lag funksjon `uniqe(text)` som har en inn-parameter `text` som er en tekststreng.
Funksjonen skal returnere en liste med alle unike ord i teksten skrevet med små bokstaver. Rekkefølgen ordene i lista har er ikke bestemt. Merk at funksjonen skal returnere kun ord, og tegn som man typisk har i en setning skal fjernes. Man kan anta at tekstrengen starter med en bokstav, at ordene er adskilt med mellomrom, at man ikke har tegn inne i et ord, og at man ikke har flere enn ett tegn etter hverandre.
Eksempel på kjøring av kode:
```
>>> test = "Er dette greit, eller er det IKKE greit? Det er greit tror jeg!"
>>> words = unique(test)
>>> print(words)
['er', 'dette', 'greit', 'eller', 'det', 'ikke', 'tror', 'jeg']
```
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:code id: tags:
``` python
test = "Er dette greit, eller er det IKKE greit? Det er greit tror jeg!"
words = unique(test)
print(words)
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment