Register

Definitioner av centrala begrepp som används i kursen. Varje begrepp listar de delar där det förekommer och förklaras.

A

Ackumulering Mönstret att samla ihop ett värde varv för varv. Variabeln som ackumulerar sätts alltid utanför loopen och uppdateras inuti. Listan & loopen

Algoritm En steg för steg-instruktion för att lösa ett problem eller utföra en uppgift. Verkstaden byggs ,Kartan ritas

Anroparen Den kod som anropar en funktion. Anroparen är den som tar emot returvärdet, det är till anroparen som return skickar tillbaka svaret. Funktionen svarar

Anropsstacken En datastruktur i RAM som håller reda på alla aktiva funktionsanrop och deras returadresser. Växer när en funktion anropas (ny ram läggs till), krymper när den returnerar (ramen tas bort). Det är mekanismen som gör det möjligt att anropa en funktion och återvända till exakt rätt rad efteråt. Anropsstacken

any() En inbyggd funktion som returnerar True om minst ett element i en itererbar uppfyller ett villkor. Kortsluter, slutar testa när en träff hittas. Etik & Brute Force

API-nyckel Ett hemligt lösenord som ger ett program tillgång till en tjänst, till exempel en molntjänst eller ett API. Hör aldrig hemma i ett publikt repo, en läckt nyckel kan missbrukas av vem som helst. Personuppgifter & integritet

AttributeError Uppstår när du försöker anropa en metod eller komma åt en egenskap som inte finns på ett objekt. 'NoneType' object has no attribute 'append' innebär att variabeln är None, inte en lista. Inventoryt som glömmer

Autentisering Att kontrollera att någon är den de utger sig för att vara, till exempel med ett lösenord. Skiljer sig från kryptering: autentisering bevisar identitet, kryptering döljer innehåll. Lösenordslås

B

break Ett nyckelord som omedelbart avslutar den innersta loop det befinner sig i. Exekveringen hoppar till första raden efter loopkroppen. Den eviga loopen

Brute force En angreppsstrategi som systematiskt testar varje möjlig nyckel tills rätt hittas. Kräver ingen intelligens eller förkunskap om nyckeln, enbart beräkningskraft och tid. Effektivt när nyckelrummet är litet. Etik & Brute Force

Brytpunkt (breakpoint) En markering på en specifik rad som talar om för debuggern att pausa körningen innan den raden utförs. Sätts ut i VS Code genom att klicka i fältet till vänster om radnumren. Debuggern

C

Caesar-chiffer En substitutionsalgoritm där varje bokstav i klartexten ersätts av bokstaven ett fast antal positioner längre fram i alfabetet. Uppkallat efter Julius Caesar och ett av historiens äldsta dokumenterade kryptosystem. Milstolpe: Caesar-chiffret

Commit En sparad checkpoint i Git-historiken. Innehåller exakt vilka rader som förändrats, en tidsstämpel och ett meddelande. Molnet & portföljen

CPU-belastning Andelen av processorns kapacitet som används av ett program. En oändlig loop utan arbete driver en kärna till 100% belastning och genererar värme som en direkt konsekvens av elektrisk ström genom transistorer. Den eviga loopen

D

Datatyp Talar om för Python hur ett värde ska tolkas. De fyra grundläggande: str (text), int (heltal), float (decimaltal), bool (sant/falskt). Lådor i RAM & datatyper

Debugger Ett verktyg som låter dig köra ett program i kontrollerad takt, pausa det, stega igenom det rad för rad och inspektera alla variablers värden i realtid. Debuggern

Död kod Kod som aldrig körs: funktioner som aldrig anropas, grenar som aldrig kan nås, utkommenterade block som lämnats kvar. Förvirrar läsaren och ska tas bort, Git-historiken finns om du ångrar dig. Slutprojekt: leverans

E

elif Förkortning av else if. Kedjekopplar ett nytt villkor till föregående if, kontrolleras bara om alla föregående villkor i kedjan var falska. Gör grenar exklusiva: bara ett block per kedja kan köras. Konsten att välja

Etisk hacking Auktoriserad säkerhetsgranskning av ett system i syfte att hitta och rapportera sårbarheter. Utförs av certifierade penetrationstestare med skriftligt tillstånd från systemets ägare. Etik & Brute Force

