Pythonbasis: waarden, variabelen en expressies

Schrijf en voer je eerste Pythonprogramma’s uit. Leer hoe Python gehele getallen, decimale getallen en tekst opslaat, hoe variabelen naar waarden verwijzen en worden bijgewerkt, en hoe operatoren en de bewerkingsvolgorde van waarden resultaten maken. Lees invoer van de gebruiker, zet die om naar het juiste type, toon duidelijke uitvoer, licht je code toe met commentaar en gebruik foutmeldingen om fouten te herstellen.

BeginnerLes 1 van 10 in Cursus Inleiding tot programmeren met Python

Wat je leert

  1. Voer Pythoncode uit in de interactieve shell en als opgeslagen scriptbestand, volg hoe een programma van boven naar beneden wordt uitgevoerd, lees foutmeldingen om fouten te herstellen en licht code toe met commentaar.
    • Voer code uit in de shell en als script
      Maak onderscheid tussen de interactieve shell en een opgeslagen programmabestand, voer code op beide manieren uit en voorspel wat elke manier op het scherm toont.
    • Lees foutmeldingen en herstel veelvoorkomende fouten
      Herken syntaxisfouten, uitvoeringsfouten en logische fouten, lees een stacktrace van onder naar boven en herstel de fouten die beginners het vaakst maken.
    • Licht code toe met commentaar
      Schrijf commentaar dat een lezer helpt een programma te begrijpen, en weet welke tekst Python negeert en welke tekst het nog steeds als code of gegevens behandelt.
  2. Herken de basissoorten waarden waarmee Python werkt (gehele getallen, decimale getallen, tekst en waar/onwaar-waarden) en schrijf ze elk correct in code.
    • Maak onderscheid tussen waarden en typen
      Bepaal het type van een waarde, controleer het met type() en leg uit waarom het type bepaalt wat je met een waarde kunt doen.
    • Schrijf gehele getallen en decimale getallen
      Schrijf int- en float-literals correct, ook bij zeer grote en zeer kleine getallen, en leg uit waarom float-resultaten soms iets afwijken.
    • Schrijf tekst als strings
      Maak strings met enkele, dubbele en drievoudige aanhalingstekens, zet er aanhalingstekens en speciale tekens in en maak onderscheid tussen tekst en code.
  3. Geef waarden namen met toekenningen, kies geldige en duidelijke namen en volg hoe de waarden van variabelen veranderen tijdens de uitvoering van een programma.
    • Ken waarden toe aan variabelen
      Maak variabelen met toekenningsinstructies, leg uit wat het isgelijkteken in Python doet en gebruik variabelen in latere instructies.
    • Kies geldige en betekenisvolle variabelenamen
      Volg de regels en stijlconventies van Python voor namen, vermijd gereserveerde woorden en ingebouwde namen en kies namen die aangeven wat een waarde betekent.
    • Werk variabelen bij en volg een programma stap voor stap
      Wijzig variabelen met samengestelde toekenning, verwissel twee waarden correct en volg een programma regel voor regel met een uitvoeringstabel om de uitvoer te voorspellen.
  4. Bouw expressies met de rekenkundige en tekstoperatoren van Python, voorspel hun resultaten en typen en gebruik de bewerkingsvolgorde en haakjes om te berekenen wat je bedoelt.
    • Gebruik de rekenkundige operatoren
      Reken met +, -, *, /, //, % en ** en voorspel of elk resultaat een int of een float is.
    • Pas de bewerkingsvolgorde toe
      Voorspel hoe Python een expressie met meerdere operatoren evalueert en gebruik haakjes om te berekenen wat je bedoelt.
    • Verdeel hoeveelheden met gehele deling en rest
      Gebruik // en % om een hoeveelheid te verdelen in volledige groepen en een rest, en pas ze toe op tijd, geld en cijfers.
    • Combineer tekst en getallen in expressies
      Voeg strings samen en herhaal ze met + en *, en voorspel wat er gebeurt als een expressie gehele getallen, zwevendekommagetallen en strings combineert.
  5. Schrijf korte, volledige programma’s die de gebruiker om gegevens vragen, die omzetten naar het juiste type, ermee rekenen en duidelijke resultaten afdrukken.
    • Zet waarden om naar een ander type
      Gebruik int(), float(), str() en round() om een waarde om te zetten of af te ronden, voorspel het resultaat en herken conversies die mislukken.
    • Toon uitvoer met print()
      Toon tekst en waarden met print(), bepaal de scheidingstekst en regelafsluiting met sep en end en maak de uitvoer overzichtelijk.
    • Lees invoer en schrijf een volledig programma
      Vraag de gebruiker om gegevens met input(), zet die om voordat je ermee rekent en combineer invoer, verwerking en uitvoer tot een kort werkend programma.

Variabelen en expressies in Python: uitleg

5 hoofdstukken

1

Voer code uit en begrijp het resultaat

Een kort programma is gemakkelijker te begrijpen als je weet waar je het uitvoert en wat je op het scherm kunt verwachten. Begin met snelle experimenten in de Pythonshell en sla daarna een reeks instructies op, zodat je die opnieuw kunt uitvoeren. Leer onderscheid maken tussen een berekening die onzichtbaar blijft en afgedrukte uitvoer, lees de aanwijzingen in foutmeldingen en laat nuttig commentaar achter voor de volgende persoon die je code leest. Dat kun je zelf zijn, een week later.

1.1 De shell en een opgeslagen programma

Een programma is een reeks instructies. De Pythoninterpreter leest Pythoncode en voert die instructies uit. Gebruik Python 3, waarin een aanroep zoals print("Hello") haakjes heeft.

Probeer een regel in de shell

De interactieve shell, of REPL (read–evaluate–print loop), toont >>> wanneer die klaar is voor Pythoncode. Typ een instructie na de prompt en druk op Enter. Je typt >>> niet zelf.

>>> 3 + 4
7
>>> "hi"
'hi'

De shell toont automatisch de waarde van een expressie. Hij zet aanhalingstekens om een string om aan te geven dat het tekst is. Een prompt ... betekent dat een instructie onvoltooid is en Python op meer wacht. Een openingshaakje kan bijvoorbeeld nog een sluithaakje nodig hebben. Typ exit() bij een prompt die klaarstaat om de shell te verlaten.

De shell is handig om één expressie te testen. Hij kan een geschiedenis van commando’s bijhouden, maar die geschiedenis is geen opgeslagen programma. Zet instructies die je opnieuw samen wilt uitvoeren in een script.

Sla een script op en voer het uit

Een script is een bestand met code als platte tekst en de extensie .py. Gebruik een code-editor zoals IDLE, Thonny of VS Code. IDLE wordt meegeleverd met de standaarddistributie van Python. Een tekstverwerker kan rechte aanhalingstekens veranderen in gekrulde aanhalingstekens; die gekrulde tekens kunnen Pythonstrings niet begrenzen.

Voer deze regels in de editor in en sla het script op:

print("Hello, world!")
print("Welcome to Python.")

Kies in IDLE Run → Run Module of druk op F5. De uitvoer is:

Hello, world!
Welcome to Python.

Python voert deze instructies van boven naar beneden uit. Elke print() toont zijn tekst en gaat naar een nieuwe regel. Als je de instructies omkeert, keert ook de uitvoer om.

Je kunt een opgeslagen script ook vanuit een terminal uitvoeren. Open de map met je script en voer het interpretercommando in, gevolgd door de naam waaronder het script is opgeslagen. Op macOS of Linux is het commando meestal python3 gevolgd door de scriptnaam; op Windows wordt vaak python of py gebruikt. Het terminalcommando start de interpreter en vertelt welk script die moet uitvoeren. Dat commando hoort bij de prompt van de terminal, niet na >>> van Python. Een online editor kan in plaats daarvan een uitvoerknop bieden.

Bepaal wat je moet afdrukken

Een script met alleen 3 + 4 berekent een waarde, maar toont niets. Schrijf print(3 + 4) om 7 te tonen. Zo toont print("hi") de tekst ook zonder de aanhalingstekens eromheen. De aanhalingstekens horen bij de code; ze markeren het begin en einde van de tekst.

Python is hoofdlettergevoelig. print en Print zijn verschillende namen, dus Print("hi") levert een NameError op, tenzij die afzonderlijke naam is gedefinieerd. Neem de spelling en hoofdletters van ingebouwde namen precies over.

Spaties aan het begin van een regel hebben ook betekenis. Begin bij deze eenvoudige reeksen instructies elke instructie aan de linkerkant. Een verdwaalde inspringing vóór print("hi") kan IndentationError: unexpected indent veroorzaken. Spaties binnen de tekst tussen aanhalingstekens zijn anders: Python drukt die af als onderdeel van de melding.

Belangrijkste punten

  • De shell toont expressiewaarden automatisch; een script heeft print() nodig om ze te tonen.
  • Sla herbruikbare instructies op als een Pythonscript met platte tekst.
  • Voer terminalcommando’s uit in de terminal en Pythoninstructies in de shell of editor.
  • De volgorde van instructies, hoofdletters en spaties aan het begin van een regel kunnen veranderen wat er gebeurt.

1.2 Gebruik een foutmelding om de volgende fout te herstellen

Een fout in een programma is een programmeerfout. Die opsporen en herstellen heet debuggen. Bepaal eerst wat voor probleem je hebt: code die Python niet kan lezen, een bewerking die tijdens de uitvoering mislukt of een resultaat dat gewoon verkeerd is.

