Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Logg inn

Valgte tags:

Filtrering:

Skriv ut:

1.01: Velkommen til IN1000

Filnavn: velkommen.py

Kopier koden nedefor til en fil du kaller velkommen.py på din datamaskin.
Naviger deg til riktig mappe i terminalen og kjør programmet

print("Velkommen til IN1000")

Hint: For å navigere i mapper i terminalen, bruk kommandoen "cd". Kjør programmet med "python3 ".

1.02: Mitt program

Filnavn: mitt_program.py

Skriv et program som skriver "Dette er mitt program" i terminalen.

Vis løsningsforslag
print("Dette er mitt program")

1.03: Personinformasjon

Filnavn: person.py

  1. Skriv ditt navn, tlf og adresse til terminal på samme linje.
  2. Skriv ditt navn, tlf og adresse til terminal på hver sin linje.
Vis løsningsforslag
# 1
print("Ola Nordmann 81549300 Gategaten 21")

# 2
print("Ola Nordmann\n81549300\nGategaten 21")
# eller
print("Ola Nordmann")
print("81549300")
print("Gategaten 21")

1.04: Tilordning og utskrift

Filnavn: hei_verden.py

a) Skriv et program som skriver "Hei Verden!" til terminalen.
b) Utvid programmet med en heltallsvariabel alder som har verdien 4.
c) Skriv ut "Alder: " og verdien av alder til terminalen.
d) Legg inn følgende kommentar i programmet: "Nå endrer vi verdien av variabelen alder :".
e) Endre verdien i variabelen alder til din egen alder. Skriv ut en ny linje til terminalen med en passende tekst og den nye verdien til alder.
f) Kjør programmet ditt.

Vis løsningsforslag
print("Hei Verden!")
alder = 4
print("Alder: ", alder)
# Nå endrer vi verdien av variabelen alder: 
alder = 400
print("Min alder er:", alder)
python3 hei_verden.py

1.05: Utskrift i pyramideform

Filnavn: stjerner.py

Lag et Python-program som skriver ut tre linjer med stjerner "*" slik at det ser ut som en pyramide på skjermen. Kjør programmet og gjør endringer inntil du ser at programmet fungerer slik det skal.

1.06: Summering av heltall

Filnavn: sum_heltall.py

Lag to heltallsvariabler og kall dem a og b. Lagre verdiene 4 og 5 i variablene. Skriv ut summen av tallene.

Vis løsningsforslag
a = 4
b = 5
print("Summen er:", a+b)

1.07: Areal av rektangel

Lag to variabler, en for bredde og en for høyde. Bestem selv verdiene. Skriv ut verdiene til terminalen. Lag en tredje variabel for arealet til rektangelet med verdi bredde ganger høyde. Skriv ut arealet til terminalen.

Vis løsningsforslag
bredde = 10
hoyde = 20
print("Bredde:", bredde)
print("Høyde:", hoyde)

areal = bredde * hoyde
print("Areal:", areal)

1.08: Utskrift med formatering

  1. Les om formattering av utskrift i læreboka s. 54-57 eller i Python-dokumentasjonen (https://docs.python.org/3/tutorial/inputoutput.html).
  2. Skriv et program hvor du definerer to flyttallsvariabler: lengde og bredde. Gi disse variabelen verdiene 10.101 og 3.843.
  3. Skriv ut følgende setning ved å bruke formatering av utskrift og de to variablene:
Rektangelet er 10.1 cm langt og 3.8 cm bredt.

1.09: Sammenligning av to tall

Navn: sammmenlign.py

Lag et program som inneholder to heltallsvariable, a og b. Gi variablene verdier som du selv velger. Sjekk om a er større enn b, og skriv ut til skjerm enten "a er større enn b" eller "a er ikke større enn b". Varier verdiene du setter for a og b, og sjekk at resultatet blir som forventet i alle tilfellene.

Vis løsningsforslag
a = 4
b = 2

if a > b :
    print("a er større enn b")
else:
    print("a er ikke større enn b")

1.10: Quiz

Skriv et program der du ber om brukerinput på ett eller flere trivia-spørsmål. Hvis du ikke kommer på et spørsmål får du et gratis her: "Hva heter hovedstaden i Marokko?" (svaret er "Rabat").

Lagre det rette svaret i en tekststreng.

Skriv en if-test for å sjekke om brukeren har svart rett på spørsmålet. Hvis de har svart riktig skal programmet skrive ut "Helt rett!". Hvis ikke skal programmet skrive ut "Beklager, svaret var" og deretter det riktige svaret du har lagret.

Vis løsningsforslag
svar = input("Hva heter hovedstaden i Marokko?")
rett_svar = "Rabat"

if svar == rett_svar :
    print("Helt rett!")
else :
    print("Beklager, svaret var", rett_svar)

11.01: Studentliste

Vi skal her lage et system som holder på data om studenter på Ifi.

a) Lag en klasse Student. I konstruktøren skal den ta i mot verdier for navn, brukernavn og telefonnummer. Student skal ha en printInfo()-metode som printer ut informasjon om navn, brukernavn og telefonnummer.
Eksempel på utskrift fra printInfo():

