Zoeken…


Basisprincipes van afdrukken

In Python 3 en hoger is print een functie in plaats van een trefwoord.

print('hello world!')
# out: hello world!

foo = 1
bar = 'bar'
baz = 3.14

print(foo)    
# out: 1
print(bar)    
# out: bar
print(baz)
# out: 3.14

U kunt ook een aantal parameters doorgeven om print te print :

print(foo, bar, baz)
# out: 1 bar 3.14

Een andere manier om meerdere parameters print te print is door een +

print(str(foo) + " " + bar + " " + str(baz))
# out: 1 bar 3.14

Waar u echter voorzichtig mee moet zijn wanneer u + gebruikt om meerdere parameters af te drukken, is dat het type parameters hetzelfde moet zijn. Als u het bovenstaande voorbeeld probeert af te drukken zonder eerst de cast naar string zou dit een fout veroorzaken, omdat het zou proberen het nummer 1 toe te voegen aan de string "bar" en dat toe te voegen aan het nummer 3.14 .

# Wrong:
# type:int  str  float
print(foo + bar + baz)
# will result in an error

Dit komt omdat de inhoud van de print eerst wordt geëvalueerd:

print(4 + 5)
# out: 9
print("4" + "5")
# out: 45
print([4] + [5])
# out: [4, 5]

Anders kan het gebruik van een + zeer nuttig zijn voor een gebruiker om de uitvoer van variabelen te lezen. In het onderstaande voorbeeld is de uitvoer zeer gemakkelijk te lezen!

Het onderstaande script laat dit zien

import random 
#telling python to include a function to create random numbers
randnum = random.randint(0, 12) 
#make a random number between 0 and 12 and assign it to a variable
print("The randomly generated number was - " + str(randnum))

U kunt voorkomen dat de print automatisch een nieuwe regel afdrukt met de parameter end :

print("this has no newline at the end of it... ", end="")
print("see?")
# out: this has no newline at the end of it... see?

Als u wilt schrijven naar een bestand, kunt u deze doorgeven als parameter file :

with open('my_file.txt', 'w+') as my_file:
    print("this goes to the file!", file=my_file)

dit gaat naar het bestand!

U kunt meer doen dan alleen tekst afdrukken. print ook verschillende parameters om u te helpen.

Argument sep : plaats een string tussen argumenten.

Moet u een lijst met woorden afdrukken, gescheiden door een komma of een andere tekenreeks?

>>> print('apples','bannas', 'cherries', sep=', ')
apple, bannas, cherries
>>> print('apple','banna', 'cherries', sep=', ')
apple, banna, cherries
>>>

Argument end : gebruik aan het einde iets anders dan een nieuwe regel

Zonder het argument end , schrijven alle functies print() een regel en gaan dan naar het begin van de volgende regel. U kunt het wijzigen om niets te doen (gebruik een lege string van '') of dubbele afstand tussen alinea's met behulp van twee nieuwe regels.

>>> print("<a", end=''); print(" class='jidn'" if 1 else "", end=''); print("/>")
<a class='jidn'/>
>>> print("paragraph1", end="\n\n"); print("paragraph2")
paragraph1

paragraph2
>>>

Argument file : stuur uitvoer naar andere dan sys.stdout ergens.

Nu kunt u uw tekst naar stdout, een bestand of StringIO sturen en het kan u niet schelen wat u krijgt. Als het kwaakt als een bestand, werkt het als een bestand.

>>> def sendit(out, *values, sep=' ', end='\n'):
...     print(*values, sep=sep, end=end, file=out)
... 
>>> sendit(sys.stdout, 'apples', 'bannas', 'cherries', sep='\t')
apples    bannas    cherries
>>> with open("delete-me.txt", "w+") as f:
...    sendit(f, 'apples', 'bannas', 'cherries', sep=' ', end='\n')
... 
>>> with open("delete-me.txt", "rt") as f:
...     print(f.read())
... 
apples bannas cherries

>>>

Er is een vierde parameter- flush die de stream met geweld doorspoelt.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow