Suche…


Grundlagen zum Drucken

In Python 3 und höher ist print eher eine Funktion als ein Schlüsselwort.

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

Sie können auch eine Reihe von Parametern zum print :

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

Eine andere Möglichkeit zum print mehrerer Parameter besteht in der Verwendung von +

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

Bei der Verwendung von + zum Drucken mehrerer Parameter sollten Sie jedoch aufpassen, dass der Typ der Parameter identisch ist. Wenn Sie versuchen, das obige Beispiel ohne die Umwandlung in eine string zuerst zu drucken, würde dies zu einem Fehler führen, da versucht würde, der Zeichenfolge "bar" die Zahl 1 und die Zahl 3.14 hinzuzufügen.

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

Dies liegt daran, dass der Inhalt des print zuerst ausgewertet wird:

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

Andernfalls kann die Verwendung von + für einen Benutzer sehr hilfreich sein, um die Ausgabe von Variablen zu lesen. Im folgenden Beispiel ist die Ausgabe sehr einfach zu lesen!

Das folgende Skript veranschaulicht dies

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))

Sie können verhindern, dass die print automatisch einen Zeilenvorschub druckt, indem Sie den 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?

Wenn Sie in eine Datei schreiben möchten, können Sie es als Parameter übergeben file :

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

das geht in die Datei!

Parameter drucken

Sie können mehr als nur Text drucken. print hat auch einige Parameter, die Ihnen helfen.

Argument sep : Platziert eine Zeichenfolge zwischen den Argumenten.

Müssen Sie eine Liste von Wörtern drucken, die durch ein Komma oder eine andere Zeichenfolge getrennt sind?

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

Argument end : Verwenden Sie am Ende etwas anderes als eine neue Zeile

Ohne das end Argument schreiben alle print() Funktionen eine Zeile und gehen dann zum Anfang der nächsten Zeile. Sie können es ändern, um nichts zu tun (verwenden Sie eine leere Zeichenfolge von '') oder doppelten Abstand zwischen Absätzen, indem Sie zwei Zeilenumbrüche verwenden.

>>> 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 : Ausgabe irgendwo anders als sys.stdout senden.

Jetzt können Sie Ihren Text entweder an stdout, an eine Datei oder an StringIO senden, ohne sich darum zu kümmern, was Ihnen gegeben wird. Wenn es wie eine Datei quittiert, funktioniert es wie eine Datei.

>>> 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

>>>

Es gibt einen vierten Parameter flush der den Stream zwangsweise löscht.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow