cdj-logo CoderDojo Gent - Python-traject

Python is een leuke programmeertaal met vele mogelijkheden (zie Waarom Python?).

In Starten met Python maak je kennis met Python. Eens je de basis onder de knie hebt, ben je klaar om bv. spelletjes te maken met Python (zie Projecten).

Starten met Python

Waarom Python?

  • Elegante en compacte taal
  • Uitgebreide (standaard)bibliotheken (batteries included)
  • Interactief gebruik mogelijk (bv. rekenmachine, IPython)
  • Uitstekende documentatie
  • Open source
  • Schaalt goed: start small, grow big
  • Meest populaire taal volgens laatste IEEE en PYPL rangschikking, en op 4e plaats in TIOBE index
  • Gebruikt in vele verschillende toepassingsdomeinen: web, wetenschappelijke wereld, desktop, onderwijs, software ontwikkeling, …
  • Steeds vaker gebruikt als eerste taal voor beginners
  • Fun

Installatie

Windows

Installatie-instructies voor Python onder Windows.

Python

Download en gebruik de Windows x86-64 executable installer voor Python 3.7.2 64-bit (zie Python Releases for Windows).

In de installer, vink “Add Python 3.7 to PATH” aan.

Test

Open een Windows commando-venster met Win-R, cmd, en controlleer de Python-versie:

> python -V
Python 3.7.2

Test

Open IDLE vanuit het Start-menu: “IDLE (Python 3.7 64 bit)”. Dit toont de “Python 3.7.2 Shell”.

Meer uitleg is te vinden in Installatie-instructies [Installatie Python.docx].

pygame

Maak een virtuele omgeving aan:

> mkdir CoderDojo
CoderDojo> cd CoderDojo
CoderDojo> python -m venv venv37

Gebruik de aangemaakte virtuele omgeving:

CoderDojo> venv37\Scripts\activate
(venv37) CoderDojo>

Update pip:

(venv37) CoderDojo> python -m pip install --upgrade pip

Installeer pygame m.b.v. pip:

(venv37) CoderDojo> pip install -U pygame

Test

(venv37) CoderDojo> python -m pygame.examples.aliens

Meer uitleg is te vinden in Pygame Installation.

IPython

Installeer IPython (onderdeel van Jupyter) m.b.v. pip:

(venv37) CoderDojo> pip install jupyter

Test

(venv37) CoderDojo> ipython -V
7.3.0

(venv37) CoderDojo> ipython
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: print("Hi!")
Hi!

In [2]: 2 + 2
Out[2]: 4

In [3]:

Sluit IPython met Ctrl-D.

Kivy

Kivy heb je enkel nodig voor de Extra oefeningen.

Installeer Kivy m.b.v. pip:

(venv37) CoderDojo> python -m pip install --upgrade pip wheel setuptools
(venv37) CoderDojo> python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew
(venv37) CoderDojo> python -m pip install kivy.deps.gstreamer
(venv37) CoderDojo> python -m pip install kivy

Test

(venv37) CoderDojo> python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import kivy
[INFO   ] [Logger      ] Record log in C:\Users\P\.kivy\logs\kivy_19-03-18_1.txt
[INFO   ] [Kivy        ] v1.10.1
[INFO   ] [Python      ] v3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]

Meer uitleg is te vinden in Kivy Installation on Windows.

Mac OS X

Installatie-instructies voor Python onder Mac OS X.

Python

Download en gebruik de macOS 64-bit installer voor Python 3.7.2 64 bit (zie Python Releases for Mac OS X ).

Test

Open een terminal-venster met cmd + spatie, Terminal, en controlleer de Python-versie:

~ user$ python3 -V
Python 3.7.2
pygame

Maak een virtuele omgeving aan:

~ user$ mkdir CoderDojo
~ user$ cd CoderDojo
CoderDojo user$ python3 -m venv venv37

Gebruik de aangemaakte virtuele omgeving:

CoderDojo user$ source venv37/bin/activate
(venv37) CoderDojo user$

