Pythonuppgifter 2 - Sekvenser
Skriv lösningarna till uppgifterna i en och samma fil och testa koden själv innan du använder rättningsskriptet. Att kunna testa sin kod är en viktig del av att programmera!
Att lära dig från uppgifterna
- Förstå vad en sekvens är med särskilt fokus på listor, tupler och strängar.
- Förstå access av element i sekvenser med indexering.
- Förstå hur utsnitt fungerar.
Man kan få max 95 poäng och för att få godkänt krävs 65 poäng (85 för väl godkänt). Försök dock att lösa alla uppgifter då inte alla fel upptäcks av rättningsskriptet. Om ni har lite marginal kan ni kanske bli godkända även om assistenten som rättar hittar något sådant fel.
Uppgift 2.1
2.1.1 (5p)
Skriv en funktion second_element(seq)
som tar in en sekvens som argument och returnerar det andra elementet i sekvensen.
2.1.2 (5p)
Skriv en funktion last_element(seq)
som tar in en sekvens som argument och returnerar det sista elementet i sekvensen.
2.1.3 (5p)
Skriv en funktion second_last_element(seq)
som tar in en sekvens som argument och returnerar det näst sista elementet i sekvensen.
2.1.4 (5p)
Skriv en funktion nth_element(seq, n)
som tar in en sekvens och ett heltal som argument och returnerar elementet på index n
i sekvensen
Uppgift 2.2
2.2.1 (5p)
Skriv en funktion three_first_in_sequence(seq)
som tar in en sekvens som argument och returnerar delsekvensen med de tre första elementen i sekvensen.
2.2.2 (5p)
Skriv en funktion three_last_in_sequence(seq)
som tar in en sekvens som argument och returnerar de tre sista elementeten i sekvensen.
2.2.3 (5p)
Skriv en funktion but_five_last_in_sequence(seq)
som tar in en sekvens som argument och returnerar allting förutom de 5 sista elementen i sekvensen.
2.2.4 (5p)
Skriv en funktion every_other_in_sequence(seq)
som tar in en sekvens som argument och returnerar vartannat element i sekvensen (det vill säga elementen på index 0, 2, 4, 6, …).
Tips: Du kommer behöva ett utsnitt med två kolon.
2.2.5 (5p)
Skriv en funktion five_around_n_in_sequence(seq, n)
som tar in en sekvens och ett heltal som argument och returnerar den delsekvens som innehåller de två elementen före index n
, följt av elementet på index n
och sist de två elementen efter index n
. Anropet five_around_n_in_sequence("abcdefg", 3)
ska alltså returnera "bcdef"
.
2.2.6 (5p)
Skriv en funktion reverse_sequence(seq)
som tar in en sekvens som argument och returnerar sekvensen i omvänd ordning. Använd utsnittsnotation.
Uppgift 2.3 (10p)
Skriv en funktion get_n_from_pos(seq, start, n)
som tar en sekvens (seq
) och två heltal (start
och n
) som argument. Funktionen ska returnera en sekvens som innehåller n
element från och med index pos
ur sekvensen.
Exempel:
|
|
Uppgift 2.4 (5p)
Skriv en funktion concatenate_sequences(seq1, seq2)
som tar två sekvenser som argument och returnerar en ny sekvens som är en samanslagning av seq1
och seq2
. Det vill säga först alla element i sekvens 1 följt av alla element i sekvens 2. Att sammanfga sekvenser på detta sätt kallas för att konkatenera (eng. concatenate).
Exempel:
I exemplet använder vi tupler men prova med strängar och listor också. Vad händer om man försöker konkatenera två sekvenser av olika datatyp, t.ex. en lista och en sträng?
|
|
Uppgift 2.5 (10p)
Skriv en funktion list_append(seq, val)
som tar in en lista och ett värde och returnerar en ny lista som innehåller samma element som seq
men där val
lagts till i slutet.
Den ursprunliga listan får inte modifieras.
Exempel
|
|
Tips: Använd operatorn +
.
Vad händer om seq
är en sträng? Även om sekvenser har mycket gemensamt, så finns det situationer där olika sekvenstyper inte kan hanteras på exakt samma sätt.
Uppgift 2.6 (10p)
Python har en modul som innehåller färdiga funktioner som man kan använda när man vill ha med slumpen på något sätt i sin kod.
Importera modulen random
. Skriv funktionen select_random(values)
som väljer ut ett slumpmässigt värde bland de som finns i sekvensen values
och returnera det. Använd funktionen random.choice()
.
Testa med alla tre sekvenstyper som vi introducerat.
Uppgift 2.7 (10p)
I denna uppgift ska du skriva en funktion som returnerar slumpmässigt valda pokemon-namn. Vi ska skicka in två tupler till den
- en tupel med förled som
"Bulba"
,"Pika"
och"Ivy"
, dvs strängar som börjar med en versal och slutar med en vokal. - en tupel med efterled som
"mon"
,"chu"
, och"saur"
, dvs strängar som börjar med en gemen konsonant.
Skriv funktionen generate_pokemon_name(prefixes, suffixes)
som tar in dessa två sekvenser som argument. Slumpa fram ett värde från vardera tupel. Konkatenera sedan dessa två värden och returnera resultatet.
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2025-08-05