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