Update pip:

(venv37) CoderDojo user$ pip install --upgrade pip

Installeer pygame m.b.v. pip:

(venv37) CoderDojo user$ pip install -U pygame

Test

(venv37) CoderDojo user$ python -m pygame.examples.aliens

Meer uitleg is te vinden in Pygame Installation.

IPython

Installeer IPython (onderdeel van Jupyter) m.b.v. pip:

(venv37) CoderDojo user$ pip install jupyter

Test

(venv37) CoderDojo user$ ipython -V
7.3.0

(venv37) CoderDojo user$ ipython
Python 3.7.2 (...)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: print("Hi!")
Hi!

In [2]: 2 + 2
Out[2]: 4

In [3]:

Sluit IPython met Ctrl-D, y.

Kivy

Kivy heb je enkel nodig voor de Extra oefeningen.

Installeer Homebrew:

~ user$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Gebruik Homebrew voor de installatie van de bibliotheken die Kivy nodig heeft:

~ user$ brew install pkg-config sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer

In je virtuele omgeving, installeer Cython en Kivy m.b.v. pip:

~ user$ cd CoderDojo
CoderDojo user$ source venv37/bin/activate
(venv37) CoderDojo user$ pip install -U Cython
(venv37) CoderDojo user$ pip install kivy

Test

(venv37) CoderDojo user$ python
Python 3.7.2 (...)
[Clang ...] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import kivy
[INFO   ] [Logger      ] Record log in /Users/user/.kviy/logs/...txt
[INFO   ] [Kivy        ] v...
[INFO   ] [Python      ] v3.7.2 (...)
[Clang ...]

Sluit met Ctrl-D.

Meer uitleg is te vinden in Kivy Installation on OS X.

Kennismaking met Python

Niveau:level1
Bron:Aagje Reynders

Wat zal je leren?

  • print
  • Gebruik van variabelen
  • input om tekst in te lezen
  • if/elif/else
  • for
  • Gebruik van lijsten
  • def
  • random

Wat heb je nodig?

  • Een werkende Python-installatie (zie Installatie)
  • Interactieve Python-prompt, bij voorkeur IPython (zie Installatie)
  • Een Python-editor, bv. IDLE. IDLE kan je openen vanuit het Start-menu: “IDLE (Python 3.7 64 bit)”. Dit toont de “Python 3.7.0 Shell”. De editor open je door een nieuw bestand aan te maken via File ‣ New File.

Aan de slag

Kennismaking

Zie Kennismaking met Python [Kennismaking met Python.pdf] (Aagje Reynders).

Inhoudstafel:

  1. Toon tekst op het scherm m.b.v. print
  2. Toon je naam op het scherm waarbij je een variabel gebruikt
  3. Vraag leeftijd van gebruiker m.b.v. input
  4. Vergelijk twee getallen en toon welke het grootste is
  5. Tel van 1 t.e.m. 100
  6. Beheer lijst van deelnemers
  7. Teken ovalen op het scherm

Extra

  1. Gebruik willekeurige kleur voor ovalen
  2. Maak een gokspelletje waarbij je een willekeurig getal probeert te raden
  3. Maak een rekenmachientje voor twee getallen

Schildpad

Niveau:level1
Bronnen:Codingkids, Johan Vereecken

Doel

Maken van diverse figuren in Python door het bewegen van de Python schildpad (Turtle) over het scherm.

Parallellogrammen en ster

Wat heb je nodig?

  • Een werkende Python-installatie (zie Installatie)
  • Een Python-editor. In deze opdrachten gebruiken we IDLE. IDLE kan je openen vanuit het Start-menu: “IDLE (Python 3.7 64 bit)”. Dit toont de “Python 3.7.0 Shell”. De editor open je door een nieuw bestand aan te maken via File ‣ New File (zie verder).

Wat zal je leren?

  • Gebruik van de Python-omgeving IDLE
  • Gebruik van variabelen
  • for, while
  • Mogelijke opdrachten (commands) voor de schildpad
  • Verband tussen Scratch en Python

