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.

Filtrering:

4.02: Kinosal

Vi har 6 seter i en kinosal, fordelt på følgende måte:

0 0 0
0 0 0
0 0 0

0 representerer en ledig plass, 1 en opptatt plass.

a) Representer denne seteplasseringen med tre lister, en for hver rad.

rad0 = [0, 0, 0]
rad1 = [0, 0, 0]
rad2 = [0, 0, 0]

b) Sett rad 0, sete 0 til opptatt.
c) Gjør det samme med rad 1, sete 2 og rad 2, sete 1.
d) Skriv listene ut slik som vist ovenfor.
e) Skriv kode som sjekker om en plass er ledig, før en person kan sette seg der.

(Hint: En ledig plass har verdien 0, en opptatt plass verdien 1).

4.04: Strenger og bokstaver

Fil: string_mix.py

  1. Skriv en funksjon som returnerer tekststrengen med alle bokstaver gjort små.
  2. Skriv en funksjon forekommer som tar argumentene setning og bokstav som returnerer True dersom bokstaven forekommer i setningen, uavhengig av store og små bokstaver.
  3. Lag en tekststreng med innholdet "HeiDuErEnFlinkStudent" og test funksjonen din med denne.
def smaa(tekst):
    return tekst.lower()

def forekommer(setning, bokstav):
    for c in smaa(setning):
        if (smaa(bokstav) == c):
            return True
    return False

tekst = "HeiDuErEnFlinkStudent"
print(forekommer(tekst, "f"))
print(forekommer(tekst, "x"))
print(forekommer(tekst, "E"))

Merk: en finner løsning ville kanskje

4.10: Sant eller usant om lister.

Sant eller usant?

a) Alle elementer i en liste er av samme type.
b) Liste-indekser må være heltall.
c) Listene kan endre størrelse (bli større eller mindre avhengig av om vi trenger mer plass).
d) Listene kan ikke inneholde tekststrenger.
e) En funksjon kan ikke motta en liste som parameter.

a) Sant, alle elementene må være av samme type
b) Sant, indeksene må være heltall
c) Sant, listene kan endre størrelse ved f.eks bruk av append

liste = [1, 2, 3, 4]
liste.append(5)

d) Usant, listene kan inneholde tekststrenger
e) Usant, en funksjon kan motta en liste som parameter

4.11: Finn antall forekomster av en streng.

Navn: finn_antall.py

a) Lag en liste stasjoner med følgende verdier: "blindern", "Bislett", "Forskningsparken", "JERNBANETORGET", "toyen", "Jernbanetorget" og "forskningsparken".

b) Lag en funksjon der du får inn en tekststreng og en liste som parameter. Du skal lage en funksjon sjekker hvor mange ganger strengen forekommer i listen. Antall forekomster skal printes ut. Også strenger med ulik bruk av små og store bokstaver skal regnes som like. Metodesignaturen skal se slik ut:

def antall_forekomster(tekst, liste):

Hint: "Hallo".lower() gjør stringen til "hallo".

# A
liste = ["blindern", "Bislett", "Forskningsparken", "JERNBANETORGET", 
        "tøyen", "Jernbanetorget", "forskningsparken"]

# B
def antall_forekomster(tekst, liste):
    antall_forekomster = 0
    teller = 0
    while teller < len(liste) :
        if liste[teller].lower() == tekst.lower() : 
            antall_forekomster+=1
        teller+=1

    print(tekst, "forekommer", antall_forekomster, "ganger")

4.12: Fil med linjenummer

Fil: linjenummer.py

Skriv et program som leser en fil med tekst. Les hver linje og send linja ut til terminalen, etterfulgt av linjenumre.

Hvis inputfilen er:

Mary had a little lamb
Whose fleese was white as snow.
And everywhere that Mary went,
The lamb was sure to go.

blir resultatet:

/* 1 */ Mary had a little lamb
/* 2 */ Whose fleese was white as snow.
/* 3 */ And everywhere that Mary went,
/* 4 */ The lamb was sure to go.

Hint: Du kan få problemer med doble linjeskift siden du også leser inn et linjeskift. Her kan du bruke rstrip() for å fjerne linjeskift og andre whitespaces i slutten av tekststrengen.

fil = open("mary.txt", "r")
nummer = 1
for linje in fil:
    print("/* %d */ %s" % (nummer, linje.rstrip()))
    nummer += 1

NB: En kanskje enda finere løsning vil være å bruke enumerate til å telle linjer!

4.13: Tall-leser

Her skal vi skrive et program som tar inn input fra brukeren til brukeren taster stopp.

a) Lag et program som leser inn et tall fra brukeren og skriver det ut sammen med en passende tekst.

Dette kan for eksempel se slik ut:

Skriv inn et tall:
0
Du gav tallet 0!

b) Legg koden som leser inn et tall inn i en while-løkke, som kjører 10 ganger.

c) Endre programmet ditt slik at programmet leser inn tall fra brukeren helt til brukeren taster inn tallet -1.