Seite 1 von 1

print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 13:54
von kodela
Hallo,

wenn ich mit print eine Zahl oder einen String in Klammern ausgebe, wird vor und hinter diesen eine Leerstelle ausgegeben.

Beispiele:

n = 12
s = "Test"
print("n in Klammer (", n, ") und s in Klammer(", s, ")")

damit bekomme ich:

n in Klammer ( 12 ) und s in Klammer ( Test )

möchte aber:

n in Klammer (12) und s in Klammer (Test)

Wie kann man das erreichen?

MfG, kodela?

Re: print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 14:36
von Sirius3
@kodela: dafür nimmt man .format

Code: Alles auswählen

n = 12
s = "Test"
print("n in Klammer ({}) und s in Klammer({})".format(n, s))

Re: print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 14:41
von pyHoax
Das kannst du gut so machen:

Code: Alles auswählen

print("n in Klammer (%d) und s in Klammer(%s)" % (n,s))
Oder moderner mit Format:

Code: Alles auswählen

print("n in Klammer ({0}) und s in Klammer({1})".format(n,s))
Das wird noch getopt durch diesen Syntax:

Code: Alles auswählen

print("n in Klammer ({N}) und s in Klammer({S})".format(N=n,S=s))

Re: print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 15:49
von kodela
Danke Euch beiden.

Jetzt sieht es so aus, wie ich es wollte. Der Einfachheit halber habe ich mich für den Vorschlag von @Sirius3 entschieden. Damit habe ich bei vier Werten die kürzesten Zeilen.
Ich habe aber auch interessehalber alle drei Vorschläge von @pyHoax ausprobiert, mit denen es natürlich auch funktioniert.

MfG, kodela

Re: print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 16:12
von pyHoax
mit denen es natürlich auch funktioniert.
Bei der print/format Funktionalität ist python doch weit ab vom Zen:
Es sollte einen – und vorzüglich NUR einen – offensichtlichen Weg der Lösung geben.

Re: print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 16:30
von kbr
pyHoax hat geschrieben:Bei der print/format Funktionalität ist python doch weit ab vom Zen
Und mit Python 3 gibt es noch eine weitere Möglichkeit:

Code: Alles auswählen

print("n in Klammer (", n, ") und s in Klammer(", s, ")", sep="")

Re: print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 16:35
von BlackJack
@kbr: Die Möglichkeit gibt's in Python 2.7 auch schon wenn man ``print`` zu einer Funktion macht. Ab Python 3.6 gibt's noch f-Strings. Ist zumindest syntaktisch eine weitere Möglichkeit.

Re: print-Ausgabe - Leerstellen vor Werten in Klammern

Verfasst: Dienstag 20. Dezember 2016, 16:49
von kbr
@BlackJack: Ja, stimmt. Ob mir die neuen f-Strings gefallen, weiß ich noch nicht; ich halte es zumeist gerne mit 'explicit is better than implicit'.