Is dit je eerste keer? Start dan hier. Installeer Python en leer Python stap voor stap.

Python

Installatie

Kennismaking

Kennismaking met Python level1

Schildpad

Schildpad level1

Boeken

Wil je meer Python leren door een goed boek te lezen? Zie dan bv. de volgende boeken:

Projecten

Snake

Niveau:level2
Bron:Aagje Reynders

Doel

Snake in Python.

Snake

Snake is een spelletje waar een slang moet proberen appels te eten. Deze appels komen willekeurig op het scherm. Met de pijltjestoetsen probeer je met de slang naar de appel te kruipen zonder tegen de randen of jezelf te botsen. Elke keer dat je een appel eet wordt je slang langer.

Wat zal je leren?

  • pygame concepten: events, werken met kleuren, tekenen op het scherm, …
  • spellogica

Wat heb je nodig?

Aan de slag

Games ontwikkelen

Volg de stappen zoals beschreven in Games ontwikkelen [pygame cursus.pdf] (Aagje Reynders).

Overzicht stappen:

  1. Werken met events
  2. Tekenen op het scherm: slang = rechthoek
  3. Bewegen van slang (rechthoek)
  4. Randen herkennen
  5. Plaats appel(s)
  6. Laat slang langer worden

Mogelijke oplossing

import pygame
import random

pygame.init()

gameDisplay = pygame.display.set_mode((800, 600))

FRAME_RATE = 15  # FPS

clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 25)
groen = (91, 239, 108)
rood = (174, 0, 0)
achtergrondkleur = (216, 233, 255)


def toon_bericht(bericht, kleur=(51, 40, 255)):
    tekst = font.render(bericht, True, kleur)
    tekst_rect = tekst.get_rect()
    tekst_rect.center = (400, 300)
    gameDisplay.blit(tekst, tekst_rect)
    pygame.display.update()


def teken_slang(slang_lichaam):
    for x, y in slang_lichaam:
        pygame.draw.rect(gameDisplay, groen, [x, y, 10, 10])


x = 400
y = 300
slang_lengte = 1
slang_lichaam = []
richting = 'RECHTS'
game_exit = False
game_over = False
game_pauzed = False

rand = 5
appel_x = random.randint(0 + rand, 79 - rand) * 10
appel_y = random.randint(0 + rand, 59 - rand) * 10

while not game_exit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT and richting != 'RECHTS':
                richting = 'LINKS'
            elif event.key == pygame.K_RIGHT and richting != 'LINKS':
                richting = 'RECHTS'
            elif event.key == pygame.K_UP and richting != 'ONDER':
                richting = 'BOVEN'
            elif event.key == pygame.K_DOWN and richting != 'BOVEN':
                richting = 'ONDER'
            elif event.key == pygame.K_q:
                game_exit = True
            elif event.key == pygame.K_SPACE:
                game_pauzed = not game_pauzed
                if game_pauzed:
                    toon_bericht("PAUZE")

    if game_pauzed:
        continue

    if richting == 'LINKS':
        x -= 10
    elif richting == 'RECHTS':
        x += 10
    elif richting == 'BOVEN':
        y -= 10
    elif richting == 'ONDER':
        y += 10

    slang_hoofd = (x, y)
    slang_lichaam.append(slang_hoofd)
    if len(slang_lichaam) > slang_lengte:
        del slang_lichaam[0]

    if (not 0 < x < 800) or (not 0 < y < 600):
        game_over = True

    if slang_hoofd in slang_lichaam[:-1]:
        game_over = True

    if x == appel_x and y == appel_y:
        appel_x = random.randint(0 + rand, 79 - rand) * 10
        appel_y = random.randint(0 + rand, 59 - rand) * 10
        slang_lengte += 1

    gameDisplay.fill(achtergrondkleur)
    pygame.draw.rect(gameDisplay, rood, [appel_x, appel_y, 10, 10])
    teken_slang(slang_lichaam)
    pygame.display.update()

    clock.tick(FRAME_RATE)

    if game_over:
        toon_bericht("GAME OVER! Druk 'r' op opnieuw te proberen, "
                     "'c' om verder te gaan, of 'q' om af te sluiten")
    while game_over:
        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_q:  # 'a' op AZERTY toetsenbord...
                    game_exit = True
                    game_over = False
                elif event.key == pygame.K_c:  # continue
                    game_over = False
                    x = 400
                    y = 300
                elif event.key == pygame.K_r:  # restart
                    game_over = False
                    x = 400
                    y = 300
                    slang_lengte = 1
                    slang_lichaam = []