Drie soorten problemen
SoortWat gebeurt erVoorbeeld
SyntaxisfoutPython kan de code niet lezen; het script start niet.print("hi" heeft een niet-gesloten haakje.
UitvoeringsfoutDe uitvoering bereikt een bewerking die mislukt en stopt daar.10 / 0 werpt ZeroDivisionError op.
Logische foutDe code wordt uitgevoerd, maar berekent het verkeerde resultaat.88 + 92 / 2 is niet het gemiddelde van 88 en 92.

Python controleert de syntaxis van het hele script voordat het wordt uitgevoerd. Een syntaxisfout aan het einde verhindert zelfs dat de eerste regel wordt uitgevoerd. Bij een uitvoeringsfout is dat anders: eerdere instructies zijn al uitgevoerd en hun afgedrukte uitvoer blijft zichtbaar.

Voor het gemiddelde wordt de deling vóór de optelling uitgevoerd. Python berekent 92 / 2 als 46.0 en telt daar 88 bij op om 134.0 te krijgen. De bedoelde expressie is (88 + 92) / 2, die 90.0 geeft. Er is geen foutmelding omdat beide expressies geldig zijn. Een berekening met de hand geeft je iets om met het programma te vergelijken.

Lees een stacktrace vanaf de onderkant

Stel dat de code is:

name = "Ada"
print("Hello", nme)

De stacktrace eindigt met een melding zoals NameError: name 'nme' is not defined. De laatste regel noemt de fout en legt uit wat misging. Daarboven toont Python de locatie, het regelnummer en de code. Vergelijk nme met de naam waaraan eerder een waarde is toegekend: name. Als je die spelling verbetert, wordt de uitvoer Hello Ada.

De gemelde locatie is waar Python het probleem opmerkte. Als een regel er correct uitziet, controleer dan ook de regel ervoor. Door een eerder ontbrekend aanhalingsteken of haakje kan Python mogelijk niet begrijpen wat volgt. Recente versies wijzen vaak rechtstreeks naar het openingshaakje zonder bijbehorend sluithaakje.

Laat het fouttype je zoektocht sturen
  • NameError: Python kan een naam niet vinden, zoals bij pirnt, Print of een variabele die vóór de toekenning wordt gebruikt. Controleer de spelling, hoofdletters en volgorde van de regels.
  • TypeError: de bewerking werkt niet met die typen. "5" + 5 probeert tekst en een getal samen te voegen.
  • ValueError: een conversie ontvangt onbruikbare inhoud. int("abc") ontvangt tekst, maar de tekst beschrijft geen geheel getal.
  • ZeroDivisionError: een deler is nul. Bekijk de waarde na /, // of %.

Zoek bij een SyntaxError bij elk openingsaanhalingsteken en openingshaakje het bijbehorende afsluitende teken. print('It's late') sluit de string af bij de apostrof in “It's”; gebruik print("It's late"). Python 2-code zoals print "hi" heeft de haakjes van Python 3 nodig: print("hi"). Typ gekrulde aanhalingstekens opnieuw als rechte aanhalingstekens. Verwijder bij onverwachte inspringing de verdwaalde spaties aan het begin van de regel.

Herstel één probleem en voer het programma opnieuw uit. De eerste fout kan hebben verhinderd dat Python een tweede fout bereikte. Bouw een programma enkele regels tegelijk op, zodat je bij elke nieuwe fout een klein stuk hoeft te onderzoeken.

Belangrijkste punten

  • Een syntaxisfout verhindert dat een script start; een uitvoeringsfout stopt het nadat eerdere regels zijn uitgevoerd.
  • Lees de laatste regel van de stacktrace voor het fouttype en bekijk daarna de gemelde code.
  • Een programma kan met succes worden uitgevoerd en toch een logische fout bevatten.
  • Gebruik eenvoudige verwachte resultaten om berekeningen te controleren.
  • Herstel één fout en voer het programma opnieuw uit voordat je meer code verandert.

1.3 Commentaar dat het doel uitlegt

Code vertelt Python wat het moet doen. Een commentaar vertelt een mens waarom de code dat doet of wat een waarde betekent. Python negeert commentaar bij het uitvoeren van het programma.

Markeer commentaar duidelijk

Commentaar begint met # buiten een string en loopt door tot het einde van die regel. Het kan op zichzelf staan of op een instructie volgen:

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = 68
celsius = (fahrenheit - 32) * 5 / 9
print(celsius)  # Show the converted temperature.

Het commentaar op een volledige regel legt het doel van het programma uit. Het commentaar achter code op dezelfde regel volgt op code op dezelfde regel. PEP 8, de stijlgids van Python, beveelt minstens twee spaties aan vóór een # achter code en één spatie erna. Door die spaties is de grens goed zichtbaar.

Een hekje binnen aanhalingstekens is gewone tekst:

print("#1 is not a comment")  # This part is a comment.

De uitvoer is #1 is not a comment. Python leest de hele string tussen aanhalingstekens, inclusief het hekje, als gegevens. Het negeert de tekst na het latere #, omdat dat teken buiten de aanhalingstekens staat.

Leg de betekenis uit, geen voor de hand liggende stappen

Vergelijk deze commentaren:

count = count + 1  # Add 1 to count.
attempts = attempts + 1  # One more failed login.

Het eerste commentaar herhaalt een bewerking die al in de code zichtbaar is. Het tweede geeft een reden voor de verandering. Een lezer weet nu wat er met een poging wordt geteld. Een duidelijke naam zoals attempts neemt ook een deel van het werk over dat bij een vage naam aan commentaar zou worden overgelaten.

Nuttig commentaar legt een eenheid, een keuze of een doel uit dat de code alleen niet duidelijk maakt. Zo verbindt tax_rate = 0.08 # 8% sales tax een decimaal tarief met zijn betekenis. Als je dat tarief later verandert, controleer dan ook het commentaar. Verouderd commentaar kan een lezer op het verkeerde spoor zetten, ook als de code werkt.

Voorkom tijdelijk dat een regel wordt uitgevoerd

Om een instructie uit te commentariëren, zet je er # voor:

print("Start")
# print("Checking this step")
print("Finish")

Alleen Start en Finish verschijnen. Door een regel uit te commentariëren blijft die beschikbaar terwijl je het programma zonder die regel test. Verwijder oude uitgeschakelde code wanneer die niet meer helpt; anders moet een latere lezer raden of die nog nodig is.

Voor een aantekening over meerdere regels begin je elke regel met #:

# Read the temperature in degrees Fahrenheit.
# Keep the calculation in Celsius for the next step.

Tekst tussen drievoudige aanhalingstekens is anders. Een regel zoals """Convert a temperature.""" is een stringexpressie, geen commentaar. Zulke strings kunnen op bepaalde plaatsen dienen als documentatie, docstrings genoemd. Gebruik # wanneer je gewoon commentaar bedoelt. Een string die nergens wordt gebruikt, kan in een script onzichtbaar blijven. Daardoor kan die op commentaar lijken, hoewel Python hem als waarde leest.

Belangrijkste punten

  • Een # buiten een string begint commentaar dat eindigt aan het einde van de regel.
  • Leg een doel, keuze of eenheid uit die de code zelf niet al duidelijk maakt.
  • Door een instructie uit te commentariëren voorkom je dat die wordt uitgevoerd.
  • Werk commentaar bij als de code verandert.
2

Herken en schrijf verschillende soorten waarden

Python behandelt een aantal, een meting en een stuk tekst als verschillende soorten gegevens. Hun typen bepalen zowel hoe je ze schrijft als wat een bewerking ermee kan doen. Leer een waarde aan de schrijfwijze herkennen, het type ervan controleren en een bruikbare vorm voor een praktische taak kiezen. Schrijf daarna getallen en strings zorgvuldig, met decimale punten, aanhalingstekens en speciale tekens, zodat Python de gegevens leest die je bedoelde.

2.1 Waarden hebben typen

Een waarde is een gegeven, zoals 42, 3.5 of "Ada". Elke waarde heeft een type, dat Python vertelt om wat voor gegeven het gaat. Een letterlijke waarde is een waarde die rechtstreeks in code staat. De schrijfwijze is van belang: 7, 7.0 en "7" hebben verschillende typen.

Vier basistypen
TypeSoort gegevenVoorbeelden
intGeheel getal42, 0, -7
floatZwevendekommagetal3.5, 2.0, -0.25
strString, of tekst"Ada", 'hello', "42"
boolBooleaanse waar/onwaar-waardeTrue, False

Een decimale punt maakt van 2.0 een float, ook al is de getalswaarde gelijk aan het gehele getal 2. Aanhalingstekens maken van "42" tekst, ook al lijken de tekens op een getal. Het type volgt uit de geschreven waarde, niet uit het doel waarvoor een lezer die zou kunnen gebruiken.

Booleaanse letterlijke waarden hebben een hoofdletter en geen aanhalingstekens. True is een booleaanse waarde; "True" is een string. true met een kleine letter is een naam, en als je die gebruikt zonder hem te definiëren, krijg je NameError. Een vergelijking kan een booleaanse waarde opleveren: 3 < 5 evalueert tot True.

Vraag Python om het type

De ingebouwde functie type() geeft het type van haar argument. In de shell tonen deze aanroepen:

>>> type(7)
<class 'int'>
>>> type(7.0)
<class 'float'>
>>> type("7")
<class 'str'>
>>> type(True)
<class 'bool'>

Gebruik in een script print() om die resultaten te zien:

print(type(42), type("42"))

Dit drukt <class 'int'> <class 'str'> af. Het woord class maakt deel uit van wat Python teruggeeft; de namen int en str duiden de typen aan.

Typen veranderen de betekenis van operatoren

Bij getallen telt + op. Bij twee strings voegt de operator tekst samen:

print(5 + 3)
print("5" + "3")

De eerste regel drukt 8 af. De tweede drukt 53 af. De tweede expressie heeft twee tekstwaarden, dus Python voegt hun tekens samen. Het bekijkt de cijfertekens niet om vervolgens te besluiten ze op te tellen.

"5" + 5 werpt TypeError op: de ene operand is tekst en de andere is een geheel getal. Controleer de typen wanneer een bewerking zich anders gedraagt dan je verwacht. Cijfers op het scherm bewijzen niet dat de opgeslagen waarde numeriek is.

Kies een type dat bij de betekenis past

Gebruik een geheel getal voor een aantal en een float voor een meting die een breukdeel kan bevatten. Bewaar een identificator zoals een Amerikaanse postcode als tekst. De string "02134" behoudt de eerste nul; die nul hoort bij de identiteit van de code en maakt geen deel uit van een berekening. Telefoonnummers kunnen ook leestekens bevatten die je wilt bewaren.

De shell kan 'Ada' tonen, terwijl print("Ada") de tekst Ada toont. Beide verwijzen naar dezelfde tekst. De aanhalingstekens van de shell geven een string aan; print() toont de tekens aan een lezer. Geen van beide weergaven verandert het opgeslagen type.

Belangrijkste punten

  • De schrijfwijze van een letterlijke waarde bepaalt het type: 7, 7.0 en "7" verschillen.
  • type() geeft het type van een waarde.
  • Operatoren houden rekening met typen: getallen optellen en tekst samenvoegen zijn verschillende bewerkingen.
  • Schrijf booleaanse letterlijke waarden als True en False, zonder aanhalingstekens.
  • Sla identificatoren zoals Amerikaanse postcodes op als strings om hun tekens te behouden.

2.2 Getallen, decimale punten en de precisie van floats

Python heeft afzonderlijke typen voor gehele getallen en zwevendekommagetallen. Door ze duidelijk te schrijven voorkom je zowel syntaxisfouten als minder opvallende veranderingen in de gegevens.

Schrijf aantallen als gehele getallen

Een geheel getal heeft geen breukdeel. Schrijf een int zonder decimale punt, zoals in 42, 0 of -7. Gehele getallen in Python kunnen zo groot worden als het beschikbare geheugen toelaat, zonder een vaste groottebeperking. Optellen, aftrekken en vermenigvuldigen van gehele getallen zijn exact. Zo geeft 2 ** 100 het exacte gehele getal 1267650600228229401496703205376.

Gebruik geen komma’s om duizendtallen te groeperen. Schrijf 1000000 of gebruik underscores voor de leesbaarheid: 1_000_000. De underscores veranderen de waarde niet.

Een decimale letterlijke waarde voor een geheel getal anders dan nul mag niet met een nul beginnen. 02134 schrijven is een syntaxisfout. Als die cijfers een identificator vormen waarbij de eerste nul van belang is, schrijf dan "02134" als tekst.

Schrijf hoeveelheden met breukdelen als floats

Een zwevendekommagetal (float) gebruikt een decimale punt of exponentnotatie. 3.5, 2.0 en -0.25 zijn floats. Python accepteert ook .5 en 5., die 0.5 en 5.0 betekenen; de extra nul schrijven maakt ze vaak gemakkelijker leesbaar. Gebruik floats voor metingen zoals temperatuur of afstand en voor inleidende berekeningen met prijzen die een breukdeel hebben.

Pythoncode gebruikt een decimale punt. Een komma scheidt waarden en markeert nooit het breukdeel. Bijvoorbeeld:

x = 3.5
print(x)

drukken 3.5 af, terwijl x = 3,5 een paar waarden maakt, weergegeven als (3, 5). Zo maakt x = 1,000 ook (1, 0), niet duizend. Deze instructies kunnen worden uitgevoerd, dus het ontbreken van een foutmelding betekent niet dat het getal correct is geschreven.

Gebruik wetenschappelijke notatie

De letter e betekent “maal tien tot de macht” in een letterlijke getalswaarde:

Letterlijke waardeWaarde
1.5e31500.0
2.5e-30.0025
1e31000.0

Een letterlijke waarde met een exponent is een float, ook als de waarde een geheel getal is. Het minteken na e maakt de exponent negatief, dus 2.5e-3 betekent 2,5 gedeeld door 1.000.

Houd rekening met beperkte precisie

Floats slaan getallen binair op met beperkte precisie, doorgaans ongeveer 15–17 significante decimale cijfers. Veel decimale breuken, waaronder 0.1, kunnen daarin niet exact worden weergegeven. Daardoor:

print(0.1 + 0.2)
print(round(0.1 + 0.2, 2))

wordt eerst 0.30000000000000004 afgedrukt en daarna 0.3. Het kleine verschil komt door de opgeslagen benaderingen. round(..., 2) rondt het resultaat af op twee decimalen voor de weergave; het verandert niet hoe floats waarden opslaan. Bewaar de oorspronkelijke berekening tot het einde en rond dan het weergegeven resultaat af.

Een teken kan ook een operator zijn. Unaire min verandert het teken van één waarde: -7 is min zeven. In 5 - -3 trekt het eerste minteken af en maakt het tweede de daaropvolgende drie negatief, dus is het resultaat 8. Onderscheid dit teken van de negatieve exponent in een letterlijke waarde zoals 2.5e-3.

Belangrijkste punten

  • Schrijf decimale punten in code en gebruik underscores, geen komma’s, om grote getallen te groeperen.
  • Gehele getallen in Python hebben geen vaste groottebeperking; het beschikbare geheugen begrenst ze wel.
  • Een letterlijke waarde met een decimale punt of e is een float.
  • Veel decimale breuken worden als float benaderd; rond het uiteindelijk weergegeven resultaat af.
  • Unaire min verandert het teken van één waarde.

2.3 Aanhalingstekens en tekens binnen strings

Een string is een reeks tekens: letters, cijfers, spaties, leestekens en andere symbolen. Aanhalingstekens vertellen Python waar die reeks begint en eindigt. De tekens ertussen zijn gegevens, ook als ze op Pythoncode lijken.

Kies passende aanhalingstekens

Enkele en dubbele aanhalingstekens maken hetzelfde type, str. Zowel 'Ada' als "Ada" bevat dezelfde drie tekens. Begin en eindig een string met hetzelfde soort aanhalingsteken.

Kies de buitenste aanhalingstekens zo dat je een aanhalingsteken binnenin gemakkelijk kunt schrijven:

print("It's late")
print('She said "hi"')

De uitvoer is:

It's late
She said "hi"

In print('It's late') sluit de apostrof na It de string te vroeg af. Python kan de rest van de instructie dan niet lezen. Met dubbele aanhalingstekens aan de buitenkant blijft de apostrof binnen de tekst.

Gebruik een escapesequentie

Een backslash begint een escapesequentie. Deze gebruikelijke sequenties staan elk voor één teken:

Geschreven in codeTeken in de string
\nNieuwe regel
\tTab
\\Eén backslash
\'Enkel aanhalingsteken
\"Dubbel aanhalingsteken

Zo drukt print("Line 1\nLine 2") twee regels af. De backslash en de n in de code staan samen voor een regeleinde, niet voor een zichtbare letter n. Zo drukt print('It\'s late') ook It's late af: het aanhalingsteken met de backslash wordt een teken zonder de string te beëindigen.

Om een letterlijke backslash gevolgd door een letter af te drukken, schrijf je een dubbele backslash. print("A\\B") toont A\B. De eerste backslash geeft aan dat de volgende backslash een teken moet zijn.

Behoud regeleinden of laat tekens weg

Met drievoudige aanhalingstekens kan één string meerdere fysieke regels beslaan. De regeleinden worden onderdeel van de waarde:

print("""Line one
Line two""")

Dit drukt Line one en Line two op afzonderlijke regels af. Drievoudige enkele aanhalingstekens werken ook. Drievoudige aanhalingstekens maken nog steeds een string; ze maken geen #-commentaar.

De lege string, "", heeft geen tekens. Die verschilt van " ", dat één spatie bevat. Die spatie is in de uitvoer soms moeilijk te zien, maar blijft onderdeel van de gegevens.

Maak onderscheid tussen tekst en een expressie of naam

Vergelijk deze instructies:

name = "Ada"
print("3 + 4")
print(3 + 4)
print("name")
print(name)

De uitvoer is 3 + 4, dan 7, dan name en dan Ada. De aanhalingstekens maken van het eerste en derde argument letterlijke tekst. Zonder aanhalingstekens evalueert Python een berekening of zoekt het een variabele op.

Als je aanhalingstekens rond een boodschap zoals Hello vergeet, zoekt Python naar een naam. Als Hello niet is gedefinieerd, werpt print(Hello) een NameError op. Schrijf print("Hello") als je dat woord wilt.

Strings kunnen tekens uit veel talen en symbolen bevatten, zoals "café", "naïve" en "°F". Er kunnen ook cijfers tussen staan: "Room 101" is helemaal tekst. Een cijferteken tussen aanhalingstekens wordt geen geheel getal.

Belangrijkste punten

  • Enkele en dubbele aanhalingstekens maken beide strings; het openings- en sluitteken moeten van dezelfde soort zijn.
  • Kies buitenste aanhalingstekens of escapesequenties die een aanhalingsteken binnen de tekst houden.
  • Veelgebruikte escapesequenties zijn \n, \t en \\.
  • Drievoudige aanhalingstekens behouden regeleinden in een string.
  • Een lege string bevat geen tekens; een spatie is een teken.
  • Tekst tussen aanhalingstekens is data; namen en berekeningen zonder aanhalingstekens worden geëvalueerd.
3

Geef waarden een naam en volg hun veranderingen

Met variabelen kan een programma een waarde opnieuw gebruiken en haar een betekenis geven die een lezer herkent. Een toekenning verbindt een naam met het resultaat van een expressie; een latere toekenning kan die verbinding veranderen. Leer die stappen op volgorde te lezen, namen te kiezen die Python accepteert en een opgeslagen resultaat te onderscheiden van een formule die opnieuw moet worden uitgevoerd. Uitvoeringstabellen maken deze veranderingen zichtbaar, ook de stappen die nodig zijn om twee waarden veilig te verwisselen.

3.1 Een toekenning geeft een waarde een naam

Een variabele is een naam die verwijst naar een waarde in het geheugen. Een toekenningsinstructie verbindt een naam links van = met de waarde van een expressie rechts ervan.

Lees eerst de rechterkant

In age = 30 evalueert Python 30 en laat daarna age naar dat gehele getal verwijzen. De linkerkant moet een geldige plaats zijn om een waarde aan toe te kennen. 30 = age is een syntaxisfout: je kunt geen nieuwe waarde toekennen aan de letterlijke waarde 30.

Het teken = betekent “ken toe”. Het vraagt niet of twee waarden gelijk zijn. Om gelijkheid te controleren gebruik je ==. Als je een toekenning leest als een werkrichting, worden instructies zoals x = x + 1 begrijpelijk: gebruik de oude x rechts, bereken de nieuwe waarde en ken die toe aan x links.

Bekijk een rechthoek:

width = 4
height = 2.5
area = width * height
print(area)

Na de eerste regel verwijst width naar 4. Na de tweede verwijst height naar 2.5. Voor de derde regel zoekt Python beide huidige waarden op en evalueert het 4 * 2.5, wat 10.0 oplevert. Het kent dat resultaat toe aan area. De laatste regel drukt 10.0 af.

Een toekenning zelf drukt de waarde niet af. Gebruik de naam in een latere aanroep van print() als je de waarde wilt tonen.

Ken een waarde toe voordat je een naam gebruikt

Python volgt de volgorde van de instructies. Deze code mislukt op de eerste regel:

print(total)
total = 10

Op dat moment heeft total geen waarde. De latere toekenning kan geen waarde leveren aan een eerdere instructie. Verplaats total = 10 naar vóór print(total).

Een shell kan namen uit eerdere experimenten onthouden. Een opgeslagen programma moet de toekenningen die het nodig heeft in zijn eigen uitvoeringsvolgorde bevatten, zodat het resultaat niet afhangt van wat je eerder hebt getypt.

Ken een bestaande naam een nieuwe waarde toe

Een hernieuwde toekenning laat een naam naar een nieuwe waarde verwijzen:

score = 10
score = 15

Nu is score gelijk aan 15; de eerdere waarde 10 is niet meer via die naam bereikbaar. Voor een bijwerking op basis van de oude waarde:

x = 3
x = x + 1

De tweede regel evalueert 3 + 1 en kent daarna 4 toe aan x. Er is geen vergelijking om op te lossen en geen tegenspraak.

Een type hoort bij de waarde, niet blijvend bij de variabelenaam. Python staat temp = 3 gevolgd door temp = "three" toe; daarna geeft type(temp) het type str. Als je de betekenis en het verwachte type van een naam consistent houdt, is een programma meestal gemakkelijker te volgen.

Een gekopieerde waarde is geen blijvende koppeling
a = 5
b = a
a = 10
print(a, b)

Dit drukt 10 5 af. Bij b = a verwijzen beide namen naar het huidige gehele getal 5. Een hernieuwde toekenning aan a verandert naar welke waarde a verwijst; b blijft naar 5 verwijzen. Zo slaat het bewaren van width * height ook het resultaat op, geen formule die zichzelf bijwerkt wanneer width verandert.

Eén instructie kan waarden aan meerdere namen toekennen. a = b = 0 geeft beide namen de waarde 0. In x, y = 1, 2 worden de waarden op positie aan de namen gekoppeld, zodat x gelijk wordt aan 1 en y aan 2.

Belangrijkste punten

  • Een toekenning evalueert de expressie rechts voordat de waarde aan de naam links wordt toegekend.
  • Een variabele moet een waarde hebben voordat een expressie haar gebruikt.
  • Een hernieuwde toekenning verandert de waarde die via een naam bereikbaar is.
  • Een variabele aan een andere variabele toekennen koppelt hun toekomstige toekenningen niet.
  • Een waarde heeft een type; dezelfde naam kan later naar een waarde van een ander type verwijzen.

3.2 Namen die Python accepteert en mensen begrijpen

Een naam moet voldoen aan de grammatica van Python en iemand helpen het programma te begrijpen. Dat zijn twee afzonderlijke eisen: Python kan een naam accepteren die de code toch moeilijk leesbaar maakt.

Volg de naamgevingsregels

Een variabelenaam mag letters, cijfers en underscores bevatten. Hij mag niet met een cijfer beginnen, geen spatie bevatten en geen leestekens zoals een koppelteken gebruiken.

NaamWat gebeurt er
total, item_count, price2, _tempGeldige namen
2nd_placeOngeldig: begint met een cijfer
first nameOngeldig: bevat een spatie
first-nameWordt gelezen als een aftrekking, niet als één naam

Python accepteert ook letters uit andere alfabetten. Engelse letters zijn een gebruikelijke keuze voor identificatoren. Welke letters je ook kiest, houd de spelling consistent: age, Age en AGE zijn drie verschillende namen. Met age = 30 definieer je Age niet.

Houd gereserveerde woorden en ingebouwde namen uit elkaar

Een gereserveerd woord is gereserveerd voor de grammatica van Python. Je kunt het niet als variabelenaam gebruiken. De vast gereserveerde woorden zijn:

False None True and as assert async await break class
continue def del elif else except finally for from
global if import in is lambda nonlocal not or pass
raise return try while with yield

Je hoeft de lijst niet uit je hoofd te leren voordat je een programma schrijft. Herken voorlopig dat een naam zoals class niet beschikbaar is: class = 3 is een syntaxisfout. Editors tonen gereserveerde woorden vaak in een speciale kleur.

Namen van ingebouwde functies, waaronder print, input, int, str, type, sum en max, zijn geen gereserveerde woorden. Python staat toe dat je er waarden aan toekent, maar die toekenning verbergt de oorspronkelijke functie:

print = 5
print("hi")

De tweede regel probeert het gehele getal 5 aan te roepen en werpt TypeError op. Kies een naam die je gegevens beschrijft, zoals total, zodat de ingebouwde functie beschikbaar blijft. Als je een shell opnieuw start, worden onbedoelde vervangingen tijdens experimenten gewist.

Schrijf namen in een consistente stijl

PEP 8 beveelt snake_case aan voor variabelenamen: woorden in kleine letters, verbonden met underscores, zoals in hourly_rate en first_name. De underscore houdt een naam van meerdere woorden zonder spaties bij elkaar.

Een constante is een waarde die je onveranderd wilt houden. Volgens afspraak schrijf je de naam met hoofdletters:

SALES_TAX_RATE = 0.08

Python vergrendelt die naam niet. Een latere toekenning kan de waarde veranderen; de hoofdletters maken een bedoeling duidelijk aan de lezer.

Vermeld betekenis en eenheden

hours_worked = 38 vertelt meer dan h = 38. Een naam zoals distance_miles of temp_f geeft ook de eenheid aan. Daardoor is de kans kleiner dat je mijlen gebruikt alsof het kilometers zijn of Fahrenheit alsof het Celsius is. Korte namen zoals x en y werken goed voor coördinaten of een korte formule waarbij hun betekenis al duidelijk is.

Vermijd bijna identieke namen zoals total en totl. Een typefout kan een NameError opleveren, maar kan ook per ongeluk een andere bestaande variabele gebruiken. PEP 8 raadt ook de losse letters l, O en I af, omdat die op cijfers kunnen lijken. Enkele extra letters kunnen een berekening veel gemakkelijker te controleren maken.

Belangrijkste punten

  • Begin een naam met een letter of underscore en gebruik daarna letters, cijfers of underscores.
  • Gereserveerde woorden zijn niet beschikbaar; ingebouwde namen kun je opnieuw gebruiken, maar houd je beter beschikbaar.
  • Gebruik beschrijvende namen in snake_case en vermeld nuttige eenheden.
  • Constantenamen met hoofdletters maken een bedoeling duidelijk; ze verhinderen geen hernieuwde toekenning.

3.3 Bijwerken, uitvoeringstabellen en verwisselen

Bij een bijwerking gebruik je de huidige waarde van een variabele om de volgende waarde te berekenen. Door elke bijwerking op volgorde te volgen, kun je uitvoer voorspellen en logische fouten vinden voordat je het programma uitvoert.

Geef een waarde voordat je die bijwerkt

count = count + 1 telt één op bij de oude waarde van de teller. Die verandering is een verhoging. Een variabele die een lopend totaal bijhoudt, is een accumulator; geef die een beginwaarde zoals total = 0 voordat je bedragen optelt.

Samengestelde toekenning combineert een bewerking met een toekenning. Voor getallen heeft x += 3 hetzelfde effect als x = x + 3. De beschikbare vormen zijn onder meer +=, -=, *=, /=, //=, %= en **=.

score = 10
score -= 3
score **= 2
print(score)

De aftrekking verandert score in 7. De machtsverheffing verandert die daarna in 49, dat wordt afgedrukt. Zonder de eerste toekenning zou een bijwerking een niet-gedefinieerde naam proberen te gebruiken en NameError opwerpen.

De gekozen operator beïnvloedt ook het type. Als je begint met n = 7, levert n /= 2 de float 3.5 op. Als je opnieuw begint met n = 7, levert n //= 2 het gehele getal 3 op. Python heeft geen verhogingsoperator ++: x++ is ongeldig. Met ++x pas je tweemaal de unaire plus toe en werk je x niet bij; gebruik x += 1.

Volg één instructie tegelijk

Een uitvoeringstabel legt de waarden van variabelen vast na elke instructie. Schrijf één kolom per variabele en één rij per stap:

price = 20
quantity = 3
total = price * quantity
price = 25
total += 5
print(total, price)
Zojuist uitgevoerde instructiepricequantitytotal
price = 2020Niet toegekendNiet toegekend
quantity = 3203Niet toegekend
total = price * quantity20360
price = 2525360
total += 525365

De uitvoer is 65 25. Door price te veranderen werd de eerdere vermenigvuldiging niet herhaald. De variabele total bevatte de berekende waarde 60; het was geen spreadsheetformule gekoppeld aan price. Pas door de latere bijwerking van de variabele zelf veranderde de waarde in 65.

Bij het volgen met de hand evalueer je de rechterkant met behulp van de rij direct erboven en werk je daarna de naam bij waaraan wordt toegekend. Laat alle andere kolommen onveranderd. Vergelijk je voorspelling met de werkelijke uitvoer van het programma.

Behoud beide waarden bij het verwisselen

Stel dat a = 1 en b = 2. De poging a = b gevolgd door b = a geeft 2 2. Door de eerste toekenning is de oorspronkelijke waarde van a niet meer via die naam bereikbaar, dus kopieert de tweede regel de nieuwe waarde terug.

Een tijdelijke variabele houdt de oorspronkelijke waarde beschikbaar:

a = 1
b = 2
temp = a
a = b
b = temp
print(a, b)

Dit drukt 2 1 af. Je kunt ook a, b = b, a schrijven. Python evalueert beide waarden rechts voordat het een van beide namen links een waarde toekent, zodat beide oorspronkelijke waarden beschikbaar zijn voor de verwisseling. Volg de versie met de tijdelijke variabele als je precies wilt zien waar elke oorspronkelijke waarde behouden blijft.

Belangrijkste punten

  • Een samengestelde toekenning heeft een bestaande waarde nodig.
  • Gebruik += 1 voor een verhoging; ++ werkt een Pythonvariabele niet bij.
  • Een uitvoeringstabel legt waarden na elke instructie vast.
  • Als je een invoervariabele verandert, wordt een eerder opgeslagen resultaat niet opnieuw berekend.
  • De operator in een bijwerking kan het resultaattype veranderen.
  • Voor een verwisseling zijn beide oorspronkelijke waarden nodig: bewaar er tijdelijk één of gebruik gelijktijdige toekenning.
4

Maak berekeningen met de juiste operatoren

Een expressie combineert waarden tot een resultaat. Python gebruikt vertrouwde rekenkundige ideeën, maar je moet vermenigvuldigingen, machten en delingen met de juiste symbolen schrijven. Leer hoe de volgorde van operatoren een berekening bepaalt, hoe gehele deling en rest hoeveelheden verdelen en hoe typen de betekenis van optellen en vermenigvuldigen veranderen. Door expressies in kleine stappen uit te werken, zie je of het resultaat, het type en de betekenis allemaal overeenkomen met je bedoeling.

4.1 Rekensymbolen en resultaattypen

Een expressie evalueert tot één waarde. Dat kan één letterlijke waarde zijn, een variabele of een combinatie zoals 2 + 3. De + is een operator; de waarden waarop die werkt, zijn de operanden.

Kies de operator

De rekenkundige operatoren van Python werken als volgt:

BewerkingExpressieResultaat
Optellen7 + 29
Aftrekken7 - 25
Vermenigvuldigen7 * 214
Delen7 / 23.5
Gehele deling7 // 23
Rest7 % 21
Machtsverheffen7 ** 249

Schrijf vermenigvuldiging expliciet met *. Wiskundige notatie zoals 2x werkt niet als vermenigvuldiging in Python. Schrijf 2 * x of 2 * (x + 1). Met x = 1 probeert 2(x + 1) het gehele getal 2 aan te roepen alsof het een functie is en werpt het TypeError op.

De machtsoperator is **, niet ^. Zo is 7 ** 2 gelijk aan 49, terwijl 7 ^ 2 gelijk is aan 5 omdat het dakje een andere bewerking uitvoert. Een programma kan dus worden uitgevoerd terwijl het een resultaat berekent dat je niet bedoelde.

Voorspel zowel het type als het getal

Delen met / geeft bij gehele operanden een float, ook als de deling precies uitkomt: 6 / 2 is 3.0. Gebruik // voor een geheel aantal volledige groepen: 6 // 2 is 3.

Met twee gehele operanden geven optellen, aftrekken, vermenigvuldigen, gehele deling en rest gehele resultaten. Niet-negatieve gehele machten doen dat ook: 2 ** 10 geeft het exacte gehele getal 1024. Een negatieve exponent verandert dit: 2 ** -1 geeft de float 0.5.

Bij gewone rekenkundige bewerkingen met een geheel getal en een float gebruikt de berekening zwevendekommawaarden. 3 + 4.0 geeft 7.0; 7.0 // 2 geeft 3.0. Gehele deling beschrijft hoe het quotiënt wordt afgerond en belooft niet dat het type altijd int is.

Met een gebroken exponent kun je een wortel van een positief getal berekenen. 4 ** 0.5 geeft 2.0 en 2 ** 0.5 geeft ongeveer 1.4142135623730951.

Maak een berekening met benoemde waarden

Een auto rijdt 287 mijl op 10,25 gallon:

miles = 287
gallons = 10.25
mpg = miles / gallons
print("Miles per gallon:", mpg)

De deling berekent 28.0, dus de uitvoer is Miles per gallon: 28.0. De namen geven de grootheden aan en het afgedrukte label geeft de eenheid van het resultaat aan. Door 28.0 * 10.25 te vermenigvuldigen krijg je 287 mijl terug, als controle op de deling.

Een deler nul leidt bij /, // en % tot een fout. Zo werpt 10 / 0 een ZeroDivisionError op. Controleer bij die fout een variabele die als deler wordt gebruikt.

Spaties rond operatoren veranderen hun betekenis niet: 2+3 en 2 + 3 geven beide 5. Spaties rond = en de meeste operatoren maken de onderdelen gemakkelijker leesbaar. Ze kunnen een operator niet vervangen; 2 x betekent nog steeds geen vermenigvuldiging.

Belangrijkste punten

  • Gebruik * voor vermenigvuldigen en ** voor machtsverheffen.
  • / geeft bij het delen van gehele getallen een float, ook bij een exact quotiënt.
  • // met twee gehele getallen geeft een geheel getal; een float als operand geeft een float als resultaat.
  • Een negatieve gehele exponent levert een float als resultaat op.
  • /, // en % werpen ZeroDivisionError op bij een deler nul.

4.2 Bewerkingsvolgorde en groepering in formules

Python berekent een expressie niet zomaar van links naar rechts. Operatorprioriteit bepaalt welke bewerkingen eerst plaatsvinden. Met haakjes kun je een andere groepering kiezen of de bedoelde groepering duidelijk maken.

Pas de niveaus op volgorde toe

Gebruik voor de hier geïntroduceerde operatoren deze volgorde:

  1. Expressies tussen haakjes.
  2. Machten, **.
  3. Unaire tekens, zoals de min in -x.
  4. Vermenigvuldigingen en delingen: *, /, //, %.
  5. Optellingen en aftrekkingen: +, -.

Evalueer voor 3 + 4 * 2 ** 2 eerst 2 ** 2 om 4 te krijgen. De expressie wordt 3 + 4 * 4. De vermenigvuldiging geeft 16 en de optelling geeft 19. Bij (3 + 4) * 2 ** 2 is de som tussen haakjes 7; de macht is 4; het product is 28.

Operatoren op het niveau van vermenigvuldigen en delen hebben gelijke prioriteit. Werk van links naar rechts: 8 / 2 * 4 betekent (8 / 2) * 4 en geeft 16.0. Vermenigvuldigen gaat niet vóór delen. Zo geeft 100 / 10 / 5 ook 2.0 en geeft 10 - 4 - 3 de waarde 3.

Let goed op bij machten en tekens

Herhaalde machtsverheffingen groeperen van rechts naar links. 2 ** 3 ** 2 betekent 2 ** (3 ** 2). Eerst geeft 3 ** 2 de waarde 9; daarna geeft 2 ** 9 de waarde 512. Groeperen vanaf links zou 64 geven, een ander resultaat.

Een vooropstaand minteken wordt toegepast na een daaropvolgende machtsverheffing: -2 ** 2 betekent -(2 ** 2) en geeft -4. In (-2) ** 2 maken haakjes van min twee het grondtal, zodat het resultaat 4 is. Een minteken na ** kan bij de exponent horen: 2 ** -1 geeft 0.5.

Zet de volledige groepering van een formule om

Voor een gemiddelde moet je beide waarden optellen voordat je door twee deelt:

average = (88 + 92) / 2

De som is 180, daarna geeft de deling 90.0. Zonder haakjes deelt 88 + 92 / 2 alleen 92 en geeft het 134.0.

Een breukstreep groepeert ook alles erboven en eronder. Een teller met a + b en een noemer met c + d worden (a + b) / (c + d). Als je een van beide paren haakjes weglaat, kan veranderen welke termen worden gedeeld.

Hetzelfde probleem zie je bij een temperatuurconversie:

celsius = (98.6 - 32) * 5 / 9

De aftrekking geeft 66.6, de vermenigvuldiging geeft 333.0 en de deling geeft 37.0. Zonder de groepering geeft 98.6 - 32 * 5 / 9 de waarde 80.82222222222222.

Gebruik de juiste groeperingstekens

Ronde haakjes groeperen een expressie. Vierkante en gekrulde haakjes hebben een andere betekenis in Python. Zo levert [2 + 3] * 4 de waarde [5, 5, 5, 5] op, niet 20.

Haakjes rond een bewerking die toch al eerst zou plaatsvinden, laten het resultaat onveranderd: (2 * 3) + 1 en 2 * 3 + 1 geven beide 7. Haakjes die de groepering veranderen, kunnen de waarde veranderen: 2 * (3 + 1) geeft 8. Voeg haakjes toe waar die de betekenis van de berekening duidelijker maken.

Belangrijkste punten

  • Evalueer eerst haakjes, dan machten, unaire tekens, vermenigvuldigingen en delingen, en daarna optellingen en aftrekkingen.
  • Werk binnen een niveau van links naar rechts, behalve bij machten: die groeperen van rechts naar links.
  • Een vooropstaand minteken verschilt van een negatief grondtal: -2 ** 2 en (-2) ** 2 verschillen.
  • Groepeer bij het omzetten van een breuk de volledige teller en noemer.
  • Gebruik ronde haakjes om berekeningen te groeperen.

4.3 Volledige groepen en de rest

Gehele deling en rest beantwoorden twee samenhangende vragen: hoeveel volledige groepen passen erin en wat blijft er na die groepen over? Voor niet-negatieve gehele hoeveelheden is dit paar nuttig bij tijd, geld, verpakken en cijfers.

Bepaal quotiënt en rest samen

17 // 5 geeft 3, het aantal volledige groepen van vijf. 17 % 5 geeft 2, de hoeveelheid die overblijft. Met de twee resultaten kun je de oorspronkelijke hoeveelheid reconstrueren:

print((17 // 5) * 5 + 17 % 5)

De expressie geeft 17: drie groepen van vijf plus twee. Algemeen geldt voor gehele getallen en een deler ongelijk aan nul dat (a // b) * b + a % b gelijk is aan a. Gebruik die relatie om beide antwoorden te controleren.

Verdeel praktische hoeveelheden

Voor 135 minuten:

hours = 135 // 60
minutes = 135 % 60

Er zijn 2 volledige uren en 15 minuten over. De deler is 60 omdat één uur 60 minuten bevat. Delen met / geeft 2.25, wat uren met een breukdeel uitdrukt; het geeft de overgebleven minuten niet afzonderlijk.

Dezelfde structuur werkt met een andere groepsgrootte:

HoeveelheidVolledige groepenRest
347 cent, 100 cent per euro347 // 100 geeft 3 euro347 % 100 geeft 47 cent
75 eieren, 12 per doos75 // 12 geeft 6 volle dozen75 % 12 geeft 3 eieren

Het aantal dozen is het aantal volle dozen. Als je ook voor de overgebleven eieren een doos nodig hebt, is dat een andere vraag dan hoeveel volledige groepen erin passen.

Gebruik plaatswaarde en pariteit

Voor een positief geheel getal haalt delen door tien het laatste cijfer apart. 1234 % 10 geeft 4 en 1234 // 10 geeft 123. Door 123 * 10 + 4 te berekenen krijg je 1234 terug.

Voor elk geheel getal n is n % 2 gelijk aan 0 als het even is en aan 1 als het oneven is. Dit werkt ook voor negatieve getallen: -7 % 2 is 1. Voor gehele getallen en een positieve deler b ligt de rest in het bereik van 0 tot en met b - 1.

Begrijp delingen met negatieve getallen

Gehele deling rondt naar beneden af, richting min oneindig en niet richting nul. Omdat min zeven gedeeld door twee gelijk is aan -3,5, geeft -7 // 2 de waarde -4. De rest is dan 1, omdat -4 * 2 + 1 gelijk is aan -7.

Een rest ongelijk aan nul heeft het teken van de deler. Met een negatieve deler geeft 7 % -2 de waarde -1 en geeft 7 // -2 de waarde -4. Ook hiermee krijg je het oorspronkelijke getal terug: -4 * -2 + -1 is 7.

Dit verschilt van een quotiënt omzetten met int(): int(-7 / 2) geeft -3 omdat de conversie afkapt richting nul.

Beide operatoren accepteren ook floats. 7.5 // 2 is 3.0 en 7.5 % 2 is 1.5. Ze hebben dezelfde prioriteit als * en /, dus 5 * 3 + 17 % 5 geeft 17. De operator % betekent hier rest, geen procent: bereken 8 procent van een prijs met price * 0.08 of price * 8 / 100.

Belangrijkste punten

  • // geeft een naar beneden afgerond quotiënt; % geeft de bijbehorende rest.
  • Voor gehele getallen levert (a // b) * b + a % b weer a op als b niet nul is.
  • Kies een deler die past bij de groepsgrootte of eenheidsomrekening.
  • Gehele deling rondt negatieve quotiënten naar beneden af, niet richting nul.
  • Een rest ongelijk aan nul heeft het teken van de deler.
  • Een rest is iets anders dan een percentage.

4.4 Voeg tekst samen, herhaal tekst en controleer typen

Het symbool van een operator is maar een deel van de betekenis. Python gebruikt ook de typen van de operanden. De operatoren + en * werken met strings, maar voeren daar tekstbewerkingen uit.

Voeg strings samen met plus

Concatenatie voegt een string toe aan het einde van een andere:

print("ab" + "cd")
print("Hello" + "Ada")
print("Hello " + "Ada")

Deze regels drukken abcd, HelloAda en Hello Ada af. Concatenatie voegt zelf geen spatie toe. De spatie in het derde resultaat komt van het laatste teken van "Hello ".

Cijfertekens volgen dezelfde regel: "5" + "3" geeft de string "53". Zonder aanhalingstekens geeft 5 + 3 het gehele getal 8. Kies getalswaarden als je wilt rekenen en strings als je tekst bedoelt.

Herhaal een string met vermenigvuldiging

Een string vermenigvuldigd met een geheel getal herhaalt zijn tekens. "3" * 2 geeft "33", terwijl 3 * 2 de waarde 6 geeft. Het aantal herhalingen mag aan beide kanten staan: 3 * "ab" geeft "ababab". Nul keer herhalen geeft de lege string, dus "ab" * 0 is "".

Het aantal herhalingen moet een geheel getal zijn. "ab" * 2.5 werpt TypeError op, net als "ab" * "cd". Bij deze bewerking bestaat geen gebroken aantal kopieën.

Combineer bewerkingen op volgorde

Ook voor deze expressies heeft vermenigvuldigen een hogere prioriteit dan optellen:

print("-" * 4 + "Menu" + "-" * 4)

Eerst maakt elke herhaling "----". Daarna voegen de optellingen de drie strings samen tot ----Menu----. De volgorde van het samenvoegen behoudt de volgorde van hun tekens.

Voor een berekening die onderdeel wordt van een string:

print("7" + str(3 * 2))

De binnenste berekening geeft het gehele getal 6. str(6) maakt de string "6". Ten slotte levert concatenatie "76" op. Het resultaat is geen 13, omdat de laatste + twee strings als operanden heeft.

Los onverenigbare typen bewust op

"Age: " + 30 werpt TypeError op. Zet het gehele getal om voordat je de strings samenvoegt:

print("Age: " + str(30))

Dit levert Age: 30 op. Je kunt ook print("Age:", 30) gebruiken, dat de twee waarden met een spatie ertussen toont. Dat is het gedrag van print() met afzonderlijke argumenten, geen optelling van tekst.

Gehele getallen en floats kun je combineren in gewone rekenkundige bewerkingen: 2 * 3.0 geeft de float 6.0. Python zet een string met een getal bij + niet op dezelfde manier om in een getal. Als je met "30" moet rekenen, zet het dan eerst om naar een numeriek type.

Aftrekken werkt niet op deze stringoperanden. "10" - 3 werpt TypeError op, ook al zouden de tekens 10 een getal kunnen beschrijven. Om een expressie met verschillende typen te voorspellen, bepaal je het type van elke operand, evalueer je de bewerkingen met hogere prioriteit en controleer je de typen opnieuw bij de volgende bewerking. Een conversie kan veranderen welke regel de volgende operator volgt.

Belangrijkste punten

  • + bij strings voegt tekens samen zonder spaties toe te voegen.
  • * bij een string herhaalt tekst een geheel aantal keer.
  • Zet voor het samenvoegen van tekst een getal om met str() of geef het afzonderlijk aan print().
  • Volg bij een expressie met verschillende typen zowel de operatorprioriteit als de typen van de operanden.
5

Lees gegevens, zet ze om en toon bruikbare uitvoer

Een volledig programma heeft een manier nodig om gegevens te ontvangen en een resultaat te melden. Invoer komt binnen als tekst, dus bepaal of het programma die tekst moet bewaren of in een getal moet omzetten. Voer de berekening uit met waarden van de juiste typen en toon het resultaat met een duidelijk label en nuttige spaties. Met conversies, afronden en de opties van print() kan een kort programma getypte antwoorden omzetten in uitvoer die iemand kan begrijpen en controleren.

5.1 Conversies maken nieuwe waarden

Typeconversie maakt een waarde van een ander type. Met de functies int(), float() en str() kun je de vorm kiezen die voor de volgende bewerking nodig is.

Bewaar het resultaat van de conversie
x = "42"
int(x)
print(type(x))

Dit drukt nog steeds <class 'str'> af. De conversie heeft een geheel getal gemaakt, maar geen toekenning heeft het bewaard. Schrijf x = int(x) om x naar dat gehele getal te laten verwijzen, of ken het toe aan een andere naam als je beide vormen wilt bewaren.

Kies een numerieke conversie

int() accepteert een string met een geheel getal, eventueel met een teken en spaties eromheen. int("42"), int("-12") en int(" 42 ") leveren 42, -12 en 42 op.

Een decimale punt in een string verhindert directe conversie naar een geheel getal. int("3.5") en int("4.0") werpen ValueError op; dat geldt ook voor int("abc") en int(""). Het feit dat 4,0 wiskundig een geheel getal is, maakt van "4.0" nog geen string in de vorm van een geheel getal.

float() accepteert decimale tekst en exponentnotatie. float("3.5") geeft 3.5, float("3") geeft 3.0 en float("1e3") geeft 1000.0. Het zet ook gehele getallen om: float(7) geeft 7.0. Een decimale komma mislukt: float("3,5") werpt ValueError op.

Kies bewust voor afkappen of afronden

Als je een float omzet naar int, wordt het breukdeel richting nul verwijderd. int(3.99) geeft 3 en int(-3.99) geeft -3. Het dichtstbijzijnde gehele getal wordt niet gekozen. Om decimale tekst om te zetten en daarna af te kappen, gebruik je int(float("3.5")), dat 3 geeft.

round() kiest een dichtstbijzijnde waarde. round(3.7) geeft het gehele getal 4; round(3.14159, 2) geeft de float 3.14. Het tweede argument bepaalt het aantal decimalen.

Als een waarde precies halverwege ligt, kiest Python de even buur: round(2.5) geeft 2, terwijl round(3.5) de waarde 4 geeft. Decimale breuken die als float zijn opgeslagen, liggen mogelijk niet precies halverwege. round(2.675, 2) geeft 2.67 vanwege de binaire representatie.

ExpressieResultaatReden
int(-3.5)-3Afkappen richting nul
round(-3.5)-4Dichtstbijzijnde gehele getal; bij gelijke afstand naar even
-7 // 2-4Quotiënt naar beneden afronden

Deze bewerkingen beantwoorden verschillende vragen. Kies de bewerking die bij het bedoelde resultaat past, vooral als negatieve waarden mogelijk zijn.

Zet om in tekst om samen te voegen

str(42) levert "42" op en str(3.0) levert "3.0" op. Na de conversie voegt + hun tekens samen:

print("7" + "3")
print(int("7") + int("3"))
print(str(7) + str(3))
print(float("7") + 3)

De uitvoer is 73, 10, 73 en 10.0. De conversies bepalen of de laatste + tekst of getallen ontvangt.

Een ValueError wijst op ongeschikte inhoud voor een conversie, zoals int("abc"). Een TypeError wijst op een bewerking die niet verenigbaar is met de operanden, zoals "5" + 5. Gebruik dat verschil om te bepalen of je de invoertekst moet onderzoeken of de bewerking moet veranderen.

Belangrijkste punten

  • Een conversie geeft een nieuwe waarde terug; ken die toe als je haar wilt bewaren.
  • int() kapt floats af richting nul en vereist tekst in de vorm van een geheel getal voor directe stringconversie.
  • float() accepteert tekst met een decimale punt of exponent.
  • round() gebruikt de dichtstbijzijnde waarde en kiest bij exact gelijke afstand de even waarde.
  • str() levert tekst voor concatenatie.
  • ValueError en TypeError duiden verschillende soorten fouten aan.

5.2 Bepaal wat print() toont

print() toont waarden zodat iemand ze kan lezen. De argumenten zijn de waarden of expressies tussen de haakjes. Komma’s scheiden de argumenten; Python evalueert ze voordat het de resultaten toont.

Toon waarden met duidelijke labels
print("Total:", 5)
print(3 + 4)
print("3 + 4")

De regels tonen Total: 5, 7 en 3 + 4. Een label vertelt de lezer wat een waarde betekent. Een berekening zonder aanhalingstekens wordt geëvalueerd; een expressie tussen aanhalingstekens wordt als tekst getoond.

Standaard zet print() één spatie tussen argumenten en eindigt het met een nieuwe regel. Het zet elke waarde om voor weergave, zodat print("Total:", 5) tekst en een geheel getal kan combineren zonder expliciet str() te gebruiken.

Vergelijk dit met print("Total:" + str(5)), dat Total:5 afdrukt. Hier maakt de + één string voordat print() die ontvangt. Concatenatie voegt niet automatisch een spatie toe en er is maar één argument om te tonen.

Stel de scheidingstekst in

Het benoemde argument sep bepaalt welke tekst tussen argumenten komt:

print("a", "b", sep="-")
print(1, 2, 3, sep=", ")
print("A", 12, sep="")

De uitvoer is:

a-b
1, 2, 3
A12

Gebruik de naam sep. Als je print("a", "b", "-") schrijft, geef je een derde waarde mee, dus is het resultaat a b -. Een lege scheidingstekst voegt de getoonde argumenten direct samen; spaties die al binnen hun strings staan worden niet verwijderd.

Stel de regelafsluiting in

Het benoemde argument end verandert wat na de laatste waarde komt. Standaard is dat een nieuwe regel. Een lege afsluiting houdt de volgende uitvoer op dezelfde regel:

print("a", end="")
print("b")

Dit toont ab op één regel. Je kunt leestekens en een nieuwe regel combineren:

print("Hello,", "Ada", end="!\n")

De uitvoer is Hello, Ada! gevolgd door een nieuwe regel. sep geldt tussen argumenten binnen één aanroep; end geldt na het laatste argument van die aanroep. Ze bepalen verschillende plaatsen.

Voeg regeleinden toe en kies de weergegeven precisie

Een aanroep van print() zonder argumenten drukt een lege regel af. Een \n binnen een string maakt een regeleinde binnen die string, zoals in print("Line 1\nLine 2"). Herhaalde tekst kan een scheidingslijn vormen: print("=" * 20) toont twintig isgelijktekens.

Python toont een float in een korte vorm die de opgeslagen waarde weergeeft. print(1 / 3) toont 0.3333333333333333. Om een afgeronde waarde te tonen, bereken je die eerst binnen de aanroep: print(round(1 / 3, 2)) toont 0.33.

Afronden garandeert geen vast aantal zichtbare decimalen. round(2.50, 2) wordt weergegeven als 2.5, omdat de float nullen aan het einde niet als weergave-instructie opslaat. Gebruik bij het controleren van een programma de uitvoer precies zoals Python die produceert.

Belangrijkste punten

  • print() evalueert zijn argumenten en toont strings zonder de aanhalingstekens eromheen.
  • Standaard staat er één spatie tussen argumenten en volgt aan het einde een nieuwe regel.
  • sep verandert de scheiding tussen argumenten; end verandert wat op het laatste argument volgt.
  • print() zonder argumenten voegt een lege regel toe.
  • Afronden verandert de precisie van een waarde, niet het vaste aantal afgedrukte decimalen.

5.3 Bouw en test een invoer–verwerking–uitvoerprogramma

input() toont een invoervraag, wacht totdat iemand iets typt en op Enter drukt, en geeft daarna de getypte tekst terug als string zonder de Enter. Een kort, volledig programma leest de benodigde gegevens, verwerkt ze en toont een resultaat.

Lees tekst en zet getallen om
name = input("What is your name? ")
print("Hello", name)

De spatie aan het einde van de invoervraag scheidt het getypte antwoord van de vraag. De variabele slaat tekst als tekst op, ook als de gebruiker cijfers typt. Als je 30 invoert bij input(), levert dat "30" op, niet het gehele getal 30.

Kies een conversie voordat je gaat rekenen:

age = int(input("Age in whole years: "))
print("Next year:", age + 1)

De binnenste input() wordt eerst uitgevoerd. Als de gebruiker 30 typt, geeft die "30" terug; int() zet dat om in 30; de toekenning bewaart het gehele getal. De optelling levert daarna 31 op.

Gebruik float(input(...)) als waarden met breukdelen zijn toegestaan. Een invoervraag moet aangeven wat voor antwoord wordt verwacht. Als je 2.5 of thirty invoert voor een conversie met int(), wordt ValueError opgeworpen. Ook 98,6 invoeren voor een conversie met float() mislukt; het decimale scheidingsteken moet een punt zijn.

Een ontbrekende conversie werpt niet altijd een fout op. Als twee aanroepen voor invoer 5 en 3 ontvangen, worden hun niet-omgezette waarden als strings opgeteld en leveren ze 53 op. Beide operanden hebben een type dat + ondersteunt, maar het is de verkeerde bewerking om hoeveelheden op te tellen.

Doorloop een volledige berekening

Het patroon invoer–verwerking–uitvoer maakt de hoofdstappen gemakkelijk te controleren:

# Convert a temperature from Fahrenheit to Celsius.
fahrenheit = float(input("Temperature in °F: "))
celsius = (fahrenheit - 32) * 5 / 9
print(fahrenheit, "°F is", round(celsius, 1), "°C")

Bij invoer 98.6 leest het programma de float 98.6. Het trekt 32 af en krijgt 66.6, vermenigvuldigt met 5 en krijgt 333.0, en deelt door 9 en krijgt 37.0. De weergegeven regel is 98.6 °F is 37.0 °C. Invoer 50 wordt 50.0, dus is de regel 50.0 °F is 10.0 °C.

Hier is een programma met gehele gegevens:

total_minutes = int(input("Enter a whole number of minutes: "))
hours = total_minutes // 60
minutes = total_minutes % 60
print("Hours:", hours, "Minutes:", minutes)

Invoer 135 levert Hours: 2 Minutes: 15 op. De labels werken voor nul, één en grotere resultaten zonder dat de formulering verandert. De twee verwerkingsregels gebruiken hetzelfde oorspronkelijke totaal; een waarde toekennen aan hours haalt niets weg uit total_minutes.

Test gewone waarden en grenswaarden

Kies invoer met antwoorden die je met de hand kunt berekenen. Voor het temperatuurprogramma moet 32 als resultaat 0.0 °C opleveren en 212 als resultaat 100.0 °C. Test voor minuten 0, 59 en 60: hiermee controleer je de beginwaarde en de overgang van geen volledig uur naar één volledig uur.

Test ook een gebruikelijke waarde zoals 135. Vergelijk de exacte labels, spaties, numerieke resultaten en typen met je voorspelling. Als de code wordt uitgevoerd maar het resultaat verkeerd is, volg dan de opgeslagen waarden en de bewerkingsvolgorde. Als een conversie mislukt, onderzoek dan de getypte tekst en het type waarom je invoervraag vraagt.

Belangrijkste punten

  • input() geeft tekst terug, ook als een gebruiker cijfers typt.
  • Zet invoer om voordat je numerieke berekeningen uitvoert.
  • Gebruik duidelijke invoervragen en voorzie de uitvoer van labels.
  • Scheid het lezen van gegevens, het berekenen en het tonen van het resultaat.
  • Test gewone waarden en grenswaarden met antwoorden die je met de hand hebt berekend.

Variabelen en expressies in Python: voorbeelden

5 Walkthroughs

1

Voer een klein programma uit en herstel het

13 stappen
Wissel tussen de shell en een opgeslagen script, lees een fout en licht een regel toe met commentaar.
  1. 1
    IntroductieBegin met een zichtbare voorspelling

    Een programma kan een waarde berekenen zonder die te tonen. Voorspel voordat je code uitvoert twee dingen: wat Python zal doen en wat iemand zal zien.

    We vergelijken eerst een experiment in de shell met een opgeslagen script. Daarna bekijken we fouten en commentaar. Houd het onderscheid tussen code uitvoeren en zichtbare uitvoer in gedachten: een regel kan met succes worden uitgevoerd zonder tekst op het scherm te zetten.

  2. 2
    VoorbeeldProbeer één expressie in de shell

    Voer bij de prompt >>> van de Pythonshell 9 * 3 in. Python evalueert de expressie en toont automatisch 27.

    De prompt wordt door de shell gegeven; je typt alleen de expressie. Een prompt ... betekent dat Python wacht op meer van dezelfde instructie. De shell is handig voor een snelle controle als deze, terwijl een opgeslagen script een reeks klaarhoudt om opnieuw uit te voeren.

  3. 3
    UitlegLaat een script zijn berekening tonen

    Een script met alleen 9 * 3 berekent het product, maar toont niets. Om het te tonen, schrijf je:

    print(9 * 3)
    print("Calculation finished")
    

    De uitvoer is 27, gevolgd door Calculation finished op de volgende regel. De interpreter volgt de volgorde van de instructies. Voer het script uit met het uitvoercommando van de editor of met een terminalcommando; typ dat terminalcommando niet bij de Pythonprompt.

  4. 4
    UitdagingVoorspel wat er echt wordt getoond

    Een opgeslagen script bevat deze twee regels. Wat wordt er getoond?

    11 + 5
    print("Ready to check")
    

    ---reveal---

    Alleen Ready to check verschijnt. De eerste regel berekent 16, maar drukt het resultaat niet af. Als je die eerste expressie rechtstreeks in de interactieve shell zou invoeren, zou de shell de waarde automatisch tonen. Het verschil komt door de plek waar de expressie wordt uitgevoerd.

  5. 5
    UitlegOnderscheid een gestopte uitvoering van een verkeerd antwoord

    Een syntaxisfout betekent dat Python het script niet kan lezen, zodat de uitvoering nooit begint. Een uitvoeringsfout ontstaat nadat de uitvoering is begonnen en stopt die bij de mislukte bewerking.

    Een programma met een logische fout kan zonder melding worden uitgevoerd. Een verkeerde groepering in een formule levert bijvoorbeeld nog steeds een geldige berekening op. Vergelijk het resultaat met een berekening met de hand in plaats van te wachten tot Python de fout aanwijst.

  6. 6
    VoorbeeldLees eerst de laatste foutregel

    Bekijk deze code:

    distance = 21
    print(distnace)
    

    Een stacktrace eindigt met de fout NameError en de niet-gedefinieerde naam distnace. Lees die laatste melding en bekijk daarna de gemelde regel erboven. De naam waaraan eerder een waarde is toegekend, is distance; de twee schrijfwijzen verschillen. Verbeter de opzoeking tot print(distance), dat 21 toont.

  7. 7
    TipKies de volgende nuttige controle

    Laat het fouttype je zoektocht beperken. Controleer bij NameError de spelling, hoofdletters en of eerder een waarde aan de variabele is toegekend. Bekijk bij TypeError de typen die de bewerking gebruikt. Bekijk bij ValueError de tekst die aan een conversie is gegeven.

    Als de gemelde regel correct lijkt, controleer dan de vorige regel op een niet-gesloten aanhalingsteken of haakje. Herstel één fout en voer het programma opnieuw uit om het volgende bereikbare probleem te vinden.

  8. 8
    UitdagingBlijft de eerste melding zichtbaar?

    Wat wordt afgedrukt voordat dit programma stopt? Aan items is geen waarde toegekend.

    print("Checking")
    print(items)
    print("Finished")
    

    ---reveal---

    Checking wordt afgedrukt. De volgende regel werpt NameError op, waardoor de laatste regel niet wordt uitgevoerd. Dit is een uitvoeringsfout: Python kon het script lezen, maar kon tijdens de uitvoering geen waarde opzoeken. Eerdere uitvoer blijft zichtbaar.

  9. 9
    UitlegVoeg de betekenis toe die een lezer nodig heeft

    Commentaar begint met # buiten een string en loopt door tot het einde van de regel. Het kan de reden voor een waarde uitleggen:

    service_rate = 0.03  # 3% processing fee
    

    Het commentaar vertelt een lezer wat het tarief voorstelt. Python negeert het bij het uitvoeren van de toekenning. Laat minstens twee spaties vóór een commentaarteken achter code staan en één spatie erna. Een duidelijke naam en nuttig commentaar vullen elkaar aan.

  10. 10
    UitdagingZoek de grens van het commentaar

    Wat drukt deze regel af en welke woorden negeert Python?

    print("Order #16")  # Packing label
    

    ---reveal---

    De regel drukt Order #16 af. Het hekje binnen de aanhalingstekens hoort bij de string. Het tweede hekje begint het commentaar, dus Packing label wordt genegeerd. De positie van een teken binnen of buiten een string verandert hoe Python het leest.

  11. 11
    TipZorg dat commentaar na een wijziging blijft kloppen

    Als de verwerkingskosten veranderen van 3 procent naar 5 procent, verander dan zowel service_rate in 0.05 als het commentaar in 5% processing fee.

    Python waarschuwt je niet voor verouderd commentaar, omdat commentaar niet wordt uitgevoerd. Een lezer kan er nog steeds door worden misleid. Voor een tijdelijke test kan # een instructie uitschakelen; verwijder oude uitgeschakelde regels wanneer ze je niet meer helpen het programma te begrijpen.

  12. 12
    UitdagingCombineer uitvoer, commentaar en een fout

    Wat verschijnt er wanneer dit opgeslagen script wordt uitgevoerd? Ga ervan uit dat er niet eerder namen zijn gedefinieerd.

    print("Status #1")  # Show the status.
    Print("Done")
    

    ---reveal---

    Het commentaar wordt genegeerd en Status #1 wordt afgedrukt. Daarna werpt Print een NameError op, omdat Python onderscheid maakt tussen namen met hoofdletters en kleine letters. De ingebouwde naam is print. De geldige eerste uitvoer blijft zichtbaar omdat de fout tijdens de uitvoering optreedt.

  13. 13
    SamenvattingGebruik de uitvoer als aanwijzing

    De shell toont expressiewaarden, terwijl een script een expliciete uitvoeraanroep nodig heeft. Bij een uitvoeringsfout blijft eerdere uitvoer zichtbaar; een syntaxisfout verhindert dat het script start.

    Schrijf voor je volgende korte programma de verwachte uitvoer op voordat je het uitvoert. Als de voorspelling niet klopt, gebruik dan het fouttype of volg de waarden stap voor stap om de volgende controle te kiezen. Richt commentaar op betekenis die de code niet al uitlegt.

2

Lees het type af uit de schrijfwijze van een waarde

14 stappen
Vergelijk letterlijke waarden, onderzoek typen en maak strings met de tekens die je bedoelt.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieWaarden die op elkaar lijken, kunnen zich anders gedragen
  2. 2
    VoorbeeldOnderzoek drie vormen van dezelfde cijfers
  3. 3
    VerbandKies gegevens die bij het doel passen
  4. 4
    UitdagingOnderscheid booleaanse tekst van een booleaanse waarde
  5. 5
    UitlegSchaal een float met exponentnotatie
  6. 6
    KernpuntEen komma verandert de gegevens
  7. 7
    UitdagingSchrijf een kleine decimale waarde
  8. 8
    TipBegrijp de kleine extra cijfers
  9. 9
    VoorbeeldKies buitenste aanhalingstekens die bij de boodschap passen
  10. 10
    UitlegMaak een regeleinde onderdeel van een string
  11. 11
    UitdagingVoorspel namen met en zonder aanhalingstekens
  12. 12
    KernpuntEen spatie telt nog steeds als data
  13. 13
    UitdagingVolg de schrijfwijze naar het gedrag
  14. 14
    SamenvattingControleer de waarde vóór de bewerking
3

Volg een waarde door toekenningen heen

14 stappen
Lees toekenningen, verbeter namen en volg bijwerkingen en verwisselingen zonder een oude waarde te verliezen.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieVolg één moment tegelijk
  2. 2
    VoorbeeldEerst evalueren, dan toekennen
  3. 3
    KernpuntEen opgeslagen resultaat bewaart geen formule
  4. 4
    UitdagingVolg een kopie vóór een hernieuwde toekenning
  5. 5
    VerbandKies een leesbare naam
  6. 6
    VoorbeeldHoud ingebouwde namen beschikbaar
  7. 7
    UitdagingHerstel een naam zonder de betekenis te veranderen
  8. 8
    UitlegWerk een bestaande waarde bij
  9. 9
    VoorbeeldSchrijf alleen op wat is veranderd
  10. 10
    UitdagingBekijk hoe een bijwerking het type verandert
  11. 11
    UitlegBewaar een oorspronkelijke waarde voordat je die overschrijft
  12. 12
    UitlegLees een gelijktijdige verwisseling
  13. 13
    UitdagingCombineer namen, kopieën en bijwerkingen
  14. 14
    SamenvattingVolg huidige waarden, geen bedoelingen
4

Evalueer expressies één bewerking tegelijk

18 stappen
Kies rekenkundige en stringbewerkingen, pas groepering toe en verdeel hoeveelheden in volledige groepen en resten.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieVolg zowel volgorde als type
  2. 2
    UitlegKoppel het symbool aan de bewerking
  3. 3
    VoorbeeldHoud het type bij het quotiënt
  4. 4
    UitdagingKies een machtsverheffing en het resultaat
  5. 5
    VoorbeeldVoer eerst de bewerking met de hoogste prioriteit uit
  6. 6
    KernpuntGelijke prioriteit betekent van links naar rechts
  7. 7
    UitlegMachten groeperen in de andere richting
  8. 8
    UitdagingHerstel een berekening met groepering
  9. 9
    VoorbeeldVerdeel een hoeveelheid in volledige groepen
  10. 10
    UitlegNaar beneden afronden, ook onder nul
  11. 11
    VerbandGebruik cijfers als groepen van tien
  12. 12
    UitdagingBepaal beide delen van de tijd
  13. 13
    UitlegTekst gebruikt dezelfde symbolen anders
  14. 14
    VoorbeeldMaak een rand voordat je die samenvoegt
  15. 15
    UitdagingZet het binnenste resultaat om in tekst
  16. 16
    TipZoek een onverenigbare bewerking
  17. 17
    UitdagingCombineer rest, machtsverheffen en tekst
  18. 18
    SamenvattingControleer het tussenresultaat
5

Zet getypte gegevens om in een gecontroleerd resultaat

15 stappen
Kies conversies, bepaal de uitvoer en bouw een programma dat lezen, berekenen en tonen van elkaar scheidt.

Sla deze les op om elke Walkthrough stap voor stap te volgen.

  1. 1
    IntroductieLees, bereken en leg daarna het resultaat uit
  2. 2
    UitlegBewaar de nieuwe waarde van een conversie
  3. 3
    VoorbeeldEen float en decimale tekst worden anders omgezet
  4. 4
    UitdagingMaak onderscheid tussen afkappen en afronden
  5. 5
    UitlegGeef afzonderlijke waarden door aan print
  6. 6
    VoorbeeldVerander de scheidingstekst en de regelafsluiting
  7. 7
    UitdagingVoorspel twee print-aanroepen samen
  8. 8
    TipRond een waarde af zonder opgevulde tekst te beloven
  9. 9
    VoorbeeldLees een geheel getal als invoer
  10. 10
    VoorbeeldBereken twee resultaten uit hetzelfde totaal
  11. 11
    VoorbeeldGeef de eindwaarden labels
  12. 12
    UitdagingZoek de ontbrekende conversie
  13. 13
    VerbandTest de plek waar het antwoord verandert
  14. 14
    UitdagingCombineer conversie, deling en uitvoer
  15. 15
    SamenvattingControleer elke stap afzonderlijk

Variabelen en expressies in Python: oefenvragen

50 Oefenvragen in 5 sets

Set 1: Lees korte programma’s en voorspel hun resultaten10 Oefenvragen

Vraag 1 van 10

Een opgeslagen script bevat alleen 18 - 6. Wat verschijnt er wanneer het wordt uitgevoerd?
  1. Het getal 12 verschijnt.
  2. De expressie 18 - 6 verschijnt.
  3. Er wordt niets getoond.
  4. Er verschijnt een syntaxisfout.
Toon antwoordVerberg antwoord
Antwoord: C
Een script evalueert een losse expressie zonder het resultaat te tonen, dus verschijnt er niets. De interactieve shell zou voor dezelfde expressie 12 tonen, waardoor dit gemakkelijk te verwarren is. Gebruik in een script print(18 - 6) als het resultaat zichtbaar moet zijn.

Vraag 2 van 10

Een script bevat deze code. Welke uitvoer verschijnt voordat het stopt?

print("Ready")
print(missing_total)
print("Done")

Aan missing_total is geen waarde toegekend.

  1. Alleen Ready
  2. Ready en Done
  3. Helemaal geen uitvoer
  4. Alleen Done
Toon antwoordVerberg antwoord
Antwoord: A
De eerste instructie drukt Ready af. De volgende instructie werpt NameError op, zodat de uitvoering de laatste print-aanroep nooit bereikt. Dit is een uitvoeringsfout, waarbij eerdere uitvoer behouden blijft; een syntaxisfout zou verhinderen dat het hele script start.

Vraag 3 van 10

Welk type geeft type("False")?
  1. bool
  2. int
  3. float
  4. str
Toon antwoordVerberg antwoord
Antwoord: D
Door de aanhalingstekens is "False" een string met vijf tekens, dus is het type str. De booleaanse letterlijke waarde False heeft geen aanhalingstekens en begint met een hoofdletter. Een woord dat binnen een string op een booleaanse waarde lijkt, blijft tekst; Python interpreteert de tekens niet opnieuw als code.

Vraag 4 van 10

Welke Pythonexpressie berekent vijf tot de derde macht?
  1. 5 ^ 3
  2. 5 ** 3
  3. 5 * 3
  4. 5 + 3
Toon antwoordVerberg antwoord
Antwoord: B
** is de machtsoperator van Python, dus 5 ** 3 berekent 125. Het dakje ^ voert een andere bewerking uit en betekent geen machtsverheffing. Vermenigvuldigen met drie zou vijf drie keer optellen, terwijl je bij de derde macht drie keer vijf met elkaar vermenigvuldigt.

Vraag 5 van 10

Wat toont print("North\nSouth")?
  1. North\nSouth op één regel
  2. North en South op afzonderlijke regels
  3. North South op één regel
  4. NorthnSouth op één regel
Toon antwoordVerberg antwoord
Antwoord: B
De escapesequentie \n staat voor een nieuwe regel binnen de string, dus begint South op een tweede regel. Python drukt de backslash en n hier niet als twee zichtbare tekens af. Om een letterlijke backslash vóór n te behouden, zou de string in de broncode een dubbele backslash nodig hebben.

Vraag 6 van 10

Wat drukt dit af?

stock = 14
saved = stock
stock = 9
print(stock, saved)
  1. 9 9
  2. 14 9
  3. 14 14
  4. 9 14
Toon antwoordVerberg antwoord
Antwoord: D
Bij saved = stock ontvangt de naam saved de huidige waarde 14. Door de hernieuwde toekenning aan stock verwijst daarna alleen die naam naar 9, dus is de uitvoer 9 14. Bij 9 9 zou de eerdere toekenning worden opgevat als een blijvende koppeling tussen namen, en dat is ze niet.

Vraag 7 van 10

Wat is een geldige variabelenaam in snake_case voor een aantal beschikbare zitplaatsen?
  1. available_seats
  2. available-seats
  3. 2available_seats
  4. available seats
Toon antwoordVerberg antwoord
Antwoord: A
available_seats verbindt woorden in kleine letters met een underscore en begint met een letter. Een koppelteken wordt gelezen als een aftrekking, dus available-seats is niet één variabelenaam. Spaties mogen niet binnen een naam voorkomen en een cijfer mag niet het eerste teken zijn.

Vraag 8 van 10

Welke waarde en welk type levert 24 / 6 op?
  1. 4, een geheel getal
  2. 0, een geheel getal
  3. 4.0, een float
  4. 0.0, een float
Toon antwoordVerberg antwoord
Antwoord: C
Delen met / geeft bij gehele operanden een float, dus levert 24 / 6 de waarde 4.0 op. Dat de deling precies uitkomt, verandert die typeregel niet. 24 // 6 zou daarentegen het gehele getal 4 opleveren, terwijl % de rest nul zou bepalen in plaats van het quotiënt.

Vraag 9 van 10

Welke waarde levert 40 - 18 / 3 * 2 + 1 op?
  1. 29.0
  2. 38.0
  3. 15.666666666666666
  4. 28.0
Toon antwoordVerberg antwoord
Antwoord: A
De deling en vermenigvuldiging hebben gelijke prioriteit en gaan van links naar rechts: 18 / 3 geeft 6.0, waarna vermenigvuldigen met 2 de waarde 12.0 geeft. De resterende berekening is 40 - 12.0 + 1, ofwel 29.0. Als je eerst 3 * 2 zou vermenigvuldigen, zou je ten onrechte een noemer van zes maken.

Vraag 10 van 10

Wat toont print("Zone", 4, sep="-")?
  1. Zone 4
  2. Zone4-
  3. Zone 4 -
  4. Zone-4
Toon antwoordVerberg antwoord
Antwoord: D
sep="-" zet een koppelteken tussen de twee weergegeven argumenten, wat Zone-4 geeft. Het voegt het koppelteken niet na de laatste waarde toe; de afsluiting is nog steeds de standaard nieuwe regel. Zonder het benoemde argument sep zou de gewone spatie tussen de argumenten blijven staan.
Set 2: Werk met veranderende waarden en getypte gegevens10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Wat toont dit?

print("Bay #7")  # Pickup point
  1. Bay
  2. Bay #7
  3. Bay #7 Pickup point
  4. Bay Pickup point
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een pasnummer is "00482" en wordt niet in berekeningen gebruikt. Welk type bewaart het nummer het best?
  1. Een geheel getal
  2. Een float
  3. Een booleaanse waarde
  4. Een string
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Welke waarde heeft cost aan het einde?

units = 6
rate = 4
cost = units * rate
units = 8
  1. 24
  2. 32
  3. 8
  4. 6
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Wat drukt dit af?

points = 12
points -= 5
points *= 3
print(points)
  1. 7
  2. 31
  3. 21
  4. 36
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Welke waarde en welk type heeft de letterlijke waarde 6e2?
  1. 600, een geheel getal
  2. 6.2, een float
  3. 600.0, een float
  4. 62, een geheel getal
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Op een bakplaat passen 8 broodjes. Een bakker heeft 53 broodjes. Hoeveel volle bakplaten en overgebleven broodjes zijn er?
  1. 6 volle bakplaten en 5 broodjes
  2. 6 volle bakplaten en 6 broodjes
  3. 7 volle bakplaten en 3 broodjes
  4. 5 volle bakplaten en 6 broodjes
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Wat toont print("Go" * 2 + "!")?
  1. Go Go!
  2. Go!Go!
  3. Go2!
  4. GoGo!
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Wat is het resultaat van int(-8.9)?
  1. -9
  2. -8
  3. 8
  4. -8.0
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Wat verschijnt er op de eerste uitvoerregel?

print("P", "Q", sep=":", end="|")
print("R", "S", sep="-")
  1. P:Q| R-S
  2. P:Q:R-S
  3. P-Q|R:S
  4. P:Q|R-S
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een gebruiker typt 7 bij de eerste invoervraag en 4 bij de tweede. Wat drukt dit programma af?

first = input("First: ")
second = input("Second: ")
print(int(first + second) + 2)
  1. 76
  2. 13
  3. 742
  4. 11
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 3: Volg expressies en onderzoek fouten10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

In een nieuw geopende Pythonshell voer je amount = 11 in en daarna amount + 4. Wat toont de shell voor deze twee invoeren?
  1. 11 voor de toekenning, daarna 15
  2. Niets voor beide invoeren
  3. 11 voor de toekenning, daarna amount + 4
  4. Niets voor de toekenning, daarna 15
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een script bevat deze code. Welke uitvoer verschijnt vóór de foutmelding?

print("Loading")
value = 6
print("Value:", value
  1. Alleen Loading verschijnt.
  2. Er verschijnt geen uitvoer.
  3. Loading en Value: 6 verschijnen.
  4. Alleen Value: 6 verschijnt.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Wat is een correcte letterlijke Pythonwaarde voor het gehele getal twee miljoen vijfhonderdduizend?
  1. 2,500,000
  2. 2.500.000
  3. 2_500_000
  4. 2_500_000.0
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Wat toont print('He said "yes"')?
  1. He said "yes"
  2. He said yes
  3. 'He said "yes"'
  4. He said 'yes'
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Een programmeur schrijft MAX_ATTEMPTS = 5. Wat maken de hoofdletters duidelijk?
  1. Python zal elke latere toekenning afwijzen.
  2. De variabele kan alleen gehele getallen bevatten.
  3. De naam is een gereserveerd woord van Python.
  4. De waarde is bedoeld om onveranderd te blijven.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Wat drukt dit af?

a = 4
b = 9
a, b = b, a
a += b
print(a, b)
  1. 18 9
  2. 13 4
  3. 13 9
  4. 9 13
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Welke waarde levert (-3) ** 2 + 2 ** 3 op?
  1. 17
  2. -1
  3. 25
  4. 15
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Wat zijn de waarden van -17 // 5 en -17 % 5, in die volgorde?
  1. -3 en -2
  2. -4 en -3
  3. -4 en 3
  4. -3 en 2
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Wat gebeurt er wanneer Python int("12.0") evalueert?
  1. Het geeft het gehele getal 12 terug.
  2. Het werpt ValueError op.
  3. Het geeft de float 12.0 terug.
  4. Het werpt TypeError op.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een gebruiker typt 84.5. Het programma moet Fahrenheit omrekenen naar Celsius. Welke vervanging van de rekenregel herstelt het resultaat?

fahrenheit = float(input("Temperature in °F: "))
celsius = fahrenheit - 32 * 5 / 9
print(round(celsius, 1))
  1. celsius = fahrenheit - (32 * 5 / 9)
  2. celsius = (fahrenheit - 32 * 5) / 9
  3. celsius = (fahrenheit - 32) * 5 / 9
  4. celsius = fahrenheit - 32 * (5 / 9)
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 4: Kies de bewerking die bij de taak past10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Een script bevat de onderstaande regels. Welke melding verschijnt?

# print("Check")
print("Open #2")
  1. Open #2
  2. Check en Open #2
  3. Open
  4. Check en Open
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Welke waarde en welk type levert 3 + 2.0 op?
  1. 5, een geheel getal
  2. "32.0", een string
  3. 5.0, een float
  4. "5.0", een string
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Wat toont print("label", label, sep=":") na label = "Desk"?
  1. Desk:Desk
  2. label:Desk
  3. label:label
  4. "label":"Desk"
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Wat drukt dit af?

base = 8
double = base * 2
copy = double
base = 10
double = base * 2
print(copy, double)
  1. 20 20
  2. 16 16
  3. 8 20
  4. 16 20
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Welke waarden leveren int(-6.5), round(-6.5) en -13 // 2 op, in die volgorde?
  1. -6, -6, -7
  2. -7, -6, -7
  3. -6, -7, -6
  4. -7, -7, -6
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Welke waarden leveren 9.0 // 4 en 9 // 4 op, in die volgorde?
  1. 2 en 2
  2. 2.25 en 2
  3. 2.0 en 2
  4. 2.0 en 2.0
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Dezelfde geldige tekst wordt als een nieuw script uitgevoerd en daarna instructie voor instructie in een nieuwe shell ingevoerd: n = 6, n * 3, print(n). Welk verschil zie je?
  1. Beide tonen 18 en daarna 6; de omgeving maakt geen verschil.
  2. Het script toont 18; de shell toont 6 en daarna 18.
  3. Het script toont 6; de shell toont 6, 18 en daarna 6.
  4. Het script toont 6; de shell toont 18 en daarna 6.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Waarom mislukt de laatste regel?

input = "Leah"
name = input("Name: ")
  1. Het woord input is een gereserveerd woord.
  2. De naam input verwijst nu naar een string.
  3. Een invoervraag mag geen dubbele punt bevatten.
  4. Rond de aanroep ontbreekt een numerieke conversie.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Wat toont print("Row", 8, "|", end="!") voordat de cursor stopt?
  1. Row|8!
  2. Row8|!
  3. Row 8 |!
  4. Row 8 !|
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een programma dat minuten in uren omzet, geeft het verwachte resultaat voor invoer 145. Een gebruiker voert daarna 119 in. Wat drukt het af en welke wijziging zorgt dat hours volledige uren telt?

total_minutes = int(input("Whole minutes: "))
hours = round(total_minutes / 60)
minutes = total_minutes % 60
print(hours, minutes)
  1. 2 59; gebruik hours = total_minutes // 60.
  2. 1 59; gebruik hours = total_minutes // 60.
  3. 2 59; gebruik hours = int(total_minutes) / 60.
  4. 1 59; gebruik hours = total_minutes % 60.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Set 5: Combineer stapsgewijs volgen, conversies en programmacontroles10 Oefenvragen

Sla deze les op om elk antwoord te zien en elke set te oefenen.

Vraag 1 van 10

Wat toont print("6" + str(2 + 3) * 2)?
  1. 6565
  2. 610
  3. 655
  4. 16
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 2 van 10

Een gebruiker voert 4 in. Wat verschijnt er, afgezien van de invoervraag en de foutmelding?

count = input("Count: ")
print("Received")
next_count = count + 1
print(next_count)
  1. Received, daarna wordt 5 afgedrukt.
  2. Received, daarna wordt 41 afgedrukt.
  3. Niets; geen instructie kan worden uitgevoerd.
  4. Received, daarna stopt de uitvoering.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 3 van 10

Commentaar moet een tarief uitleggen. De code verandert van fee_rate = 0.04 # 4% service fee in fee_rate = 0.06 # 4% service fee. Wat moet worden verbeterd?
  1. Verander het commentaar zodat het kosten van 6% aangeeft.
  2. Behoud het commentaar omdat Python het negeert.
  3. Zet het commentaar tussen aanhalingstekens om het bij te werken.
  4. Verwijder de decimale punt uit het tarief.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 4 van 10

Waarom kan 0.1 + 0.2 worden weergegeven als 0.30000000000000004?
  1. De plusoperator voegt de decimale cijfers als tekst samen.
  2. De opgeslagen binaire floats benaderen de decimale breuken.
  3. De interpreter rondt elke som één cijfer naar boven af.
  4. De decimale punt scheidt twee onafhankelijke waarden.
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 5 van 10

Wat drukt dit af?

rate = 6
hours = 4
pay = rate * hours
rate += 2
pay += rate
hours /= 2
print(pay, hours)
  1. 40 2.0
  2. 32 2
  3. 24 2.0
  4. 32 2.0
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 6 van 10

Welke waarde levert -2 ** 3 ** 2 + 20 // 3 % 4 op?
  1. -62
  2. -510
  3. -506
  4. 514
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 7 van 10

Een aanpassing met teken is -23. Het quotiënt en de rest bij deling door 6 moeten samen de oorspronkelijke waarde opleveren. Wat zijn de twee resultaten?
  1. Quotiënt -3, rest -5
  2. Quotiënt -4, rest -1
  3. Quotiënt -4, rest 1
  4. Quotiënt -3, rest 5
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 8 van 10

Wat toont print("Code: " + str(3 * 4))?
  1. Code: 12
  2. Code: 34
  3. Code: 121212
  4. Code: 3 * 4
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 9 van 10

Wat drukt dit af?

reading = "18"
float(reading)
print(reading + "2")
  1. 20.0
  2. 182
  3. 18.02
  4. 20
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Vraag 10 van 10

Een automaat rekent 3 dollar voor elk volledig blok van 15 minuten en 1 dollar voor elke overgebleven minuut. Wat moet de rekenregel vervangen om de kosten voor een geheel getal als invoer te berekenen?

minutes = int(input("Minutes: "))
charge = 0
print("Charge in dollars:", charge)
  1. charge = (minutes / 15) * 3 + minutes % 15
  2. charge = (minutes // 15) * 3 + minutes // 15
  3. charge = minutes // (15 * 3) + minutes % 15
  4. charge = (minutes // 15) * 3 + minutes % 15
Toon antwoordVerberg antwoord

Sla deze les op om dit antwoord te zien.

Kom je niet uit je eigen opgave? Huiswerkhulp

Kernbegrippen

71 Kernbegrippen, elk met een definitie

A

accumulator
Een accumulator is een variabele die een lopend totaal bijhoudt, begint met een beginwaarde en verandert wanneer er bedragen worden opgeteld.
Initialiseer total = 0 voordat je bijwerkingen zoals total += cost gebruikt om meerdere bedragen bij elkaar op te tellen.
afkappen
Afkappen verwijdert het breukdeel van een getal richting nul, zoals int() bij een float doet, zonder af te ronden op het dichtstbijzijnde gehele getal.
Als je -9.8 omzet met int(), krijg je -9, terwijl naar beneden afronden van dezelfde negatieve waarde -10 zou geven.
afronden
Afronden kiest een dichtstbijzijnde waarde met een gekozen precisie; round() van Python rondt waarden die precies halverwege liggen af naar de even buur.
De aanroep round(6.5) geeft zes, terwijl round(7.5) acht geeft omdat beide gekozen buren even zijn.
argument
Een argument is een waarde of expressie die tussen de haakjes van een functieaanroep wordt meegegeven, zodat de functie die gegevens kan gebruiken.
In print("Score:", 9) zijn het label en het gehele getal afzonderlijke argumenten die in die volgorde worden getoond.
associativiteit
Associativiteit bepaalt hoe bewerkingen met gelijke prioriteit worden gegroepeerd; de meeste groeperen van links naar rechts, terwijl machten van rechts naar links groeperen.
De expressie 16 / 4 * 2 groepeert als (16 / 4) * 2, dus is het resultaat 8.0, niet 2.0.

B

begrenzingsteken van een string
Een begrenzingsteken van een string is een aanhalingsteken dat het begin of einde van een string aangeeft zonder deel van de tekst te worden.
Door de dubbele aanhalingstekens aan de buitenkant van "We're ready" kan de apostrof binnen de string blijven.
booleaanse waarde
Een booleaanse waarde is een waarde van het type bool met een van twee waarden, True of False, geschreven met een hoofdletter en zonder aanhalingstekens.
De vergelijking 4 < 9 levert de booleaanse waarde True op, terwijl de tekst "True" tussen aanhalingstekens een string is.

C

code uitcommentariëren
Code uitcommentariëren betekent dat je een commentaarteken vóór een instructie zet, zodat die niet wordt uitgevoerd terwijl de tekst beschikbaar blijft.
Door # vóór een tijdelijke print-aanroep te zetten, schakel je die uitvoer uit zonder de regel uit de editor te verwijderen.
commentaar
Commentaar is een aantekening die begint met # buiten een string en eindigt aan het einde van de regel; Python negeert die bij het uitvoeren van het programma.
Een aantekening die uitlegt dat een tarief servicekosten omvat, helpt een lezer begrijpen waarom het is gekozen.
commentaar achter code op dezelfde regel
Commentaar achter code op dezelfde regel staat na uitvoerbare code en wordt normaal gesproken met minstens twee spaties van de code gescheiden.
In rate = 0.07 # 7% tax wordt de toekenning uitgevoerd en leggen de laatste woorden de betekenis van het tarief uit.
concatenatie
Concatenatie voegt strings met + achter elkaar, behoudt de volgorde van hun tekens en voegt geen extra spaties of leestekens in.
Als je "Room " en "12" samenvoegt, blijft de spatie in de eerste string behouden en krijg je "Room 12".
constante
Een constante is een waarde die bedoeld is om onveranderd te blijven en die volgens afspraak een naam met hoofdletters krijgt, ook al staat Python hernieuwde toekenning toe.
De naam FEE_RATE vertelt een lezer dat het tarief tijdens het volgen van het programma als vast moet worden beschouwd.

D

debuggen
Debuggen is het opsporen en herstellen van fouten in code door meldingen te onderzoeken, waarden te controleren en verwachte resultaten te vergelijken.
Door de laatste regel van een stacktrace te lezen, kun je bepalen welke spelling, waarde of bewerking je als volgende controleert.
docstring
Een docstring is een string die op een daarvoor bestemde plaats in Pythoncode als documentatie wordt gebruikt; hij verschilt van commentaar dat met # is gemarkeerd.
Een string tussen drievoudige aanhalingstekens aan het begin van een script kan het programma beschrijven zonder commentaar te zijn.
dynamische typering
Dynamische typering maakt het mogelijk dat een naam op verschillende momenten naar waarden van verschillende typen verwijst, omdat het type bij elke waarde hoort en niet bij de naam.
Python staat entry = 3 gevolgd door entry = "three" toe, al is een consistente betekenis duidelijker.

E

escapesequentie
Een escapesequentie begint met een backslash en stelt een teken voor, zoals een regeleindeteken of een aanhalingsteken dat binnen een string moet blijven.
In "Up\nDown" maakt de escapesequentie een regeleinde tussen de twee woorden wanneer de string wordt afgedrukt.
expressie
Een expressie is Pythoncode die evalueert tot één waarde, van één letterlijke waarde of naam tot een combinatie van meerdere bewerkingen.
In print(7 * 6) wordt de expressie 7 * 6 geëvalueerd voordat haar waarde op het scherm wordt getoond.
expressie met verschillende typen
Een expressie met verschillende typen combineert waarden van verschillende typen, zodat bij elke bewerking moet worden gecontroleerd of de combinatie van operanden mogelijk is.
De berekening 2 + 0.5 werkt met getallen, terwijl "2" + 0.5 zonder expliciete conversie mislukt.

G

geheel getal
Een geheel getal is een waarde van het type int zonder breukdeel; gehele getallen in Python hebben geen vaste groottebeperking.
Gebruik item_count = 24 voor een aantal en schrijf grote letterlijke gehele getallen eventueel met underscores.
gehele deling
Gehele deling deelt twee numerieke waarden en rondt het quotiënt naar beneden af, bij een negatief quotiënt naar een negatievere waarde.
De expressie -10 // 3 geeft -4, omdat -3,333… naar beneden wordt afgerond, niet richting nul.
gelijktijdige toekenning
Bij gelijktijdige toekenning worden alle expressies rechts geëvalueerd voordat hun waarden op positie aan de namen links worden toegekend.
In x, y = 4, 8 krijgt de eerste naam vier en de tweede acht in één instructie.
gereserveerd woord
Een gereserveerd woord is een woord dat voor de grammatica van Python is gereserveerd en daarom niet als gewone variabelenaam in een toekenning kan worden gebruikt.
Als je class als doel van een toekenning gebruikt, ontstaat een syntaxisfout voordat het script kan worden uitgevoerd.
grenswaarde
Een grenswaarde is invoer op of nabij een punt waar een resultaat van vorm verandert, nuttig om te controleren of een programma zich gedraagt zoals verwacht.
Als je seconden in minuten verdeelt, controleer je met 59, 60 en 61 de grens van de eerste volledige minuut.

H

hernieuwde toekenning
Een hernieuwde toekenning geeft een bestaande naam een nieuwe waarde en vervangt de waarde die via die naam bereikbaar is, zonder andere namen bij te werken.
Na level = 2 en vervolgens level = 5 geeft het lezen van level vijf in plaats van de eerdere twee.
hoofdlettergevoeligheid
Hoofdlettergevoeligheid betekent dat hoofdletters en kleine letters namen onderscheiden, zodat een andere schrijfwijze naar een andere naam kan verwijzen.
Na een toekenning aan total mislukt print(Total), tenzij die afzonderlijke naam met hoofdletter ook bestaat.

I

identificator
Een identificator is een naam in code, zoals een variabelenaam, die de tekenregels van Python moet volgen en geen gereserveerd woord mag zijn.
De identificator seat_count2 is geldig, maar een naam die met een cijfer begint of een spatie bevat niet.
ingebouwde functie
Een ingebouwde functie is een aanroepbare bewerking die zonder import beschikbaar is, zoals print() of input(), en waarvan de naam door een toekenning kan worden verborgen.
Door een naam voor gegevens zoals item_total te gebruiken, blijft de ingebouwde naam int beschikbaar voor conversies.
instructie
Een instructie is een opdracht in Pythoncode, zoals een toekenning of een print-aanroep, die als onderdeel van een programma wordt uitgevoerd.
In een eenvoudig script kent count = 6 een waarde toe voordat de latere instructie print(count) die gebruikt.
interactieve shell
De interactieve shell is een omgeving waarin je Pythoninstructies één voor één invoert en de resultaten van expressies meteen ziet. De shell heet ook REPL.
Als je bij de prompt >>> de expressie 14 + 2 invoert, toont de shell 16 zonder print-aanroep.
interpreter
Een interpreter is een programma dat Pythoncode leest en de instructies uitvoert met de waarden en bewerkingen die de code aangeeft.
In print(6 * 7) evalueert de interpreter 6 * 7 en geeft de resulterende waarde door aan de print-aanroep.
invoer
Invoer is data die aan een programma wordt geleverd; de ingebouwde functie input() leest een getypte regel en geeft de tekens als string terug.
Als je 45 invoert, levert dat de tekst "45" op. Die moet worden omgezet voordat je haar als geheel getal kunt gebruiken.
invoer–verwerking–uitvoer
Invoer–verwerking–uitvoer is een programmastructuur die gegevens leest en omzet, met de waarden rekent en betekenisvolle resultaten toont.
Een reisprogramma kan mijlen en gallons lezen, mijlen per gallon berekenen en daarna het resultaat met de eenheid afdrukken.
invoervraag
Een invoervraag is een melding die de gebruiker vraagt gegevens in te voeren en idealiter aangeeft welk soort waarde en welke meeteenheid worden verwacht.
De invoervraag "Whole minutes: " geeft aan dat het programma tekst in de vorm van een geheel getal verwacht en laat ruimte om te typen.

L

lege string
De lege string is een string die helemaal geen tekens bevat, geschreven als "" of ''; hij verschilt van een string met een spatie.
Een string nul keer herhalen levert lege tekst op, terwijl " " toevoegen een spatie invoegt.
letterlijke waarde (literal)
Een letterlijke waarde is een waarde die rechtstreeks in broncode is geschreven, waarbij de schrijfwijze, zoals aanhalingstekens of een decimale punt, het type bepaalt.
De letterlijke waarden 12, 12.0 en "12" zijn respectievelijk een geheel getal, een float en een string.
logische fout
Een logische fout is een fout waarbij code wel wordt uitgevoerd, maar een resultaat geeft dat niet past bij de berekening of het gedrag dat de programmeur bedoelde.
Een totaal waarin kosten ontbreken, kan verkeerd zijn zonder dat Python een exceptie of waarschuwing geeft.

M

machtsverheffen
Machtsverheffen verheft een grondtal tot een macht met **; bij gehele operanden en een niet-negatieve exponent is het resultaat een geheel getal.
De expressie 4 ** 3 vermenigvuldigt drie keer vier met elkaar en geeft het gehele resultaat 64.

O

operand
Een operand is een waarde of expressie waarop een operator werkt. Het type helpt bepalen wat die bewerking kan doen.
In hours * rate zijn de huidige waarden van hours en rate de operanden van de vermenigvuldiging.
operator
Een operator is een symbool of combinatie van symbolen die een bewerking op operanden uitvoert, zoals + voor optellen of ** voor machtsverheffen.
Als je 6 * 2 verandert in 6 ** 2, verandert de bewerking van vermenigvuldigen in machtsverheffen.
operatorprioriteit
Operatorprioriteit is de prioriteitsvolgorde die bepaalt welke operatoren eerst worden toegepast als een expressie meer dan één soort bevat.
In 4 + 3 * 5 heeft vermenigvuldigen een hogere prioriteit dan optellen, dus is het resultaat negentien.

P

pariteit
Pariteit beschrijft of een geheel getal even of oneven is. Je kunt dit bepalen met de rest bij deling door twee.
Het resultaat van -5 % 2 is één. Dat laat zien dat min vijf volgens dezelfde restregel oneven is.
programma
Een programma is een reeks instructies die een computer vertelt wat hij moet doen, zoals een waarde berekenen en het resultaat tonen.
Een kort programma kan de kosten van meerdere artikelen berekenen en daarna het totaal met een label afdrukken.
programmeerfout (bug)
Een programmeerfout is een fout in een programma die het bedoelde gedrag verhindert, of die nu een foutmelding of een onjuist resultaat veroorzaakt.
Ontbrekende haakjes in een berekening van een gemiddelde kunnen een programmeerfout zijn, ook als de code wordt uitgevoerd.

Q

quotiënt
Een quotiënt is het resultaat van een deling; gehele deling kiest het grootste gehele getal dat niet groter is dan het exacte quotiënt.
Bij 22 // 5 is het naar beneden afgeronde quotiënt vier en de bijbehorende rest twee.

R

regelafsluiting
Een regelafsluiting is de tekst die na het laatste argument van een print-aanroep wordt afgedrukt. end bepaalt die tekst; standaard is het een nieuwe regel.
Met end="" volgen geen afsluitende tekens, zodat de volgende print-aanroep op dezelfde regel verdergaat.
rest
Een rest is de waarde van % die een deling compleet maakt; bij gehele getallen en een positieve deler is de rest niet-negatief en kleiner dan de deler.
Bij 43 elementen in groepen van 8 geeft 43 % 8 de 3 elementen die na vijf volledige groepen overblijven.
ronde haakjes
Ronde haakjes zijn groeperingstekens die een omsloten expressie als één deel van een grotere berekening laten werken of functieargumenten omsluiten.
In (10 + 6) / 4 zorgen haakjes dat de hele som door vier wordt gedeeld, wat 4.0 geeft.

S

samengestelde toekenning
Samengestelde toekenning combineert een bewerking met een hernieuwde toekenning en gebruikt een bestaande waarde om de vervangende waarde te berekenen en op te slaan.
Voor getallen telt score += 6 zes op bij de huidige score en kent de som opnieuw toe aan dezelfde naam.
scheidingstekst
Scheidingstekst is de tekst die print() tussen weergegeven argumenten invoegt. Het benoemde argument sep bepaalt die tekst; standaard is het één spatie.
De aanroep print("A", "B", sep="-") gebruikt een koppelteken als scheidingstekst en toont A-B op de uitvoerregel.
script
Een script is een bestand met Pythoninstructies als platte tekst dat je kunt opslaan, bewerken en in de geschreven volgorde als geheel kunt uitvoeren.
Door instructies als script op te slaan, kun je dezelfde berekening opnieuw uitvoeren nadat je een invoerwaarde hebt veranderd.
snake_case
Snake_case is een naamgevingsstijl die woorden in kleine letters met underscores verbindt, zodat variabelenamen met meerdere woorden geldig en leesbaar zijn.
De naam total_seconds volgt snake_case en geeft de eenheid aan die een tijdberekening gebruikt.
stacktrace (traceback)
Een stacktrace is een foutrapport dat toont waar de uitvoering mislukte, gevolgd door het exceptietype en een melding die de fout beschrijft.
Lees eerst de laatste foutregel en bekijk daarna de gemelde code en locatie direct erboven.
string
Een string is een reeks tekens van het type str, met tekst zoals letters, cijfers, spaties, leestekens en symbolen.
De waarde "Bus 09" bewaart de letters, spatie en identificator met voorloopnul als één tekstwaarde.
stringherhaling
Stringherhaling gebruikt * met een string en een geheel aantal om het gevraagde aantal kopieën direct achter elkaar te maken.
De expressie "ab" * 3 levert "ababab" op; er wordt geen spatie tussen de herhaalde kopieën toegevoegd.
syntaxisfout
Een syntaxisfout is een schending van de grammaticaregels van Python waardoor een opgeslagen script niet kan starten, zoals een ontbrekend sluithaakje.
Een niet-gesloten aanhalingsteken aan het einde van een script kan verhinderen dat zelfs de eerste print-instructie wordt uitgevoerd.

T

tijdelijke variabele
Een tijdelijke variabele bewaart een waarde die tijdens een korte reeks stappen nodig is, bijvoorbeeld om een oorspronkelijke waarde te bewaren terwijl twee andere worden verwisseld.
Bij een opeenvolgende verwisseling bewaart temp = left de oude linkerwaarde voordat left wordt overschreven.
toekenning
Een toekenning evalueert een expressie en laat een doelnaam naar de resulterende waarde verwijzen, met = en de naam links.
In area = width * height wordt de vermenigvuldiging geëvalueerd voordat het resultaat onder area wordt opgeslagen.
type
Een type geeft aan wat voor soort waarde Python heeft en helpt bepalen welke bewerkingen Python met die waarde kan uitvoeren.
Het type van "25" is str, dus voegt het optellen van een andere string tekst samen in plaats van numerieke hoeveelheden op te tellen.
type()
De functie type() geeft het type van haar argument, zodat je een opgeslagen waarde of het resultaat van een expressie kunt onderzoeken.
Als je type("12") afdrukt, zie je dat het om een string gaat, ook al lijken de weergegeven tekens op een getal.
typeconversie
Typeconversie maakt een nieuwe waarde van een gevraagd type, zoals een geheel getal uit tekst met een getal, zonder de oorspronkelijke waarde zelf te veranderen.
Sla int(text) op in een variabele wanneer latere berekeningen de omgezette waarde nodig hebben in plaats van de tekst.
TypeError
Een TypeError is een exceptie die wordt opgeworpen wanneer een bewerking of aanroep een onverenigbaar type ontvangt, zoals bij het samenvoegen van een string en een geheel getal.
De expressie "Count: " + 7 mislukt omdat concatenatie aan beide kanten van + tekst vereist.

U

uitvoer
Uitvoer is informatie die een programma toont, zoals een berekend getal en het bijbehorende label, zodat iemand het resultaat kan lezen.
De regel Distance: 18 miles geeft zowel een waarde als de eenheid die nodig is om die waarde te begrijpen.
uitvoeringsfout (runtime error)
Een uitvoeringsfout ontstaat tijdens de uitvoering en stopt het programma bij de mislukte bewerking, nadat eerdere instructies zijn uitgevoerd.
Als een latere regel door nul deelt, blijft tekst die door een eerdere regel is afgedrukt zichtbaar op het scherm.
uitvoeringstabel
Een uitvoeringstabel legt na elke instructie de waarde van elke variabele vast en maakt zo de volgorde en effecten van de uitvoering zichtbaar voor controle met de hand.
Een nieuwe rij na price = 10 verandert de prijskolom terwijl een eerder opgeslagen totaal onveranderd blijft.
unaire min
Unaire min is een operator die het teken van één waarde verandert, anders dan aftrekken, dat twee operanden combineert tot een verschil.
In 10 - -2 geeft het tweede minteken aan dat twee negatief is, zodat aftrekken de waarde 12 geeft.

V

ValueError
Een ValueError is een exceptie die wordt opgeworpen wanneer een bewerking een waarde van een geaccepteerd type ontvangt waarvan de inhoud niet op de gevraagde manier kan worden gebruikt.
De string "ten" is tekst, maar int("ten") mislukt omdat die tekst geen geheel getal beschrijft.
variabele
Een variabele is een naam die naar een opgeslagen waarde verwijst, zodat een programma die waarde in latere instructies kan gebruiken of vervangen.
Na length = 6 leest de expressie length * 2 de huidige waarde via de naam length.
verhoging
Een verhoging is een toename van de waarde van een variabele, vaak met één, uitgevoerd met een toekenning die de bestaande waarde gebruikt.
Na visits = 4 legt de bijwerking visits += 1 één extra bezoek vast en wordt de teller vijf.

W

waarde
Een waarde is een gegeven waarmee Python werkt, zoals een getal, tekst of een booleaans resultaat, en elke waarde heeft een type.
De waarden 25 en "25" lijken bij het afdrukken op elkaar, maar ondersteunen verschillende bewerkingen in een programma.
wetenschappelijke notatie
Wetenschappelijke notatie schrijft een float met e en een macht van tien, zodat zeer grote of zeer kleine getalswaarden compact worden weergegeven.
De letterlijke waarde 8e-3 betekent acht gedeeld door duizend en stelt de float 0.008 voor.

Z

zwevendekommagetal (float)
Een zwevendekommagetal is een getal met beperkte precisie, gebruikt voor hoeveelheden die breukdelen kunnen bevatten, zoals metingen.
De letterlijke waarde 6.0 is een float, ook al is de getalswaarde precies gelijk aan het gehele getal zes.

Over deze les

Door StudeliFout melden

Maak je eigen Studiemateriaal

Maak van je aantekeningen, slides en documenten Leermodules, Oefenvragen, Flashcards en 6 andere tools.

Aan de slag