edubun
Nederlands

Waarden en variabelen

In algebra heeft score = score + 5 geen oplossing. In Python is het een alledaagse regel: als score 10 was, wordt die 15.

Het teken = betekent niet ‘is gelijk aan’

Laat een wiskundeleerling de regel score = score + 5 zien en die noemt hem onwaar: geen getal is zichzelf plus vijf. Dat klopt voor algebra en verklaart waarom de regel de eerste keer in een programma verwart. In Python zegt = niet dat twee dingen gelijk zijn. Het is een instructie met een richting. Bereken eerst de rechterkant en koppel dan de naam links aan het resultaat.

score = 10
score = score + 5
print(score)
Uitvoer
15

Lees zoals Python. Regel 1: rechts staat 10, dus de naam score verwijst nu naar 10. Regel 2: rechts staat score + 5, dus 10 + 5, dus 15, en score verwijst nu naar 15. De oude 10 is weg. Regel 3 drukt af waar score op dat moment naar verwijst. Zo'n naam voor een waarde heet een variabele; de regel die haar een waarde geeft heet een toekenning.

Een variabele werkt als naamkaartje. Na score = score + 5 verhuist het kaartje naar de nieuwe waarde 15; de oude 10 blijft achter.

Een spoortabel volgt elke variabele regel voor regel

Houd bij meerdere veranderende variabelen een spoortabel bij: één rij per coderegel, één kolom per variabele, met de waarde na uitvoering van die regel. Het gaat langzaam en het werkt. De meeste vragen ‘waarom drukt het dat af?’ worden met een spoortabel in minder dan een minuut opgelost.

score = 10
bonus = score * 2
score = 0
print(score, bonus)
Uitvoer
0 20
Regelscorebonus
score = 1010(nog geen)
bonus = score * 21020
score = 0020
print(score, bonus)020

Bekijk de laatste twee rijen. Door score op 0 te zetten veranderde bonus niet. Toen regel 2 werd uitgevoerd, berekende Python 10 * 2 = 20 en gaf bonus dat getal. bonus bewaart het resultaat, niet het recept, en onthoudt dus niet waar de 20 vandaan kwam.

Elke waarde heeft een type

Waarden zijn er in verschillende soorten, typen genoemd. Gehele getallen zoals 42 zijn int. Getallen met een decimale punt, zoals 3.5, zijn float. Tekst tussen aanhalingstekens is str. True en False zijn bool. De ingebouwde functie type vertelt welke je hebt. Het type bepaalt wat een bewerking doet: 2 + 3 telt op, terwijl "2" + "3" twee strings samenvoegt tot "23".

print(type(42))
print(type(3.5))
print(type("42"))
print(type(True))
print(2 + 3, "2" + "3")
Uitvoer
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
5 23

Regels voor namen

Een variabelenaam mag letters, cijfers en het onderstrepingsteken _ bevatten, maar niet met een cijfer beginnen of spaties bevatten. Hoofdletters tellen als andere letters, dus Score en score zijn afzonderlijke variabelen. Woorden zoals if, for en True horen bij de taal en kunnen geen naam zijn. Python-programmeurs gebruiken meestal kleine letters met onderstrepingstekens tussen woorden, zoals lunch_price, en namen die de betekenis aangeven. x is prima voor een snelle test; seats_left is beter in een programma dat iemand anders leest.

a = "left"
b = "right"
a, b = b, a
print(a, b)
Uitvoer
right left

Het laatste voorbeeld verwisselt twee waarden in één regel. Python berekent eerst de hele rechterkant, b, a, en geeft pas daarna de twee resultaten aan a en b. Veel andere talen hebben daarvoor een derde variabele nodig.

variabeleEen naam die naar een waarde verwijst
toekenningnaam = waarde: bereken rechts en koppel dan de naam
intGehele getallen: 7, -3, 2026
floatGetallen met een decimale punt: 3.5, 0.1
strTekst tussen aanhalingstekens
boolTrue of False
spoortabelEen tabel met de waarde van elke variabele na elke regel
  1. Wat drukt deze code af?
    x = 4
    x = x + 3
    print(x)
  2. Wat drukt deze code af?
    a = 3
    b = a
    a = 7
    print(b)
  3. Wat drukt deze code af?
    price = 1500
    count = 3
    total = price * count
    print(total)
  4. Wat drukt deze code af?
    n = 2
    n = n * n
    n = n * n
    print(n)
    • 4
    • 8
    • 16
    • 2
  5. Wat drukt deze code af?
    print(type(7.0))
  6. Wat drukt deze code af?
    print("7" + "7")
  7. Welke hiervan is een geldige variabelenaam?
    • 2nd_place
    • seats left
    • seats_left
    • for
  8. Wat drukt deze code af?
    a = "left"
    b = "right"
    a, b = b, a
    print(b)
  9. Wat drukt deze code af?
    Score = 5
    score = 9
    print(Score)
    • 5
    • 9
    • 14
    • Een fout
  10. Wat is x na x = 10 en daarna x + 1 op een eigen regel?
    • 10
    • 11
    • x + 1
    • Een fout
Veelgemaakte fouten
  • ‘5 = x en x = 5 betekenen hetzelfde.’ De naam moet links staan. 5 = x stopt met SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?
  • ‘bonus = score * 2 koppelt bonus voorgoed aan score.’ bonus krijgt het getal dat de berekening toen gaf. Latere veranderingen aan score raken het niet, zoals de spoortabel toont.
  • ‘x + 1 schrijven telt één bij x op.’ Een losse expressie verandert niets. Je hebt x = x + 1 nodig, of de korte vorm x += 1.
Voor de docentHet teken = is de grootste erfenis uit de wiskunde. Een nuttige gewoonte is = lezen als ‘krijgt’ of ‘wordt’ (‘score krijgt score plus vijf’), nooit als ‘is gelijk aan’. Spoortabellen verdienen echte lestijd: geef vijf regels code, vraag de tabel voordat iemand uitvoert en voer daarna uit om te vergelijken. De verwisseling a, b = b, a test goed of iemand begrijpt dat eerst de hele rechterkant wordt berekend. Houd type() vanaf het begin in beeld, want de verrassing "7" + "7" keert terug in het hoofdstuk over invoer.
Belangrijkste punten
  • = betekent ‘bereken rechts en geef het dan deze naam’.
  • Een spoortabel noteert elke variabele na elke regel.
  • Typen: int, float, str, bool. type() vertelt welke.
  • Namen: letters, cijfers, _; geen cijfer eerst; hoofdletters tellen.
Bronnen van deze cursus (6)
  • Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
  • Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
  • Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
  • General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
  • Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
  • Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)

Geraadpleegd: 2026-10-19