pygame.quit()

Pong

Niveau:level2
Bron:Raf Schoenmaekers

Doel

Pong in Python.

Pong

Pong is …

Wat zal je leren?

Wat heb je nodig?

Aan de slag

Stappen: …

Mogelijke oplossing

import sys
import pygame

size = width, height = 1280, 720

black = (0, 0, 0)
white = (255, 255, 255)

ballSpeed = [2, 2]
ballRect = pygame.Rect(width / 2, height / 2, 10, 10)

racketOffset = 100
racketHeight = 100
racketWidth = 10

player1Rect = pygame.Rect(racketOffset - racketWidth,
                          (height - racketHeight) / 2,
                          racketWidth,
                          racketHeight)
player2Rect = pygame.Rect(width - racketOffset,
                          (height - racketHeight) / 2,
                          racketWidth,
                          racketHeight)

player1Speed = player2Speed = 0.0
playerAcceleration = 1.0
player1Score = player2Score = 0

# start game
pygame.init()
screen = pygame.display.set_mode(size)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

    # move ball
    ballRect = ballRect.move(*ballSpeed)

    if ballRect.left < 0 or ballRect.right > width:
        if ballRect.left < 0:
            player2Score += 1
        else:
            player1Score += 1
        print(f' SCORE {player1Score} - {player2Score}')
        # reset ball to center of screen
        ballRect.x = width / 2
        ballRect.y = height / 2

    if ballRect.top < 0 or ballRect.bottom > height:
        ballSpeed[1] = -ballSpeed[1]

    # move players
    player1Speed *= 0.9
    player2Speed *= 0.9

    key = pygame.key.get_pressed()

    if key[pygame.K_x]:
        player1Speed += playerAcceleration
    if key[pygame.K_s]:
        player1Speed -= playerAcceleration
    if key[pygame.K_UP]:
        player2Speed -= playerAcceleration
    if key[pygame.K_DOWN]:
        player2Speed += playerAcceleration

    player1Rect.y += player1Speed
    player2Rect.y += player2Speed

    if ballRect.colliderect(player1Rect):
        ballSpeed[0] = abs(ballSpeed[0])
    if ballRect.colliderect(player2Rect):
        ballSpeed[0] = -abs(ballSpeed[0])

    # start drawing
    screen.fill(black)
    pygame.draw.rect(screen, white, ballRect)
    pygame.draw.rect(screen, white, player1Rect)
    pygame.draw.rect(screen, white, player2Rect)

    # wait
    pygame.display.update()
    pygame.time.delay(10)

Heb je de basis van Python onder de knie? Hier vind je verschillende leuke projecten waarin je stap voor stap leert hoe je spelletjes kan maken met Python en pygame.

Je mag natuurlijk ook een eigen project bedenken. Je kan daarbij steeds hulp vragen aan een coach.

Snake

Snake level2

Pong

Pong level2

Extra oefeningen

Koekjesmonster

Niveau:level1
Bron:coderdojo-gent-pygame van Yannick Clybouw

Doel

Koekjesmonster

Programmeer het koekjesmonster zó dat ze haar weg vindt naar de koekje(s) en deze kan opeten!

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in dezelfde map waar je ook je oplossing zal aanmaken en bewaren

Oefening 1A

Er verschijnt een monster en één koekje. Vul de programmalus in zó dat het monster op weg gaat naar het koekje om het op te eten.

