Zeilenumbruch | Python

Erste Frage Aufrufe: 3197     Aktiv: 31.05.2020 um 13:36

3

Hi, ich benötige Hilfe beim bewältigen eines Programms.

Python Programm:

Zahlen von 0 - 23 sollen geprinted werden.

0 1 2 3 4 5

6 7 8 9 10 11

12 13 14 15 16 17

18 19 20 21 22 23

Aufgabe:

Automatischer Zeilenumbruch nach 6 Zahlen.

Nun weiß ich nicht wie ich den Zeilenumbruch in Kombination mit der print()-Funktion nutzen kann.

Bitte um Hilfe! mfg Leeroy

Diese Frage melden
gefragt

Schüler, Punkte: 25

 
Kommentar schreiben
3 Antworten
2

Hallo Leeroy.

Du kannst dir einfach eine lokale Variabel erstellen, mit welcher du zählen kannst, wieviele Zahlen du schon ausgegeben hast. Wenn diese Variable den Wert 6 erreicht hat, kannst du einen Zeilenumbruch mit print() machen und die Variable auf 0 zurücksetzen.

Diese Antwort melden
geantwortet

Schüler, Punkte: 35

 

Die Variable nicht auf 0 setzen, sondern auf 1.

  ─   jw 21.05.2020 um 16:22

Kommentar schreiben

0

Hi Leroy,

für diese Aufgabe würde ich mit einer For-Schleife und einer String-Variable arbeiten. Du kannst sagen: Jedes mal, wenn die Schleife eine durch 6 teilbare Zahl erreicht, soll ein String mit den bisher durchgelaufenen Zahlen ausgeben. Nachdem das passiert ist, wird der String wieder leer.

Hier meine Lösung:

zahl = range(0,24) #24. element ist 23
string = ""
for i in zahl:
    string = string + str(i) + " "
    i += 1
    if i % 6 == 0:
        print(string)
        string = ""

Die Lösung gibt die Zahlenreihe dann auch so wieder:

0 1 2 3 4 5

6 7 8 9 10 11

12 13 14 15 16 17

18 19 20 21 22 23

Diese Antwort melden
geantwortet

Student, Punkte: 25

 

Kommentar schreiben

0

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

Diese Antwort melden
geantwortet

Teamleiter Softwareentwicklung, Punkte: 10

 

Kommentar schreiben