Felsökning#

Under det här avsnittet kommer övningar där ni får en kod presenterad och ska försöka förbättra koden eller förklara vad som är fel med koden.

Uppgiftstyper#

Avsnittet erbjuder två olika sorters frågor, som vi kallarresonemangsuppgifter och felsökningsuppgifter.

Resonemangsuppgifter#

Börja med att endast titta på koden och försök hitta vad problemet är, att kunna se felen utan att behöva skriva någon kod är bra träning. Börja med att titta på tipset innnan du tittar på lösningen.

Felsökningsuppgifter#

Kopiera koden till Visual Studio Code och ändra koden så programmet stämmer. Börja med att titta på tipset innnan du tittar på lösningen.

Uppgifter#

Kontrollera om ett tal är jämnt (Resonera)#

Denna funktion ska kontrollera om ett tal är jämnt, men den ger inte rätt resultat. Vad är felet?

def is_even(number):
    if number % 2 = 0:
        return True
    else:
        return False

Summera alla tal i en lista (Resonera) (1)#

Koden nedan är tänkt att summera alla tal i en lista, men den fungerar inte som förväntat. Vad är problemet?

def sum_numbers(numbers):
    total = 0
    for i in range(len(numbers)):
        total = total + i
    return total

Summera alla talen i en lista (Resonera) (2)#

Den här funktionen ska summera alla tal i en lista, men den fungerar inte som förväntat. Vad är problemet?

def sum_list(numbers):
    total = 0
    for number in numbers:
        total = number
    return total

Skriv ut alla element i en lista (Felsök)#

Koden nedan ska skriva ut varje element i en lista, men den fungerar inte som den ska. Felsök och rätta koden.

def print_list_elements(my_list):
    for i in range(len(my_list)):
        print(my_list[i+1])

print_list_elements([1, 2, 3, 4])

Returnera det första elementet i en lista (Felsök)#

Funktionen nedan ska returnera det första elementet i en lista, men den returnerar inget alls. Vad är felet?

def first_element(my_list):
    my_list[0]

Summera alla element i en lista (Felsök)#

Denna kod ska summera alla element i en lista, men den ger alltid fel svar. Rätta koden så att den fungerar korrekt.

def sum_list(my_list):
    total = 0
    for i in range(1, len(my_list)):
        total += my_list[i]
    return total

print(sum_list([1, 2, 3, 4]))  # Förväntat resultat: 10

Kontrollera om ett tal är större än 10 (Felsök)#

Koden ska kontrollera om ett tal är större än 10, men den returnerar alltid fel resultat. Felsök och förbättra koden.

def is_greater_than_ten(number):
    if number > 10:
        return False
    else:
        return True