from oefening_01 import OpdrachtA

opdracht = OpdrachtA(500, 500)
monster = opdracht.monster
koekje = opdracht.koekje

def programmalus():
    """Beweeg het monster naar het koekje."""
    # ---------------------------------------------- #
    #                                                #
    #   Vul hier je programmalus in!                 #
    #                                                #
    # -----------------------------------------------#

opdracht.start(programmalus)

De positie op het scherm van het koekje is:

(koekje.x, koekje.y)

De positie op het scherm van het monster is:

(monster.x, monster.y)

Hierbij komt (0, 0) overeen met links-boven op het scherm.

Je kan het monster bewegen met de volgende acties:

  • ga één stap naar links: monster.stap_links()
  • ga één stap naar rechts: monster.stap_rechts()
  • ga één stap naar omhoog: monster.stap_omhoog()
  • ga één stap naar omlaag: monster.stap_omlaag()

Scratch vs. Python

Scratch Python
als … dan if … :
anders else:
anders, als … dan if … : elif …: else …:

Oefening 1B

Er verschijnt een monster en een koekje. Elke keer als je het spelletje start, zal het koekje op een willekeurige plaats verschijnen.

Vul de programmalus in zó dat het monster op weg gaat naar het koekje om het op te eten.

from oefening_01 import OpdrachtA

opdracht = OpdrachtB(500, 500)
monster = opdracht.monster
koekje = opdracht.koekje

def programmalus():
    """Beweeg het monster naar het koekje."""
    # ---------------------------------------------- #
    #                                                #
    #   Vul hier je programmalus in!                 #
    #                                                #
    # -----------------------------------------------#

opdracht.start(programmalus)

Oefening 1C

Er verschijnt een monster, samen met verschillende koekjes op willekeurige plaatsen.

Vul de programmalus in zó dat het monster één voor één op weg gaat naar de koekjes om ze op te eten.

from oefening_01 import OpdrachtC

opdracht = OpdrachtC(500, 500)
monster = opdracht.monster
koekjesgroep = opdracht.koekjesgroep
# De koekjesgroep heeft verschillende sprites.
# Telkens je een koekje opeet, verdwijnt die uit de groep.

def programmalus():
    """Beweeg het monster naar de koekjes, één voor één."""
    # ---------------------------------------------- #
    #                                                #
    #   Vul hier je programmalus in!                 #
    #                                                #
    # -----------------------------------------------#
    yield


opdracht.start(programmalus)

Alle koekjes zitten in koekjesgroep. Je kan alle koekjes overlopen met een lus.

Telkens het monster een koekje opeet, verdwijnt het koekje uit de groep. Je kan testen of een koekje nog in de groep zit met:

koekje in koekjesgroep

Merk op: je dient yield te gebruiken binnen in je lus.

Scratch vs. Python

Scratch Python
herhaal (voor elke X uit de GROEP) for X in GROEP
omgekeerde van “herhaal tot” while VOORWAARDE

Lussen in Python

break = verlaat de lus
continue = sla alles over tot de volgende herhaling van de lus

Oefening 1C extra

Als oefening 1C gelukt is, kun je als extra uitdaging ervoor zorgen dat het monster telkens het dichtste koekje opeet voordat ze naar het volgende koekje gaat.

De afstand tussen het monster en een koekje kan je berekenen met het volgende stukje code:

import math

def afstand(monster, koekje):
    return math.sqrt((monster.x - koekje.x) ** 2 +
                     (monster.y - koekje.y) ** 2)

Oefening:

import math

from oefening_01 import OpdrachtC

opdracht = OpdrachtC(500, 500)
monster = opdracht.monster
koekjesgroep = opdracht.koekjesgroep

def afstand(monster, koekje):
    return math.sqrt((monster.x - koekje.x) ** 2 +
                     (monster.y - koekje.y) ** 2)