Navn: Geir
Brukernavn: geirer
Telefonnr: 12345678

b) Skriv et testprogram, der du oppretter en ordliste (dictionary) som skal inneholde studenter.
c) Opprett minst tre Student-objekter, og legg dem inn i ordlisten med navn som nøkkel.
d) Iterer over ordlisten og skriv ut all informasjon som finnes om hver student.
e) Lag en metode for som tar inn et navn, og sjekker om noen student er registrert ved det navnet. Om ja, print ut informasjon om studenten. Om nei, skriv ut feilmelding.

Eksempel på interaksjon:

> python3 studentsystem.py
Hvilken student vil du soke etter?
> Ole Petter
Ole Petter finnes ikke i systemet.

> python3 studentsystem.py
Hvilken student vil du soke etter?
> Roar
Roar finnes i systemet.
Navn: Roar
Brukernavn: roahas
Telefonnr: 13579012

f) Utvid programmet så man kan legge til nye studenter.

11.02: Personer og biler

Vi skal lage et program for å holde styr på hvilke biler en person eier og hvilke biler en person har lånt av andre personer.
En forenklet person er representert slik (her må du legge til de andre variablene og de funksjonene du mener at du trenger):

class Person: 
    def __init__(self, navn):
        self._mineBiler = [] # Biler personen eier
        self._laanteBiler = [] # Biler som personen laaner, men noen andre eier
        self._navn = navn
    # Flere variable og nyttefunksjoner?

a) Lag klassen Bil som inneholder farge og merke på bilen. I tillegg skal bilen ha en metode for å sette eier.

b) Lag en metode for at en person skal kunne låne en bil (du velger selv hvilken) fra en annen person.

c) Lag et testprogram der du oppretter noen personer som eier noen biler (pass på at også hver bil får vite om sin eier), og la personene låne biler fra hverandre.

11.03: Sende brev

Fil: brev.py
a) Lag en klasse Brev med en konstruktør som tar inn avsender og mottaker. Konstruktøren skal sette tre instansvariabler: avsender, mottaker og en tom liste.

b) Lag en metode i klassen som heter skrivLinje som tar i mot en tekststreng og lagrer den i listen vi laget som en instansvariabel.

c) Lag metoden lesBrev som printer ut brevets innhold, samt hilsen. Brevet skal være på formen gitt nedenfor.

d) Opprett et Brev-objekt. Legg til mottaker, avsender og minst to linjer tekst i objektet ved hjelp av skrivLinje-metoden. Kall deretter på lesBrev-metoden som printer ut resultatet til terminalen.

Formen på brevet som skal leveres:

Hei, !

første linje i brevet
andre linje i brevet
....

Hilsen fra

Eksempel på hvordan kjøring av programmet kan se ut:

Hei, Espen Askeladd!

Hvordan har du det?
Jeg har det bare bra!

Hilsen fra
Per Askeladd
Vis løsningsforslag
class Brev:
    def __init__(self, avsender, mottaker):
        self._avsender = avsender
        self._mottaker = mottaker
        self._linjer = []

    def skrivLinje(self, linje):
        self._linjer.append(linje)

    def lesBrev(self):
        print("Hei,", self._mottaker)
        print()
        for linje in self._linjer:
            print(linje)
        print()
        print("Hilsen fra,")
        print(self._avsender)

brevet = Brev("Per Askeladd", "Espen Askeladd")
brevet.skrivLinje("Hvordan har du det?")
brevet.skrivLinje("Jeg har det bare bra!")
brevet.lesBrev()

11.04: Plante

a) Lag en klasse Plante. En plante skal ha to instansvariabler: vannbeholder og maksgrenseVann. Klassen skal ha følgende metoder:

  • vannPlante(self, vannCl): Øker vannbeholder med vannCl. Om vannbeholder blir større enn maksgrenseVann dør planten.
  • nyDag(self): For hver dag minker vannbeholder med 20 (planten drikker vannet). Om vannbeholder blir mindre enn 0, dør planten.
  • levende(self): Om planten er levende skal det returneres True, om ikke planten er levende skal det returneres False. Hint: Det kan være lurt å ha en variabel som holder styr på om planten er levende eller ikke.

b)
1. Opprett et Plante-objekt hvor maksgrenseVann er satt til 40 og et annet Plante-objekt hvor maksgrenseVann er satt til 90.
2. Vann begge plantene med 10 cl.
3. La det gå to dager for begge plantene.
4. Sjekk om plantene er levende og skriv ut status til skjermen.

11.05: Personsystem

Filnavn: personsystem.py

a) Lag en klasse Personsystem som inneholder en liste av Personer.
b) Lag en metode leggTilPerson i Personsystem som tar i mot et objekt av klassen Person og som legger inn dette objektet i listen av Personer.
c) Lag en metode finnPerson som finner en person med et gitt navn dersom personen finnes i listen.

