Inhoud
Additionele print parameters
Het print() commando in Python is een simpel rechttoe/rechtaan commando. Echter de standaard printopdracht heeft wel wat beperkingen.
- Het print() commando genereerd één regel tekst per print opdracht.
- Wanneer meerdere parameters meegegeven moeten worden, dan zal tussen elke parameter een spatie als scheidingteken gebruikt worden
- Python bepaalt zelf hoe variabelen geprint worden (wat van belang is bij getallen).
Gelukkig zijn er een aantal oplossingen om dit aan te passen
De print() scheiding parameter
Er is voor het Python print() commando een speciale parameter, waarmee je aangeeft hoe de scheiding tussen twee paarameters moet zijn.
- sep=[scheidingteken(s)] (sep staat voor “seperator”)
Zolang je geen parameter meegeeft, zal het print() commando een spatie als scheiding meegeven, kijk maar eens naar het volgende programma'tje:
a = 2.1 b = 5.5 som = a +b print(a,"+",b,"=",som)
Waarschijnlijk zal het je niet verbazen, maar dit programma genereert de volgende output
2.1 + 5.5 = 7.6
Zoals je ziet staat tussen elke parameter een spatie!
seperator ""
We voegen nu de speciale parameter sep=“”
(is een lege string) toe!
a = 2.1 b = 5.5 som = a +b print(a,"+",b,"=",som,sep="")
Nu wordt de output dus weergegeven zonder spaties:
2.1+5.5=7.6
seperator "x"
Maar je bent niet gelimiteerd tot spaties of lege string, maar je mag elke willekeurig karakter (of meerdere karakters) gebruiken. Zie bijvoorbeeld:
print("X","X","X",sep="x")
Wat als output geeft:
XxXxX
Merk op: de “x” is een scheiding teken, dus de derde hoofdletter 'X' wordt niet meer opgevolgd door de kleine letter 'x', simpel omdat er geen parameter meer volgt en dus er ook geen scheiding teken nodig is!
Andere seperator voorbeelden
- sep=“\t”: Tussen elke parameter staat een <tab>
- sep=“\n”: Elke parameter staat op een nieuwe regel
- sep=“, ”: Tussen elke parameter staat “, ”.
- …
Het print() end-of-line parameter
Een andere speciale parameter die je bij het print() commando kunt meegeven, is om aan te geven wat Python moet doen met de output, nadat het print() commando voltooid is.
- end=[eol teken(s)] (end staat voor “end-of-line”)
Door het “eol” teken op te geven, bepaal je dus het print() commando gedrag, nadat het commando uitgevoerd is.
eindteken ""
Neem bijvoorbeeld het volgende programma:
print("X",end="") print("Y",end="") print("Z")
Met het end=“” (lege string), zeg je dat de default “newline” van het print() commando, vervangen moet worden door een lege string.
De gegenereerde output is daardoor:
XYZ
Combineren eindteken & seperator
Uiteraard kun je de twee speciale parameters ook combineren, zie het volgende voorbeeld. Daarbij gebruiken we bij de letters het scheidingteken “-”, terwijl we bij de cijfers “.” gebruiken. Het newline karakter vervangen we daarbij door een spatie:
print("A","b","c",sep="-",end=" ") print(1,2,3,sep=".")
Dit geeft als output:
A-b-c 1.2.3
Andere eindteken voorbeelden
- end=“\t”: In plaats van een nieuwe regel, wordt er een <tab> geprint voor het volgende print() commando.
- end=“\n”: De default newline wordt vervangen door een 'newline', het gedrag verandert dus niet
- end=“, ”: Voorafgaand aan het nieuwe print() commando, wordt er “, ” geprint.
- …
Alle speciale print() parameters
De algemene print() syntax:
print(parameter(s), sep=scheidingteken, end=einde, file=bestand, flush=True/False)
- parameter(s): De gegevens die je wil printen, bij meerdere gegevens, gescheiden door een komma.
- sep (optioneel): Het karakter (default=spatie), wat je wilt gebruiken als scheiding, mag een lege string zijn.
- end (optioneel): Het karakter (default=newline), wat je als output wil, na het print commando. Ook dit mag een lege string zijn.
- file (optioneel): De output file (default=stdout 1)). Hiermee kun je de output van het print programma naar een file (disk) schrijven.
- flush (optioneel): Hiermee geef je aan of de print() output direct (flush=True) of gebufferd 2) geschreven moet worden (default=False)
Zie ook de W3School reference over het print() statement (Engels).
[top] [Programmeren met Python] [sbczob.eu]
Voorbeeld
We besluiten met een programma'tje, wat de tafels van 1 t/m 10 presenteert in een tabel vorm. Als we naar de tabel kijken, dan laat de eerste rij zien welk cijfer gebruikt wordt om te vermenigvuldigen. De linker kolom laat het getal zien, waarvan we de tafel uitrekenen.
Het programma maakt alleen gebruik van de speciale parameters:
- sep=“”: Een lege string, voor de dubbele punt achter het tafel nummer
- end=“\t”: Een tab tussen elke berekening voor een specifieke tafel.
- print(): Simpelweg, ga naar de volgende regel.
- tafels.py
#! /usr/bin/env python3 # ========================= # Programma naam: tafels.py print("Tafel",end='\t') # Print de top-header lijn for j in range(10): # met een <tab> tussen elk getal. print(j+1,end='\t') print() # De lus gaan niet naar de volgende regel, print(" van:") # dus forceren we dit met een leeg print()- # commando. for i in range(10): print(i+1,":",sep="",end='\t') # Print het nummer van de tafel die we for j in range(10): # berekenen en ga naar de volgende <tab> product = (i+1) * (j+1) # Bereken de tafel print(product,end='\t') # Print het resultaat, plus een <tab> print() # De tafel presentatie is klaar, ga naar # de volgende regel. print() # Ter afsluiting, print een lege regel! print("klaar")