Exklusiva grenar Egenskapen hos en if/elif/else-kedja att bara ett block kan köras per körning. Skiljer sig från separata if-satser som alltid kontrolleras oberoende. Konsten att välja

F

f-sträng En sträng som börjar med f och bäddar in variabler direkt med {}. Hanterar typkonvertering automatiskt. Dialogen & Konvertering

Felsökning Processen att identifiera och rätta fel. Tre distinkta faser: reproducera felet, diagnosticera typen och lokalisera orsaken, i den ordningen. De tre felen

FileNotFoundError Uppstår när du öppnar en fil med 'r' och filen inte finns. Hanteras med try/except FileNotFoundError. Filen som minns

Filläge Det andra argumentet i open(). 'r' läsning, 'w' skrivning, 'a' tillägg. Filen som minns

Flödesschema Ett diagram som visualiserar ett programs logiska flöde med standardiserade former: ovaler för start och slut, rektanglar för processer och romber för beslutspunkter. Används för att planera och kommunicera logik innan koden skrivs. Kartan ritas

Funktion Ett namngivet kodblock som kan anropas från andra ställen i programmet. Definieras med def, anropas med namn(). Gör det möjligt att packa ett specifikt ansvar i ett återanvändbart block med ett tydligt gränssnitt. Din första funktion

G

GDPR EU:s dataskyddsförordning. Ger personer rätt att se, rätta och radera sina personuppgifter, och ålägger den som samlar in dem ett ansvar. Personuppgifter & integritet

global En deklaration inuti en funktion som talar om för Python att en variabel syftar på det globala scopet. Krävs när funktionen ska ändra en yttre variabel. Inte krävs för att bara läsa den. Knappar & räknaren

H

Hash Ett oåterkalleligt avtryck av en text. Samma text ger alltid samma avtryck, men avtrycket går inte att räkna tillbaka till texten. Det är därför riktiga system lagrar avtrycket i stället för lösenordet. Låsskärmen

Händelseloop Den slinga som håller ett grafiskt program vid liv: den väntar, tar emot händelser som klick och tangenttryck, och kör den funktion som är kopplad till händelsen. I tkinter startas den med mainloop(), som därför alltid är sista raden. Fönsterhanteraren

Händelsestyrd programmering Ett program som väntar på att användaren ska göra något i stället för att köras uppifrån och ned en gång. Ett klick eller en tangenttryckning är en händelse som utlöser en funktion. Grunden för grafiska gränssnitt. Fönsterhanteraren

I

if/else Låter programmet välja mellan två kodblock beroende på om ett villkor är sant eller falskt. Vägskälet

IndentationError Ett syntaxfel som uppstår när ett kodblock har fel antal inledande mellanslag, eller när tabbar och mellanslag blandas i samma block. Konsten att välja

Index En heltalsposition som identifierar ett element i en lista. Indexering börjar alltid på noll. Negativa index räknar bakifrån: -1 är sista elementet. Position och modulus

IndexError Uppstår när du försöker komma åt ett index som inte finns i listan. Position och modulus

Indrag Fyra mellanslag i början av en rad som talar om för Python att raden tillhör ett kodblock. Obligatoriskt, fel indrag ger IndentationError. Vägskälet ,Konsten att välja

Iteration Ett varv i en loop. En loop som kör fem varv gör fem iterationer, och loopkroppen körs en gång per iteration. När loopen går igenom en samling besöker den ett element per iteration. Den eviga loopen ,Listan & loopen

J

Jämförelseoperator Jämför två värden och svarar True eller False. Det finns sex: == (lika med), != (inte lika med), > (större än), < (mindre än), >= (större än eller lika med), <= (mindre än eller lika med). Hela tabellen finns i delen Vägskälet. Vägskälet

K

KeyboardInterrupt Ett undantag som Python kastar när användaren trycker Ctrl+C i terminalen. Stoppar programmet omedelbart om det inte fångas av ett try/except-block. Den eviga loopen

Kompilator Ett program som översätter hela källkoden till maskinkod på en gång, innan programmet körs. Grace Hopper skapade den första kompilatorn 1952. Verkstaden byggs ,Noll eller ett

Konkatenering Att sätta ihop två strängar till en enda med +. Samma tecken som addition, men på strängar slår det ihop text i stället för att räkna: "18" + "5" blir "185". Dialogen & konvertering

