Les 1 · Module 1 · Fundament (alleen Python)
Waarden en variabelen
Je eerste Python-programma: waarden opslaan in variabelen, ze aanpassen en op het scherm zetten. Je leert wat er echt gebeurt als je = typt.
🎯 Na deze les kun je
- uitleggen wat een waarde en een variabele zijn
- een variabele maken, gebruiken en een nieuwe waarde geven
- het verschil zien tussen tekst (str) en getallen (int, float)
- met print() resultaten op het scherm zetten
- een veelgemaakte fout herkennen: een variabele gebruiken voordat hij bestaat
Een programma doet eigenlijk maar een paar dingen: het onthoudt gegevens, rekent ermee en laat iets zien. In deze les begin je bij het eerste: onthouden. Daarvoor gebruik je variabelen (variables).
We werken de hele eerste module in Python. Python leest bijna als Engels, heeft weinig leestekens en geeft duidelijke foutmeldingen. Zo kun je je concentreren op het idee in plaats van op puntkomma's.
Je eerste regel code
Open de labomgeving (zie het lab onderaan) of de Python-console en typ:
print("Hallo, wereld!")
Uitvoer:
Hallo, wereld!
print is een functie: een stukje gereedschap dat Python al kent. Wat tussen de haakjes staat, zet print op het scherm. De aanhalingstekens vertellen Python: dit is tekst, geen opdracht.
Waarden
Een waarde (value) is een stukje gegeven. Python kent onder andere deze soorten, typen (types) genoemd:
| Voorbeeld | Type | Betekenis |
|---|---|---|
"Sam" |
str |
tekst (string) |
17 |
int |
geheel getal (integer) |
1.82 |
float |
kommagetal — let op: met een punt |
True / False |
bool |
waar of niet waar |
Je kunt het type van een waarde opvragen met type():
print(type(17)) # <class 'int'>
print(type("17")) # <class 'str'>
Alles achter een # is commentaar: Python slaat het over. Het is een notitie voor mensen.
17 en "17" zijn niet hetzelfde. De eerste is een getal waarmee je kunt rekenen, de tweede is tekst die er toevallig uitziet als een getal. 17 + 1 geeft 18, maar "17" + 1 geeft een fout.
Variabelen: een naam voor een waarde
Een variabele is een naam die naar een waarde verwijst. Je maakt er een met =:
naam = "Sam"
leeftijd = 17
print(naam)
print(leeftijd)
Lees = niet als "is gelijk aan", maar als "krijgt de waarde": leeftijd krijgt de waarde 17. Python rekent eerst alles rechts van = uit en plakt daarna het label links op het resultaat.
Daarom mag dit:
leeftijd = 17
leeftijd = leeftijd + 1
print(leeftijd) # 18
In de wiskunde is x = x + 1 onzin. In code betekent het: neem de huidige waarde, tel er 1 bij op en bewaar het resultaat onder dezelfde naam.
Uitgewerkt voorbeeld: een fooi berekenen
Lees dit voorbeeld regel voor regel en voorspel de uitvoer voordat je verder leest.
bedrag = 42.50
fooi_procent = 10
fooi = bedrag * fooi_procent / 100
totaal = bedrag + fooi
print("Fooi:", fooi)
print("Totaal:", totaal)
Fooi: 4.25
Totaal: 46.75
Wat gebeurt er?
bedragkrijgt42.5(eenfloat).fooi_procentkrijgt10(eenint).- Python rekent
42.5 * 10 / 100uit en bewaart4.25alsfooi. totaalwordt42.5 + 4.25.printmag meerdere waarden krijgen, gescheiden door komma's; hij zet er een spatie tussen.
Goede namen besparen uitleg. fooi_procent vertelt meer dan fp of x. In Python schrijf je namen in kleine letters met underscores: snake_case.
Tekst en getallen combineren
Wil je tekst en een getal in één zin, dan is een f-string het handigst. Zet een f voor de aanhalingstekens en de variabele tussen accolades:
naam = "Sam"
leeftijd = 17
print(f"{naam} is {leeftijd} jaar.")
print(f"Volgend jaar is {naam} {leeftijd + 1}.")
Sam is 17 jaar.
Volgend jaar is Sam 18.
Bedragen netjes met twee decimalen? Gebruik :.2f:
totaal = 46.75
print(f"Te betalen: € {totaal:.2f}")
Foutmeldingen lezen
Fouten maken hoort erbij. Het belangrijkste is dat je de melding leest. Probeer dit:
print(prijs)
NameError: name 'prijs' is not defined
Python zegt precies wat er mis is: de naam prijs bestaat (nog) niet. Python leest van boven naar beneden; een variabele moet een waarde hebben gekregen voordat je hem gebruikt. Andere klassiekers:
| Melding | Meestal betekent het |
|---|---|
NameError |
tikfout in een naam, of de variabele is nog niet gemaakt |
TypeError: can only concatenate str (not "int") to str |
je plakt tekst en een getal aan elkaar met + → gebruik een f-string |
SyntaxError |
een haakje of aanhalingsteken mist |
Oefenen
Doe deze kleine oefeningen in de console voordat je aan het lab begint. Schrijf eerst op wat je verwacht, voer dan uit.
a = 5,b = a,a = 8. Wat is nub? Waarom?- Maak variabelen
breedteenhoogtevoor een kamer van 4,5 bij 3 meter en print de oppervlakte. - Wat print
print("3" * 3)? Enprint(3 * 3)?
Modelantwoord oefening 1
b is nog steeds 5. Bij b = a kreeg b de waarde die a op dat moment had. Als a later een nieuwe waarde krijgt, verandert b niet mee.
Lab: de kassabon
Start het lab (live in de browser, of lokaal:
docker run -it registry.wizg.it/webhosting/beetje-labs:concepten-les1).Maak een bestand
kassabon.py.Maak drie variabelen voor producten met een prijs:
brood = 2.89,kaas = 6.45,melk = 1.19.Bereken
subtotaal, daarnabtw(9% van het subtotaal) entotaal.Print een bon die er precies zo uitziet:
Subtotaal: € 10.53 Btw 9%: € 0.95 Totaal: € 11.48Voer het uit met
python3 kassabon.pyen controleer metbeetje check concepten-les1.
Samenvatting
- Een waarde is een stukje gegeven met een type:
str,int,float,bool. - Een variabele is een naam voor een waarde.
=betekent krijgt de waarde. - Rechts van
=wordt eerst uitgerekend; daarna krijgt de naam links het resultaat. print()zet waarden op het scherm; met een f-string combineer je tekst en variabelen.- Lees foutmeldingen: de laatste regel vertelt meestal precies wat er mis is.
In les 2 laat je je programma praten met de gebruiker: invoer vragen met input() en tekst omzetten naar getallen.
Lab
De kassabon
Schrijf kassabon.py in je labomgeving: live in de browser (bèta) of lokaal in Docker.
🔒 Het live lab hoort bij de volledige cursus. Met één aankoop (€ 29,00, eenmalig) krijg je alle lessen, de live labs en het certificaat. Geen abonnement. Je kunt dit lab altijd gratis lokaal met Docker doen.
Klaar? Controleer je werk met:
$ beetje check concepten-les1