1 Introduktion                                          13
  1.1 Exempel och stilar i boken                        16
  1.2 Andra utgåvan                                     17

2 Vad är programmering?                                 19
  2.1 Är programmering svårt och måste jag kunna matte? 19
  2.2 Att lösa problem                                  22
  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                             27
  3.3 Övningsuppgifter                                  37

4 En kort introduktion till datorn                      39
  4.1 Binärdata och ASCII-data                          41
    4.1.1 ASCII                                         42
  4.2 Bitar och bytes                                   43
  4.3 Övningsuppgifter                                  44

5 Dags för Python!                                      47
  5.1 Installera Python i Windows                       48
  5.2 Installera Python i Linux                         49
    5.2.1 Debian och Ubuntu                             50
    5.2.2 Red Hat, CentOS och Fedora                    51
  5.3 Installera Python i macOS                         51
  5.4 IDLE                                              53
  5.5 Två sätt att använda Python                       54
  5.6 Hitta hjälp och dokumentation                     56
  5.7 Övningsuppgifter                                  57

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.4 Strängar                                          66
    6.4.1 Inbyggda metoder för strängar                 69
      6.4.1.1 Hitta fler metoder                        71
    6.4.2 Funktioner och operatorer för strängar        73
  6.5 Listor                                            75
  6.6 Tupletter                                         80
  6.7 Ordlistor, strängindexerade listor                81
  6.8 Övningsuppgifter                                  85
    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                                       93
  7.2 Jämförelseoperatorer                              94
  7.3 Villkorssatser                                    94
    7.3.1 Inte sant                                     101
    7.3.2 AND och OR                                    102
  7.4 In- och utdata                                    104
  7.5 Övningar med villkor & jämförelser                108
  7.6 Loopar                                            110
    7.6.1 for-loopen                                    110
      7.6.1.1 Loopa igenom ordlistor                    116
    7.6.2 while-loopen                                  118
    7.6.3 break & continue                              122
  7.7 Övningar med loopar                               125

8 Filhantering och felhantering                         129
  8.1 Filhantering                                      130
    8.1.1 Läsa och skriva text till filer               130
      8.1.1.1 Ett första exempel                        131
    8.1.2 Alice i Underlandet                           133
    8.1.3 read och readline                             142
    8.1.4 Lägga till text                               143
    8.1.5 Spara dina variabler                          145
  8.2 Felhantering                                      148
    8.2.1 Traceback                                     148
    8.2.2 Fånga upp fel med try / except                149
  8.3 Övningsuppgifter                                  155

9 Funktioner                                            157
  9.1 Exempel på funktioner                             158
  9.2 Nyckelord till funktioner                         162
  9.3 Scope                                             164
    9.3.1 Modifiera globala variabler                   168
  9.4 Standardvärden                                    169
  9.5 Lambda                                            170
  9.6 Dokumentera funktioner                            173
  9.7 Moduler                                           176
  9.8 Övningsuppgifter                                  178

10 Standardbiblioteket                                  181
  10.1 Datum och klockslag                              182
  10.2 Matematik                                        184
    10.2.1 Största gemensamma delaren                   184
    10.2.2 Är talen nära varandra?                      186
    10.2.3 Avrunda uppåt och nedåt                      186
    10.2.4 Absoluta värden                              187
    10.2.5 Roten ur och logaritmer                      187
  10.3 Arbeta med ZIP-filer                             188
  10.4 Operativsystemet                                 189
    10.4.1 os                                           190
    10.4.2 UNIX- och Windows-specifika moduler          191
      10.4.2.1 syslog                                   191
      10.4.2.2 winreg                                   192
  10.5 Läsa in data från internet                       192

11 Objektorienterad programmering                       195
  11.1 Husdjur som exempel                              197
  11.2 Kort om arv                                      201

12 Knyta samman säcken, ett sista projekt               205
  12.1 Bygga ut koden                                   212

13 Fortsatta äventyr                                    217