{{ toc.name }}
{{ toc.signature }}
{{ toc.name }} {{ 'ml-btn-view-details' | message }}
{{ stepNode.name }}
{{ 'ml-toc-proceed' | message }}
Lektion
Övningar
Rekommenderade
Tester
Ett fel uppstod, försök igen senare!
Kapitel {{ article.chapter.number }}
{{ article.number }}. 

{{ article.displayTitle }}

{{ article.intro.summary }}
{{ 'ml-btn-show-less' | message }} {{ 'ml-btn-show-more' | message }} expand_more
{{ 'ml-heading-abilities-covered' | message }}
{{ ability.description }} {{ ability.displayTitle }}

{{ 'ml-heading-lesson-settings' | message }}

{{ 'ml-lesson-show-solutions' | message }}
{{ 'ml-lesson-show-hints' | message }}
{{ 'ml-lesson-number-slides' | message : article.intro.bblockCount}}
{{ 'ml-lesson-number-exercises' | message : article.intro.exerciseCount}}
{{ 'ml-lesson-time-estimation' | message }}

Teori

Programmeringsfel

Mycket kan gå fel när man programmerar och Python försöker identifiera dessa fel när programmet körs. Då får man ett felmeddelande som anger på vilken rad, och ibland även var på raden, felet uppstod. Programmeringsfel delas upp i tre huvudkategorier.
  • Syntaxfel: Koden kan inte läsas (Syntax error). Det innebär att man någonstans brutit mot syntaxen, dvs. språkreglerna, för det programmeringsspråk man använder.
print('Ena parentesen saknas!'
  • Visa resultat
>
File "__main__", line 1 print('Ena parentesen saknas!' ^
SyntaxError: Unbalanced bracket (
  • Undantag: Koden kan läsas men inte köras (Exception). Den här kategorin innehåller väldigt många olika typer av fel. Exemplet nedan är ett Name error där variabelnamnet x används utan att det getts en betydelse någonstans, så Python vet inte hur det ska användas.
print(x)
  • Visa resultat
>
Traceback (most recent call last): File "python", line 1, in <module>
NameError: name 'x' is not defined
  • Logiska fel: Koden kan läsas och köras men gör inte det man vill. Logiska fel är den svåraste feltypen att upptäcka, eftersom koden ändå fungerar och inte ger något felmeddelande. Andra fel kan vara svåra att lösa, men de kommer åtminstone uppmärksammas automatiskt.
print(10^2)
  • Visa resultat
>
8

Här har man kanske försökt beräkna , men råkat använda fel operator. Det görs ändå en beräkning, men den är fel eftersom potenser skrivs med operatorn **. Rätt sätt att skriva det är 10**2.