Hallo,
es geht auch noch eleganter und kürzer.
Die print()
Funktion in Python hat ab Version 3 einige zusätzliche Parameter, unter anderem end
.
Standardmäßig ist das zum jeweiligen Betriebssystem passende Zeichen für Zeilenumbruch gesetzt.
Diese verbirgt sich in der Kontante linesep
aus dem Modul os
.
Daher führt ein print("Hallo, Welt!")
auch dazu, dass ein eine Zeile umgebrochen, also eine neue angefangen wird,
denn implizit wird daraus: print("Hallo, Welt", end=os.linesep)
.
Dann gibt es in Python so genannte "conditional expressions", also bedingte Ausdrücke.
Damit kann man sich if
Blöcke sparen. Hat man sich erstmal an diese Schreibweise gewöhnt, kann vieles kürzer und
häufig auch besser lesbar ausgedrückt werden:
from os import linesep
for i in range(24):
print(i, end=linesep if i%6==0 else ' ')
Der Teil end=linesep if i%6==0 else ' '
weißt also dem Paramter end
den Wert von linesep
zu, wenn sich i
ohne Rest durch 6 Teilen lässt,
oder das Leerzeichen, falls dem nicht so ist.
Eine Anmerkung noch zu der Funktion range
: der Startwert ist standardmäßig 0, muss also nicht angegeben werden.
Es ist nicht notwendig, das Ergebnis von range
einer Variablen zuzuweisen, man kann es direkt nutzen.
Es zahlt sich aus, von Anfang an zu versuchen Python Code möglichst "pythonic" zu schreiben, es macht
die Einarbeitung in Code anderer Programmierer leichter.
Die Variable nicht auf 0 setzen, sondern auf 1.
─ jw 21.05.2020 um 16:22