Frage zu print()

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi zusammen,

ich soll folgendes Porgramm schreiben:
Schreiben Sie eine Funktion, die je nach übergebener Zahl eine Ausgabe nach folgendem
Muster liefert.
Ausgabe bei Aufruf mit übergebener Zahl 5:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

Nun habe ich da eine Lösung gefunden. Nur bekomme ich zwischen den Zahlen kein Leerzeichen hin.

Code: Alles auswählen

def matrix(i):
    i=1
    while i<=a:
        print(a*str(i))
        i+=1
    return matrix

a=int(input("Zeilen und Spalten: "))
matrix(a)
Ich lasse je nach Eingabe i, a-mal Ausgeben und das bei i Zeilen.
Ich kenn bei print(), die end=" " Funktion:
Sie verhindert den Zeilenumbruch und fügt in diesem Bsp. ein Leerzeichen hinzu.
sep=" " kenne ich auch und das wäre hier wohl das richtige, da es zwischen die Strings ein Leerzeichen hinzufügt. Nur erkennt Python a*str(i) als eine Zeichenkette an.
Was kann ich hier machen?
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

schau' dir mal die `format()` Methode von Strings an.

Gruß, noisefloor
BlackJack

@Bindl: Hier würde man eine ``for-`` statt einer ``while``-Schleife verwenden.

Es gibt mehrere Varianten. Du könntest eine Zeichenkette mit Zahl + ein Leerzeichen erstellen und *die* Multiplizieren. Hat den Nachteil das dann auch am Ende der Zeile noch ein Leerzeichen ausgegeben wird, was man aber nicht sieht. Oder Du erstellst eine Liste mit den Zahlen und schaust mal wie die Syntax bei Funktionsaufrufen aussieht um aus einer Liste (oder einer anderen Sequenz) einzelne Aufrufparameter macht. Oder Du schreibst statt *eines* `print()`-Aufrufs eine Schleife die die Zahlen einer Zeile nacheinander ausgibt. Oder Du erstellst eine Liste mit den Zahlen einer Zeile als Zeichenkette und verwendest dann die `join()`-Methode von Zeichenketten um die zu *einer* Zeichenkette zusammenzufügen bei der die einzelnen Elemente durch ein Leerzeichen getrennt sind. Oder…
Antworten