Konstant En variabel vars värde inte ska ändras under programkörning. I Python namnges konstanter med versaler och understreck: MAX_FÖRSÖK = 3. Python hindrar dig inte från att ändra dem, konventionen är ett löfte till läsaren. Slutprojekt: leverans

Konvention En överenskommelse som ingen tvingar dig till men som alla ändå följer. Python stoppar dig inte om du bryter mot en konvention, men den som läser din kod förväntar sig att du håller dig till den. Lådor i RAM & datatyper

Körtidsfel Ett fel som uppstår under körning när ett undantag kastas. Koden var syntaktiskt korrekt men stötte på ett ogiltigt tillstånd. Hanteras med try/except eller rättas i källkoden. De tre felen

L

Lista En ordnad, föränderlig samling av värden lagrade under ett enda variabelnamn. Skapas med hakparenteser och kommaseparerade värden. Hyllorna

Logikfel Koden kör utan krasch men ger fel resultat. "18" + "5" ger "185", ingen krasch, men fel svar. Dialogen & Konvertering ,Kartan ritas ,De tre felen

Loop-räknare En variabel som spårar vilket varv i en loop som körs just nu. Med for + range() hanteras räknaren automatiskt av Python, till skillnad från while-loopar där du uppdaterar räknaren manuellt. Den kända loopen

Loopkropp Alla rader som är indenterade under for-satsen. Körs en gång per element, i ordning. Den eviga loopen ,Listan & loopen

Loopvariabel Den variabel som deklareras i for-satsen och automatiskt tilldelas värdet av nästa element inför varje varv. Lever kvar efter loopen och innehåller då det sista elementets värde. Listan & loopen

M

Modul En fil med färdig Python-kod, funktioner och värden som någon annan skrivit och samlat ihop. Importeras med import. Slump & Moduler

Modulus (%) En aritmetisk operator som returnerar resten efter heltalsdivision. 7 % 2 blir 1, och 17 % 5 blir 2 för att 17 = 3×5 + 2. Används dels för att avgöra om ett tal är jämnt delbart, dels för att hålla tal inom ett bestämt intervall, som klockor, alfabetpositioner och cykliska system. Villkoret växer ,Position och modulus

Målgruppsanalys En konkret beskrivning av vem ett program är designat för, inte en bred kategori utan en specifik fiktiv person med namn, egenskaper, mål och begränsningar. Används som referenspunkt för varje designbeslut. Slutprojekt: design

N

NameError Uppstår när du försöker använda ett variabelnamn Python inte känner igen. Vanligaste orsak: stavfel eller skillnad i versaler och gemener. Spåraren

None Ett speciellt värde av typen NoneType som representerar frånvaron av ett värde. Alla funktioner som saknar ett return-uttryck returnerar None implicit. Att försöka utföra matematik eller strängoperationer på None ger TypeError. Funktionen svarar

Nyckelrum (key space) Mängden möjliga nycklar i ett kryptosystem. Caesar har 26. AES-256 har 2^256, ett tal med 77 siffror. Nyckelrummets storlek är det primära måttet på ett kryptosystems motståndskraft mot brute force. Etik & Brute Force

Nästlad loop En loop inuti en annan loop. För varje varv i den yttre loopen körs hela den inre från början till slut. Används när något ska göras för varje kombination av två saker, till exempel varje ruta i varje rad. Loopen i loopen

P

Parameter och argument En parameter är variabelnamnet i def-raden, funktionens deklarerade indata. Ett argument är det faktiska värdet som skickas in vid anropet. def hälsa(namn): namn är parametern. hälsa("Kalle"): "Kalle" är argumentet. Din första funktion

Penetrationstestning Att på uppdrag försöka ta sig in i ett system för att hitta svagheterna innan en riktig angripare gör det. Samma tekniker som ett angrepp, men med tillstånd och med syftet att felen ska lagas. Etik & brute force

PEP 8 Pythons officiella stilguide. Beskriver konventioner för namngivning, indrag och mellanrum, så att Python-kod ser likadan ut oavsett vem som skrivit den. Slutprojekt: leverans

Persistent lagring Lagring som överlever att programmet avslutas och strömmen bryts. Filer på hårddisk och SSD är persistenta, till skillnad från RAM som är flyktigt. Filen som minns