d) I et eget hovedprogram, lag et objekt av klassen Personsystem. Legg til 5 personer i objektet ved hjelp av metoden leggTilPerson og sjekk deretter at et av objektene er blitt lagt til ved hjelp av metoden finnPerson.
Du kan ta utgangspunkt i denne klassen for Person:

class Person:
    def __init__(self, navn):
        self._navn = navn

    def hentNavn(self):
        return self._navn
Vis løsningsforslag
class Personsystem:
    def __init__(self):
        self._personer = []

    def leggTilPerson(self, person):
        self._personer.append(person)

    def finnPerson(self, navn):
        for person in self._personer:
            if person.hentNavn() == navn:
                return person
        return None

# Lager et objekt og legger til 5 personer.
system = Personsystem()
system.leggTilPerson(Person("Anne"))
system.leggTilPerson(Person("Brikt"))
system.leggTilPerson(Person("Carina"))
system.leggTilPerson(Person("David"))
system.leggTilPerson(Person("Else"))

# Sjekker at personen er i systemet.
assert system.finnPerson("Carina") != None

2.01: Hello World!

Navn: hello_world.py

a) Lag et program som lagrer tekststrengen "Hello" i en variabel "hello" og print denne variabelen til terminalen.
b) Lag en variabel "world" som tar var på tekststrengen "World".
c) Print nå begge variablene til skjermen i kun én print-setning

UTFORDRING
d) Bruk variablene "hello" og "world" i en eller flere print-setning til å gi utskriften

Hello? World?

Hint: Som parameter til print() kan man gi sep="" for at det ikke skal komme mellomrom mellom parameterene

Vis løsningsforslag

hello = "Hello"
print(hello)

world = "World"
print(world)

print(hello, world)

print(hello, "? ", world, "?", sep="")

2.02: Differansen mellom to heltall.

Navn: differanse.py

Lag et program som ber om og leser inn to heltall. Programmet skal deretter regne ut differansen mellom de to tallene og skrive ut svaret. Her er et eksempel på hvordan en kjøring av programmet kan se ut:

Oppgi verdien til x: 
> 25
Oppgi verdien til y: 
> 19
Differansen mellom x og y er 6.

Hint: Du behøver ikke tenke på at det første tallet kan være mindre enn det andre. Det er ikke nødvendig å regne ut absoluttverdien av differansen (men prøv gjerne å finne ut hvordan det gjøres, dersom du ønsker en ekstra utfordring).

Vis løsningsforslag
inp = input("Oppgi verdien til x:\n> ")
x = int(inp)

inp = input("Oppgi verdien til y:\n> ")
y = int(inp)

print("Differansen mellom x og y er", x - y)

2.03: Utskrift av sirkelberegning

  1. Les om formattering av utskrift på side 54-57 i læreboken (Python for Everyone) eller i Python-dokumentasjonen (https://docs.python.org/3/tutorial/inputoutput.html).

  2. Skriv et program som tar imot en flyttall radius fra bruker.

  3. Beregn så diameter, areal og omkrets av sirkelen i tre nye variabler.

  4. Skriv ut disse verdiene, men vis kun 2 desimaler. Sørg også for at tallene blir plassert like langt til høyre. Se under for eksempel på utskrift:

Diameter:    12.00
Areal:      113.10
Omkrets:     37.70

2.04: Regn ut produktet av to heltall.

Navn: produkt.py

a) Lag et program som ber om og leser inn to heltall. Programmet skal deretter regne ut produktet av de to tallene og skrive ut svaret.

Her er et eksempel på hvordan en kjøring av programmet kan se ut:

Oppgi verdien til x: 
> 5
Oppgi verdien til y: 
> 4
Produktet av x og y er 20.
Vis løsningsforslag
x = int( input("Oppgi verdien til x:\n> ") )
y = int( input("Oppgi verdien til y:\n> ") )
print("Produktet av x og y er", x * y)

Merk at vi her ikke mellomlagrer verdien bruker gir før vi konverterer fra string til int. Man kunne også skrevet

inp = input("Oppgi verdien til x:\n> ")
x = int(inp)

2.05: Finn ut om siste siffer er felles

Navn: siste_siffer.py

Gitt tre heltallsvariable, a, b og c med ikke-negative verdier som du velger selv. Sjekk om to eller flere har felles siste siffer, og skriv eventuelt ut disse til skjerm.

Hint: se om du kan bruke modulo-operatøren (%)!

Vis løsningsforslag
a = 43
b = 123
c = 324

if a % 10 == b % 10:
    print("a og b har like siste siffer")

if a % 10 == c % 10:
    print("a og c har like siste siffer")

if b % 10 == c % 10: 
    print("b og c har like siste siffer")

Operatoren % som er brukt her, kalles "modulo". Den beregner resten av det første tallet delt på det andre tallet. I 10-tallssystemet vil resten av et tall delt på 10 alltid være det siste sifferet i tallet (prøv selv!).

Merk at vi bruker if hele veien, og ikke elif. Årsaken er at det er mulig at flere tall har felles siste siffer -- og da vil vi ha ut alle!