1 Introduktion 13
1.1 Exempel och stilar i boken 16
1.2 Ladda ner kodexemplen från boken 17
1.3 Andra utgåvan 18
1.4 Tredje utgåvan 18
2 Vad är programmering? 19
2.1 Är programmering svårt och måste jag kunna matte? 20
2.2 Att lösa problem 23
2.3 Hur lär jag mig bäst? 23
3 Scratch 25
3.1 Kom igång med Scratch 26
3.2 Grundläggande koncept 28
3.3 Övningsuppgifter 38
4 En kort introduktion till datorn 41
4.1 Binärdata och ASCII-data 43
4.1.1 ASCII 44
4.2 Bitar och bytes 45
4.3 Övningsuppgifter 46
5 Dags för Python! 49
5.1 Installera Python i Windows 49
5.2 Installera Python i Linux 50
5.2.1 Debian och Ubuntu 51
5.2.2 Red Hat, CentOS och Fedora 51
5.3 Installera Python i macOS 52
5.4 IDLE 52
5.5 Två sätt att använda Python 54
5.6 Hitta hjälp och dokumentation 56
5.7 Övningsuppgifter 56
6 Datatyper och variabler 59
6.1 Tilldelning av variabler 61
6.2 Variabelnamn 62
6.3 Heltal och flyttal 63
6.3.1 Aritmetik 63
6.3.2 Omvandling mellan flyttal och helta 66
6.4 Strängar 67
6.4.1 Inbyggda metoder för strängar 70
6.4.1.1 Hitta fler metoder 72
6.4.2 Funktioner och operatorer för strängar 74
6.5 Listor 75
6.6 Tupletter 80
6.7 Ordlistor, strängindexerade listor 81
6.8 Övningsuppgifter 84
6.8.1 Aritmetik 85
6.8.2 Strängar 86
6.8.3 Listor 86
6.8.4 Ordlistor 87
7 Loopar & villkor 89
7.1 Spara kod i filer och köra programmen 90
7.1.1 shebang 92
7.2 Jämförelseoperatorer 94
7.3 Villkorssatser 95
7.3.1 If 95
7.3.1.1 Inte sant 102
7.3.1.2 AND och OR 103
7.3.2 Match 105
7.4 In- och utdata 107
7.5 Övningar med villkor & jämförelser 112
7.6 Loopar 113
7.6.1 for-loopen 114
7.6.1.1 Loopa igenom ordlistor 119
7.6.2 while-loopen 121
7.6.3 break & continue 125
7.7 Övningar med loopar 128
8 Filhantering och felhantering 131
8.1 Filhantering 132
8.1.1 Läsa och skriva text till filer 132
8.1.1.1 Ett första exempel 133
8.1.2 Alice i Underlandet 135
8.1.3 read och readline 143
8.1.4 Lägga till text 145
8.1.5 Spara dina variabler 146
8.2 Några ord om olika exit-funktioner 149
8.3 Felhantering 151
8.3.1 Traceback 152
8.3.2 Fånga upp fel med try / except 153
8.3.2.1 Finally 159
8.4 Övningsuppgifter 164
9 Funktioner 167
9.1 Exempel på funktioner 168
9.2 Nyckelord till funktioner 171
9.3 Omfång 174
9.3.1 Modifiera globala variabler 178
9.4 Standardvärden 179
9.5 Lambda 180
9.6 Dokumentera funktioner 183
9.7 Moduler 185
9.8 Övningsuppgifter 189
10 Standardbiblioteket 191
10.1 Datum och klockslag 192
10.2 Matematik 195
10.2.1 Största gemensamma delaren 195
10.2.2 Är talen nära varandra? 196
10.2.3 Avrunda uppåt och nedåt 197
10.2.4 Absoluta värden 198
10.2.5 Roten ur och logaritmer 198
10.3 Arbeta med ZIP-filer 199
10.4 Operativsystemet 200
10.4.1 os 201
10.4.2 Unix- och Windows-specifika moduler 202
10.4.2.1 syslog 202
10.4.2.2 winreg 203
10.5 Signalhantering 203
10.6 Läsa in data från internet 205
10.7 Övningsuppgifter 207
11 Objektorienterad programmering 209
11.1 Husdjur som exempel 211
11.2 Kort om arv 215
12 Knyta samman säcken, ett sista projekt 219
12.1 Bygga ut koden 226
13 Fortsatta äventyr 231
13.1 Några ord om AI-verktyg 233