Personuppgift Varje uppgift som direkt eller indirekt kan kopplas till en identifierbar levande person: namn, e-postadress, IP-adress, användarnamn med mera. Personuppgifter & integritet

Prototyp / Skiss En tidig, icke-funktionell representation av ett gränssnitt. Pappersskisser är den snabbaste och billigaste formen. Syftet är att testa och validera idéer innan tid läggs på implementation. Slutprojekt: design

Pseudokod En informell beskrivning av ett programs logik skriven i naturligt språk med programmeringsstruktur. Kan inte köras av en dator, finns för att göra planering snabbare och tydligare. Kartan ritas

Pseudoslump Slump som är uträknad i stället för påhittad. Datorn utgår från ett startvärde, ofta klockan, och räknar fram tal som beter sig slumpmässigt. Tillräckligt bra för spel, aldrig för lösenord eller kryptering. Slump & Moduler

Push Att skicka lokala commits till GitHub. Commits du gjort lokalt syns inte online förrän du pushar. Molnet & portföljen

R

RAM (Random Access Memory) Datorns arbetsminne, ett minneskrets där alla aktiva variabler och program lagras under körning. Flyktigt: innehållet försvinner när strömmen bryts. Lådor i RAM & datatyper

Refaktorering Processen att strukturera om befintlig kod utan att förändra dess yttre beteende. Förbättrar läsbarhet, underhållbarhet och struktur. En välrefaktorerad funktion gör samma sak som den gjorde tidigare, men på ett sätt som är lättare att förstå och ändra. Slutprojekt: leverans

Repository (repo) En mapp vars innehåll och förändringshistorik spåras av Git. Kan vara lokalt på din dator, på GitHub, eller båda. Molnet & portföljen

return Ett nyckelord som avslutar en funktion och skickar ett värde tillbaka till anroparen. Värdet till höger om return är det som placeras i variabeln på anropssidan. All kod efter return i samma exekveringsväg körs aldrig. Funktionen svarar

Returvärde Det värde en funktion skickar tillbaka till sin anropare via return. Kan vara vilket Python-värde som helst. Måste lagras i en variabel för att vara användbart, annars kastas det bort utan varning. Funktionen svarar

S

Scope (räckvidd) Den del av koden där en variabel är synlig och tillgänglig. Lokala variabler existerar bara i den stackram de skapades i. Globala variabler existerar i huvudprogrammets ram. Scope är en direkt konsekvens av hur stackramar fungerar, inte en godtycklig begränsning. Anropsstacken

snake_case Pythons namnkonvention för variabler: gemener med understreck. Definierad i PEP 8. Lådor i RAM & datatyper

Spagettikod Kod utan tydlig struktur, där lager av tillfälliga lösningar staplats på varandra tills allt hänger ihop med allt. Drar du i en ände rör sig hela röran, och en liten ändring på ett ställe går sönder på ett annat. Kartan ritas

Stackram Det block i RAM som skapas för varje funktionsanrop. Innehåller funktionens parametrar, lokala variabler och returadress. Förstörs när funktionen returnerar. Anropsstacken

Staged Changes Filer du markerat som redo att ingå i nästa commit. Staging låter dig välja exakt vad varje commit ska innehålla. Molnet & portföljen

Standardbibliotek Samlingen av moduler som levereras med Python, till exempel random, math och time. Inga extra installationer krävs. Slump & Moduler

Steg (step) Det tredje argumentet i range(), hur mycket räknaren förändras mellan varje varv. Standard är 1. Negativt steg räknar bakåt. Den kända loopen

Step Over (F10) Kör en enda rad och stannar igen. Hoppar över eventuella funktioners inre detaljer och behandlar dem som ett enda steg. Debuggern

SyntaxError Ett fel i kodens struktur som Python hittar innan programmet körs. Ofta en saknad parentes, kolon eller citationstecken. Spåraren

Syntaxfel Ett fel i kodens struktur som Python hittar innan programmet startar. Koden kan inte tolkas. Inget körs förrän felet är rättat. De tre felen

Syntaxmarkering VS Codes färgkodning av kod baserat på struktur. Nyckelord, strängar och kommentarer får olika färger, vilket avslöjar enkla fel direkt. Noll eller ett

T

