Die Webseiten der Fachschaft Informatik am ERG Saalfeld


Ergänzungen zum print-Befehl

Der print-Befehl ist bei Python3 keine Anweisung, sondern eine Funktion. Das bedeutet, die Argumente, also das was ausgegeben werden soll, muss in Klammern geschrieben werden.

zur Wiederholung: standardmäßig gilt:

  • Die print-Funktion druckt beliebig viele Werte aus, die durch Komma getrennt sind.
  • Strings, also Wörter und Buchstaben können in einfache Anführungszeichen oder in doppelte Anführungszeichen
  • Bei der Ausgabe werden die Werte durch ein Leerzeichen getrennt.
  • Nach der Ausgabe der Argumente der Argumente erfolgt ein Zeilenumbruch, also ein Newline ("\n").

Damit ergeben sich verschiedene Probleme.
 

1. Im auszugebenden String sind Anführungszeichen.

Beispiel: Es soll der String:   Er begrüßte mich mit "Hallo" und ging dann weiter.   ausgegeben werden.

Lösung: Wenn im String einfache Anführungszeichen stehen, setzen Sie den String in doppelte Anfürhugnszeichen. Stehen im String doppelte Anführungszeichen, dann setzen Sie den String in einfache Anführungszeichen.

Im Programm sieht das dann so aus:

print('Er begrüßte mich mit "Hallo" und ging dann weiter.')

 

2. Die Werte sollen nicht durch Leerzeichen getrennt, sondern zwischen den Werten sollen andere Zeichen stehen

Beispiel: Es soll dieser Befehl aufgerufen werden:   print("Achtung", "Achtung", "Sicherheitshinweis:")  , aber es soll nicht zwischen den Wörtern ein Leerzeichen stehen, sondern die Argumente sollen wie bei einem Newsticker mit einem Leerzeichen, dann '+++' und dann noch einem Leerzeichen getrennt werden.

Dazu kennt der print-Befehl den Parameter 'sep' (von Seperator). Mit diesem Paramter kann eine beliebige Zeichenfolge angegeben werden, mit denen die Werte getrennt werden.

Im Programm sieht das dann so aus:

print("Achtung", "Achtung", "Sicherheitshinweis:", sep = ' +++ ')

 

3. Es soll nicht nach dem print-Befehl in eine neue Zeile gegangen werden (also kein Zeilenumbruch am Ende erfolgen).

Beispiel: (Vorgriff - sorry) Es sollen mit einer Schleife die Kubikzahlen für 1 bis 5 ausgegeben werden. Das würde im Programm so aussehen:

for i in range(1,6):
    print(i**3)

Aber die Ergebnisse stehen dann untereinander. Wenn man am Ende keinen Zeilenumbruch haben will, dann verwendet man den Parameter 'end'. Mit diesem Paramter kann eine beliebige Zeichenfolge angegeben werden, auch die leere Zeichenfolge.

Das Programm würde dann so aussehen:

for i in range(1,6):
    print(i**3, end = ' ')

 

Der Aufruf der 3 Programme sah dann bei mir so aus:

 

Aufgaben

  1. Bringen Sie die 3 Programme zum Laufen.
  2. Testen Sie das Beispiel 1, indem Sie die einfachen und doppelten Anführungszeichen austauschen.
  3. Testen Sie das Beispiel 2, indem Sie als Seperator den Tabulator \t , den Zeilenumbruch \n und die leere Zeichenfolge '' verwenden.
  4. Ändern Sie im Beispiel 2 den Seperator so, dass die Ausgabe Achtung---Achtung---Sicherheitshinweis: erfolgt.
  5. Im Beispiel 3 ist auf der Webseite mit dem Parameter end = ' ' ein Leerzeichen vorgegeben. Ändern Sie das um in eine leere Zeichenkette und testen Sie das.
  6. Im Beispiel 3 soll jetzt als Seperator ein Leerzeichen und als Parameter für 'end' die leere Zeichenkette verwendet werden. Testen Sie das Programm.
    for i in range(1,6):
        print(i**3, sep = ' ', end = '')
    
  7. Für das Beispiel 3 sollen jetzt folgende beide Versionen betrachtet werden:
    for i in range(1,6):
        print(i**3, '', sep = ' ', end = '')
    
    und
    for i in range(1,6):
        print(i**3, ' ', sep = '', end = '')
    
    Gibt es einen Unterschied? Erklären Sie das.
  8. Erklären Sie den Unterschied der Ausgaben von Aufgabe 6 und Aufgabe 7.

 

zurück


© ERG Saalfeld   -   HD. Kirmse     letztes Update: 25.08.2022