IN1000 høst2024
Introduksjon til objektorientert programmering (Python)
03.02 Nye datatyper
Filnavn: ordtelling.py
I denne oppgave skal vi jobbe med en liste av strenger for å telle ord. Du bør bruke funksjonaliteter(f.eks. funksjoner, metoder, og datatyper) som tilbys, ikke bare telle ordene manuelt.
Kopier følgende liste til pythonfilen:
ordliste = ["I", "dag", "er", "jeg", "så", "lykkelig", "så", "lykkelig", "så", "lykkelig", "det", "hele", "endte", "dejligt", "jeg", "synger", "og", "er", "glad", "Ja", "alting", "endte", "lykkeligt", "så", "lykkeligt", "så", "lykkeligt", "i", "dag", "er", "jeg", "så", "lykkelig", "som", "dagen", "den", "er", "lang"]
a) Skriv ut hvor mange ord det er i listen (totalt antall ord, ikke unike ord) ved hjelp av en innebygd funksjon.
b) Skriv ut hvor mange unike ord det er i listen.
Hint
Konverter listen til en annen type samling, og sjekk lengden.
c) For ordene 'lykkelig', 'så' og 'dag', skriv ut hvor mange ganger de forekommer i listen.
Hint
Du kan bruke en funksjon som ble vist i denne ukes forelesning.
d) Lag en ordbok som inneholder ordene 'lykkelig', 'så' og 'dag' som nøkler, og antall forekomst av ordet som verdi. Skriv ut denne ordboken.
e) Hva skjer når du kaller list()
på en ordbok? Og hva skjer når du kaller set()
?
a)
antall_ord = len(ordliste)
print(antall_ord)
b)
unike_ord = set(ordliste)
antall_unike_ord = len(unike_ord)
print(antall_unike_ord)
c)
print(liste.count("lykkelig"))
print(liste.count("så"))
print(liste.count("dag"))
d)
frekvens = {}
frekvens["lykkelig"] = liste.count("lykkelig")
frekvens["så"] = liste.count("så")
frekvens["dag"] = liste.count("dag")
print(frekvens)
Eller:
frekvens = {"lykkelig": liste.count("lykkelig"),
"så": liste.count("så"),
"dag": liste.count("dag")}
print(frekvens)
e) list()
: du får en liste med nøkler
set()
: du får en mengde med nøkler
03.05: Objekter tilbyr tjenester
Filnavn: tjenester.py
a) Ta inn et ord fra brukeren og lagre resultatet i en variabel, ord
.
b) Skriv ut ordet med store bokstaver.
c) Skriv ut hvor mange tegn ordet består av (hvor langt ordet er).
d) Lagre det første tegnet i ordet i en variabel, foerste
, og skriv verdien til variabelen ut.
e) Tell hvor ofte foerste
forekommer i ordet, og skriv ut resultatet.
Python dokumentasjon om strengmetoder
a)
ord = input("Skriv inn et ord: ")
b)
print(ord.upper())
c)
print(len(ord))
d)
foerste = ord[0]
print("Første bokstaven er: ", foerste)
e)
print("Den forekommer", ord.count(foerste), "ganger i ordet", ord)
Hele programmet:
ord = input("Skriv et ord: ")
print(ord.upper())
print(len(ord))
foerste = ord[0]
print("Første bokstaven er: ", foerste)
print("Den forekommer", ord.count(foerste), "ganger i ordet", ord)
03.08: Enkel tegning
EZgraphics er ikke pensum høsten 2023
Filnavn: enkel_tegning.py
For å løse denne oppgaven må du først laste ned modulen ezgraphics.py, som du finner her. Legg filen i samme mappe som enkel_tegning.py_
De følgende tre stegene er beskrevet i detalj på side 64 i Python for Everyone.
a) Øverst i programmet skal du importere GraphicsWindow
fra modulen ezgraphics
.
b) Opprett et grafikkvindu og lagre det i en variabel kalt win
.
c) Opprett et kanvas og lagre det i en variabel kalt canvas
.
d) Så skal du tegne et enkelt rektangel. Gjør det ved å skrive følgende linje inn i programmet ditt:
canvas.drawRect(20, 20, 100, 75)
e) Hvis du kjører programmet nå vil tegningen du lager forsvinne med en gang. For å unngå dette skriv følgende linje nederst i koden:
win.wait()
f) Test programmet ditt. Du kan lukke vinduet du får opp ved å trykke på krysset øverst i høyre hjørne. Prøv å endre verdiene til drawRect()
og se hvordan det forandrer tegningen din.
from ezgraphics import GraphicsWindow
win = GraphicsWindow()
canvas = win.canvas()
canvas.drawRectangle(20, 20, 100, 75)
win.wait()
03.12: Matliste
Filnavn: matliste.py
a) Lag en liste kalt favorittmat
med 3 av dine favorittmatretter (representert som strenger).
b) Skriv ut hele listen.
c) Fjern det andre elementet fra listen.
d) Skriv ut hvor mange matretter det er i listen nå, og sjekk at det er 2 stk.
e) Skriv ut de to matrettene slik alle boksatvene blir store.
a)
favorittmat = ["pasta", "pannekaker", "fruktsalat"]
b)
print(favorittmat)
c)
favorittmat.pop(1)
d)
antall_matretter = len(favorittmat)
print("Antall matretter nå:", antall_matretter)
ELLER (uten å bruke en variabel):
print("Antall matretter nå:", len(favorittmat)
e)
print(favorittmat[0].upper())
print(favorittmat[1].upper())