Beholdere og l?kker - oppgaver

Sum opp til tall

Skriv en funksjon 'sum_opp_til(tall)' som tar inn et heltall som parameter, og som returnerer summen av alle heltallene opp til (og med) tallet. Test funksjonen (f.eks) slik:

assert sum_opp_til(10) == 55

Antall forekomster

Skriv en funksjon som tar inn en liste som parameter, og som returnerer en ordbok hvor n?klene er elementene i listen og verdiene er antall forekomster av hvert objekt. Kall p? funksjonen med (f.eks) testlisten under, og skriv ut resultatet.

Testliste: ['Siri', 'Geir Kjetil', 'Roger', 'Omid', 'Siri', 'Lars', 'Roger', 'Roger']

Vanligste element i liste

Skriv en funksjon som tar inn en liste som parameter, og som returnerer det elementet som forekommer flest ganger. Ikke bruk count(). Kall p? funksjonen med (f.eks) testlisten over, og skriv ut resultatet.

Navn i beholder

Skriv en prosedyre som lar en bruker skrive inn ulike navn, og lagre dem i en beholder. N?r brukeren har skrevet inn fem unike navn, skal prosedyren skrive ut "Hei navn" for hvert navn i beholderen.

Nest st?rste tall

Skriv en funksjon finn_nest_stoerste(mengde) som tar inn en mengde med positive tall som parameter, og som returnerer det nest st?rste tallet i listen. Test funksjonen din (f.eks) slik:

assert finn_nest_stoerste({1, 2, 3, 4}) == 3

assert finn_nest_stoerste({11, 5, 18, 19, 1, 0, 0, 34}) == 19

BONUS: Gj?r det samme, men hvor parameteret er en liste i stedet for mengde. Dersom det st?rste tallet forekommer flere ganger, skal du fortsatt returnere det nest st?rste.

Terningkastsimulator

Du skal skrive et program som finner ut hvor mange terningkast man trenger i gjennomsnitt for ? kaste to seksere.

  1. Skriv en funksjon 'kast_terninger()' som kaster to terninger og returnerer 'True' om begge er seksere, og 'False' om de ikke er det. Hint: du kan f? et tilfeldig terningkast ved ? bruke 'randint(1, 6)'. Husk ? skrive 'from random import randint' ?verst i programmet.
  2. Skriv en ny funksjon 'antall_kast_for_seksere()' som kaller p? 'kast_terninger()' i en l?kke, og returner antall ganger l?kken m? kj?re f?r 'kast_terninger()' returnerer 'True'.
  3. Skriv en tredje funksjon kalt 'finn_gjennomsnitt()' som tar inn et parameter antall_runder, som skal v?re et heltall. Funksjonen skal kalle p? 'antall_kast_for_seksere()' like mange ganger som antall_runder, og skal returnere det totale antallet kast delt p? antall_runder.
  4. Kall p? 'finn_gjennomsnitt()' med tallet 1000 som parameter, og skriv ut resultatet til terminalen.

Substreng

Skriv en funksjon substreng(s1, s2) som tar inn to strenger, og som returnerer 'True' om den andre strengen eksisterer i den f?rste, eller 'False'. Test funksjonen (f.eks) slik:

assert substreng("Hei paa deg!", "paa")

assert not substreng("Hei paa deg!", "p a")

UTFORDIRNG: Kattunge i et tre

Oppgaveteksten finnes her: https://open.kattis.com/problems/kitten