Övning 6, mer om listor och funktioner

Begrepp att öva på:

  • Listor och funktioner
  • Textsträngar med anrop av strängmetoder
  • Att tänka på listor och textsträngar som objekt

Funktioner bör alltid kompletteras med anrop som testar att funktionen fungerar även om det inte står uttryckligen i uppgiften.

Några uppgifter som passar på övningen följer. Övningsassistenterna kan välja att lösa uppgifterna på annat sätt eller välja andra uppgifter. De tre sista uppgifterna kan ev. användas nästa övning.

  1. Skriv en funktion som tar in två listor och returnerar true om ett element finns i båda listorna. Lösning: krock.py

     

  2. Skriv en funktion som tar en lista med tal som parameter och returnerar True om alla tal i listan är positva. False annars. Lösning: allapos.py.

     

  3. Skriv en funktion som konstruerar en slumpmässig blandning av en lista genom att slumpa fram ett element i taget, plocka ut det ur första listan och sätta in det i en annan lista som blir funktionens resultat. Lösning: blanda.py. I den här lösningen förstörs parameterlistan eftersom listelementen successivt plockas ut ur listan.

    Jämför med biblioteksfunktionen random.shuffle(alist). Vilken är skillnaden mellan hur resultatet (den slumpmässiga blandningen) ges?

  4. Beskriv algoritmen som används för att hitta det största värdet i en lista.
  5. Överkurs: Skriv en funktion som gör en nxn-enhetsmatris. Lösning: enhetsmatris.py.

    --------------------------- Uppgifterna nedan kan sparas till nästa övning ---------------------------

     

  6. Skriv en funktion som tar en strängparameter som kan vara en lång text som består av många ord. Låt funktionen beräkna och returnera längden av det längsta ordet. Ett ord är en följd av bokstäver. Alla tecken som inte är bokstäver betraktas som avskiljare mellan orden. Använd funktionen s.isalpha() som kan anropas på textsträngar och ger True om strängen s bara innehåller bokstäver. s.isalpha() ger True även för svenska bokstäver å,ä,ö.
    Lösning: lengthOfLongestWord.py

     

  7. Modifiera funktionen i förra uppgiften (eller skriv en helt ny) som istället returnerar textens längsta ord. Tre alternativa lösningsförslag: longestword1.py, longestword2.py,longestword3.py

     

  8. Visa hur man kan anropa funktionerna från 6 och 7 på en text som läses från en textfil. Filen dearestCreature innehåller en text att testa med.

Vissa av exemplen finns lösta i detta githubrepo.