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:

Løkker 3: while-løkker

I denne oppgaven skal du bruke while-løkker

a) Skriv et program som ber brukeren legge til ett og ett ord helt til brukeren skriver "ferdig". Når brukeren er ferdig skal den få muligheten til å gjette på hvor mange ord som ble lagt inn. Skriv ut om svaret var riktig eller ikke, og hva det riktige svaret var.

b) Bruk en while-løkke sammen med en indeks-variabel som starter på 0, og gå gjennom lista under. Elementene i lista skal skrives ut, sammen med hvor lange de er, helt til du kommer til et ord som er lengre enn 9 tegn, da skal løkka avsluttes, og ordet med fler enn 9 tegn skal skrives ut.

liste = ['mel', 'pepper', 'salt', 'ris', 'saus', 'sitron', 'aubergine', 'kjele', 'kardemomme', 'ost']

c) Spørrelek. Lag ei ordbok med minst tre spørsmål, der spørsmålet er nøkkelverdien, og svaret er innholdsverdien. Iterer gjennom ordboka, og for hver iterasjon skal du kjøre ei while-løkke som ber brukeren svare. Hvis brukeren gir opp ved å svare "neste" (eller noe annet, du bestemmer!), eller svarer riktig, så skal du gå videre til neste spørsmål. Lagre antall riktige i en egen variabel, og skriv ut denne med en hyggelig melding til brukeren når de har svart på alle spørsmålene.

Vis løsningsforslag

Disse oppgavene begynner å bli mer kompliserte, og det gjør at det er mange måter å løse dem på. Det gjelder spesielt måter man kan håndtere input fra brukeren på, i tilfelle brukeren skrive noe feil, og om man skal spørre igjen, osv. Løsningene under er kun forslag.

a)

liste_med_ord = []
svar = input("Skriv et ord.\n").lower()
while svar != "ferdig":
    liste_med_ord.append(svar)
    svar = input("Skriv et ord.\n").lower()
hvor_mange = input("Hvor mange ord la du inn?\n")
hvor_mange = int(hvor_mange)
if hvor_mange == len(liste_med_ord):
    print("Du gjettet riktig! Det var", len(liste_med_ord), "ord.")
else:
    print("Det var dessverre feil. Det var ",len(liste_med_ord), "ord i lista.")

Utskrift:

>>>Skriv et ord.
murstein
>>>Skriv et ord.
flis
>>>Skriv et ord.
takstein
>>>Skriv et ord.
kalk
>>>Skriv et ord.
ferdig
>>>Hvor mange ord la du inn?
4
>>>Du gjettet riktig! Det var 4 ord.

b)

liste = ['mel', 'pepper', 'salt', 'ris', 'saus', 'sitron', 'aubergine', 'kjele', 'kardemomme', 'ost']
indeks = 0
element = liste[indeks]
while len(element) < 10:
    print(element,"har",len(element),"bokstaver.")
    indeks += 1
    element = liste[indeks]
print(element,"har flere enn 9 bokstaver!")

Utskrift:

mel har 3 bokstaver.
pepper har 6 bokstaver.
salt har 4 bokstaver.
ris har 3 bokstaver.
saus har 4 bokstaver.
sitron har 6 bokstaver.
aubergine har 9 bokstaver.
kjele har 5 bokstaver.
kardemomme har flere enn 9 bokstaver!

c)

ordbok = {"Hva er hovedstaden i Norge?":"Oslo","Hva lages rismelk av?":"Ris","Hva sier kua?":"Mø"}
riktig = 0
for spoersmaal in ordbok:
    print(spoersmaal)
    svar = input()
    while svar != ordbok[spoersmaal] and svar != "gir opp":
        print(spoersmaal)
        svar = input("Prøv igjen eller skriv 'gir opp' for å gi opp.\n")
    if svar == "gir opp":
        print("Bedre lykke på neste spørsmål!")
    else:
        print("Veldig bra:D")
        riktig += 1
print("Leken er ferdig. Du fikk",riktig," av 3 poeng riktig!")

Utskrift:

>>>Hva er hovedstaden i Norge?
Oslo
>>>Veldig bra:D
>>>Hva lages rismelk av?
melk
>>>Hva lages rismelk av?
>>>Prøv igjen eller skriv 'gir opp' for å gi opp.
gir opp
>>>Bedre lykke på neste spørsmål!
>>>Hva sier kua?
Mø
>>>Veldig bra:D
>>>Leken er ferdig. Du fikk 2  av 3 poeng riktig!