Sie können den gewünschten Effekt erzielen, aber es hat nicht viel mit Multiplikation zu tun per se.
Das sep
Argument print()
ein Trennzeichen zwischen den Nicht-Schlüsselwort-Argumente liefert - zum Beispiel:
>>> print("spam", "eggs", "ham", sep=" | ")
spam | eggs | ham
Sie haben soeben c
-print()
5 mal passieren könnte die Ausgabe Sie suchen zu bekommen:
>>> c = "rabble"
>>> print(c, c, c, c, c, sep=" | ")
rabble | rabble | rabble | rabble | rabble
... aber das ist klobig, und keine Verwendung, wenn Sie nicht im Voraus wissen, wie oft Sie wollen c
erscheinen.
, um dieses Problem zu erhalten, können Sie argument unpacking verwenden - eine spezielle Syntax, um eine Liste oder eine andere Sequenz an eine Funktion zu übergeben, als ob die Gegenstände darin wurden als einzelne Argumente übergeben werden: get
>>> s = ["spam", "eggs", "ham"]
>>> print(*s) # notice the *
spam eggs ham
Um
das Ergebnis Sie suchen, können Sie eine Liste on the fly von 5 Kopien von
c
, konstruieren und diese Liste mit dem Argument Auspacken Notation übergeben:
>>> print(*([c] * 5), sep = ' | ')
rabble | rabble | rabble | rabble | rabble
Beachten Sie, dass Sie eine Liste sind Multiplikation enthält c
von fünf, anstatt c
selbst. Sie könnten es hilfreich finden, herauszufinden, was tatsächlich tut, und zu versuchen, herauszufinden, warum (Hinweis: Zeichenfolgen sind auch Sequenzen).
Danke Zero, ich habe den Code am Ende versucht (mit Argument Entpacken ohne c in eine Liste setzen) und es druckt jeden Buchstaben der Zeichenfolge "Pöbel" mit dem '|' Zeichenfolge, die jeden trennt. Ich denke, ich habe ein besseres Verständnis für das ursprüngliche Problem, das ist, dass Print (c * 5) einfach 5 Strings verkettet und keine Bruchstelle bietet, in die das '|' Zeichenfolge kann eingefügt werden. Beim Entpacken von Argumenten ist jeder Buchstabe ein eigenes Element, und in Listen ist jeder String ein eigenes Element, zwischen dem ein Trennzeichen eingefügt werden kann. Danke noch einmal. –