Teknisk skuld En medveten genväg i koden som fungerar nu men gör framtida arbete dyrare. Precis som ett lån är den ibland värd att ta, den låter dig komma vidare i dag mot att någon får betala i morgon. Det farliga är inte att ta lånet, utan att glömma bort att man gjort det. Låsskärmen ,Slutprojekt: leverans

Terminal Textgränssnittet mot operativsystemet. Här anropar du Pythontolken och kör dina Python-filer. Noll eller ett

Tilldelning En rad med ett likhetstecken, som ger variabeln ett nytt värde. Körs raden om, till exempel inuti en loop, sätts värdet om varje gång. För en lista betyder det en helt ny lista, till skillnad från en metod som .append() som ändrar den lista variabeln redan har. Inventoryt som glömmer

Tillstånd (state) Data som beskriver programmets nuvarande läge. I tkinter lagras tillstånd i globala variabler som funktionerna läser och modifierar. Knappar & räknaren ,Slutprojekt: design

time-modulen En inbyggd Python-modul för tidsrelaterade operationer. time.time() returnerar aktuell tid som ett decimaltal (sekunder sedan 1 januari 1970). Differensen mellan två anrop ger exekveringstiden för ett kodblock. Etik & Brute Force

Tolk (interpreter) Ett program som läser källkod rad för rad och exekverar den direkt. python3 i terminalen anropar Pythontolken. Noll eller ett

Traceback Den fullständiga felrapporten Python skriver ut när något går snett. Innehåller filnamn, radnummer och feltyp. Läses nedifrån och upp. Spåraren

try/except En kontrollstruktur för felhantering. Koden i try-blocket körs normalt. Om ett undantag uppstår hoppar Python omedelbart till except-blocket i stället för att krascha. Kraschsäkring

TypeError Uppstår när en operation utförs på ett värde av fel typ, till exempel när du lägger ihop en str och ett int utan konvertering. Spåraren

Typkonvertering Att omvandla ett värde från en datatyp till en annan. Görs explicit med int(), float() eller str(), Python konverterar aldrig automatiskt. Dialogen & Konvertering

U

Undantag (exception) Ett objekt som Python skapar och kastar när ett fel uppstår under körning. Om undantaget inte fångas propagerar det uppåt i anropsstacken och kraschar programmet. Kraschsäkring

Utökad tilldelning +=, -=, *= med flera. Kortform för variabel = variabel + värde. poäng += 10 är identiskt med poäng = poäng + 10. Lådor i RAM & datatyper

UX (User Experience) Summan av en persons upplevelse när de använder ett program. Innefattar hur lätt det är att förstå, hur effektivt det är att använda och hur det känns att interagera med det. UX-design försöker optimera upplevelsen för den specifika målgruppen. Slutprojekt: design

V

Valideraren Mönstret while True: + try/except + return som upprepar en inläsning tills den lyckas. Garanterar att variabeln alltid innehåller ett giltigt värde, aldrig None, aldrig odefinierad. Kraschsäkring

ValueError Uppstår när ett värde har rätt typ men felaktigt innehåll, till exempel när int() tar emot en sträng som inte kan tolkas som ett heltal. Kraschsäkring

Variabel Ett namn kopplat till en adress i RAM. Python sköter adresserna, du väljer namnet. Lådor i RAM & datatyper

Variables-panelen En vy i VS Codes debugger-läge som visar alla variabler som för tillfället finns i minnet, med deras namn, värden och typer. Uppdateras efter varje steg. Debuggern

Versionshantering Ett system som spårar förändringar i filer över tid och låter dig återgå till tidigare versioner. Git är det vanligaste verktyget inom mjukvaruutveckling. Molnet & portföljen

Villkor Ett uttryck som Python utvärderar som True eller False. Styr vilket kodblock som körs i en if-sats. Vägskälet

W

while-loop En loop som kör sitt kodblock upprepade gånger så länge ett villkor är sant. Till skillnad från en for-loop har den inget förutbestämt antal varv. Den eviga loopen

Widget Ett synligt element i ett GUI: en etikett, en knapp, ett textfält. Allt du ser i ett tkinter-fönster är en widget. Fönsterhanteraren

with open() Öppnar en fil och stänger den automatiskt när blocket tar slut, även om koden inuti kraschar. Använd den alltid, då kan du aldrig glömma att stänga. Filen som minns