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
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Hallo,
ich habe vor kurzem mit Python3 angefangen, vorher habe ich schon in einigen anderen Sprachen wie z.B. C und Pascal geschrieben.

Ich denke meine Frage und das Problem sind relativ simpel, habe aber jetzt nichts passendes beim Suchen gefunden.

Ich habe diesen 'print' Befehl:

Code: Alles auswählen

print("Zahl", i, ": ", iZahl)
Seine Ausgabe ist dann in etwa so: "Zahl 2 : 23".

Wie kann ich die Ausgabe so beeinflussen das sie so aussieht: "Zahl2: 23"? Also einfach nur die Leer Zeichen weglassen die durch das ',' entstanden sind.

Ich hoffe Ihr könnt mir bei dem simplen Problem einen kleinen Denkanstoß geben. ;)


Gruß, deadshox
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Zuletzt geändert von nemomuk am Sonntag 4. April 2010, 12:05, insgesamt 1-mal geändert.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Ah, cool, danke, geht ja doch fast wie in C. :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

ahojnnes hat geschrieben:

Code: Alles auswählen

print("Zahl %i:%i" % (zahl1, zahl2))
http://docs.python.org/library/stdtypes ... formatting
Wieso verweist Du auf Python 2.x? Gibt es diese Option der Stringformattieruneg auch noch in Python3? Ich habe dort nur noch die .format() Methode gesehen.

Code: Alles auswählen

print("Hallo {name}".format(name = "Hyperion"))
http://docs.python.org/py3k/library/str ... ing-syntax
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Also bei mir geht es scheinbar auch in der 3.1er.

Code: Alles auswählen

#!/usr/bin/python3.1
import random

def main():

	for i in range(1, 26):
		print("Zahl %i: %i" % (i, random.randrange(1, 100)))

	return 0

main()
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

"Wr suchet, der findet" ;-)
http://docs.python.org/py3k/library/std ... formatting

Also ist das ganze "veraltet" und man sollte es nicht unbedingt mehr verwenden...
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Also ist deine Variante aktueller?

Ich dachte in Python3 wurden die Altlasten entfernt?
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Nicht konsequent genug wie du siehst ;)

Ja, Hyperions Variante ist zu bevorzugen.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Ok, danke schön!
schorsch
User
Beiträge: 18
Registriert: Montag 26. November 2007, 18:39

Hm, also ich frage mich gerade, warum hier nicht auf die neuen Möglichkeiten der Print-Funktion hingewiesen wird:

Code: Alles auswählen

>>> print('Zahl', 5, ': ', 5 ** 2, sep='')
Zahl5: 25
lunar

Weil das keine schöne Lösung ist. Solche Wort-Puzzeleien sind nicht sonderlich lesbar oder flexibel. Zudem ist das eine der größten Sünden, wenn die Anwendung lokalisierbar sein soll.

Diese Möglichkeit ist nett fürs Debugging und komfortabel im interaktiven Modus, aber ansonsten würde ich davon Abstand nehmen.
schorsch
User
Beiträge: 18
Registriert: Montag 26. November 2007, 18:39

Ah, OK. Hatte mich nur gewundert, weil das der Ausgangssituation des Fragestellers IMHO am nächsten kommt.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Meine frage kam auch daher weil bei mir dann so etwas raus gekommen ist:

Code: Alles auswählen

>>> print('Zahl', 5, ': ', 5 ** 2, sep='')
Zahl 5 : 25
Die Leerzeichen vor und nach der 5.
BlackJack

@deadshox: Das kann ich nicht nachvollziehen:

Code: Alles auswählen

>>> print('Zahl', 5, ': ', 5 ** 2, sep='')
Zahl5: 25
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Ok, ich hätte es testen sollen. :)

Wenn man

Code: Alles auswählen

sep=''
weg lässt, kommt man auf mein Ergebnis.
fabi1511
User
Beiträge: 23
Registriert: Donnerstag 25. Juni 2009, 18:59

das ist der sinn von

Code: Alles auswählen

sep=''
;)
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Dacht ich mir schon. :)
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

deadshox hat geschrieben:Dacht ich mir schon. :)
Wenn du nicht auf Vermutungen angewiesen sein willst, dann hilft auch ein Blick in die Dokumentation zu print().
Antworten