def programmalus():
    """Beweeg het monster naar de koekjes,
    te beginnen met het dichtsbijzijnde koekje."""
    # ---------------------------------------------- #
    #                                                #
    #   Vul hier je programmalus in!                 #
    #                                                #
    # -----------------------------------------------#
    yield


opdracht.start(programmalus)

Thors hamer

Niveau:level1
Bron:pythoncourse van Yannick Clybouw

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • Kivy (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in een map naar keuze

Doel

Thors hamer

Oefening

Ga naar de map waar je de oefenbestanden bewaarde, en start oefening met:

(venv37) CoderDojo> python main.py 1

Raak de muren niet aan!

Niveau:level1
Bron:pythoncourse van Yannick Clybouw

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • Kivy (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in een map naar keuze

Doel

Raak de muren niet aan! Raak de muren niet aan!

Wat zal je leren?

Oefening

Ga naar de map waar je de oefenbestanden bewaarde, en start de oefening met:

(venv37) CoderDojo> python main.py 2

Geld uit de lucht

Niveau:level1
Bron:pythoncourse van Yannick Clybouw

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • Kivy (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in een map naar keuze

Doel

Geld uit de lucht

Wat zal je leren?

  • lijsten
  • elementen uit lijsten nemen

Oefening

Ga naar de map waar je de oefenbestanden bewaarde, en start de oefening met:

(venv37) CoderDojo> python main.py 3

Vallende bloempotten

Niveau:level1
Bron:pythoncourse van Yannick Clybouw

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • Kivy (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in een map naar keuze

Doel

Vallende bloempotten

Oefening

Ga naar de map waar je de oefenbestanden bewaarde, en start de oefening met:

(venv37) CoderDojo> python main.py 4

Geheimtaal

Niveau:level2
Bron:pythoncourse van Yannick Clybouw

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • Kivy (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in een map naar keuze

Doel

Geheimtaal Geheimtaal

Wat zal je leren?

  • datatypes string, integer
  • ASCII
  • for lus over string
  • concatenatie van strings

Oefening

Ga naar de map waar je de oefenbestanden bewaarde, en start de oefening met:

(venv37) CoderDojo> python main.py 5

Vlucht door de stad

Niveau:level2
Bron:pythoncourse van Yannick Clybouw

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • Kivy (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in een map naar keuze

Doel

Vlucht door de stad Vlucht door de stad

Wat zal je leren?

  • lijsten
  • vergelijken

Oefening

Ga naar de map waar je de oefenbestanden bewaarde, en start de oefening met:

(venv37) CoderDojo> python main.py 6

O x O

Niveau:level2
Bron:pythoncourse van Yannick Clybouw

Wat heb je nodig?

  • Een werkende Python-installatie (inclusief pygame) (zie Installatie)
  • Kivy (zie Installatie)
  • De Python code voor deze oefening: download deze bestanden en plaats deze op je computer in een map naar keuze

Doel

O x O

Wat zal je leren?

  • geneste lijsten
  • spellogica

Oefening

Ga naar de map waar je de oefenbestanden bewaarde, en start de oefening met:

(venv37) CoderDojo> python main.py 7

Wil je nog meer oefenen met Python? Zie dan de volgende oefeningen:

Zit je even vast?

Het is normaal dat je af en toe even vast zit. Programmeren is ook leren oplossingen vinden. Enkele tips voor wanneer je vast zit:

  • Zoek uit wat het probleem precies is:

    • Wat verwacht je te zien? Waarom zie je dat niet?
    • Welke waarden heeft een bepaalde variabele (print deze eens)? Hoort dat zo te zijn?
    • Kan je een kleinere stukje code schrijven dat wel werkt?
    • Wat gebeurt als je je code een beetje aanpast? Werkt het dan nog?
  • Als je een bepaalde foutmelding krijgt, zoek dan eens op internet (bv. met Duck Duck Go) om te achterhalen wat het probleem precies is en of je er oplossingen voor vindt.

  • Vraag hulp aan je vrienden.

  • Vraag hulp aan een coach.

  • Neem een pauze.