formatieren eines strings mit variabler formatlänge

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
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Sonntag 8. August 2010, 14:44

Hallo, wie ging das schnell?

ich habe eine schleife, in der ich werte mit verschiednen längen ausgeben möchte.

Code: Alles auswählen

a = "%10s" % "34"
dieses 10 ist nicht konstant, sondern soll wechseln

(pseudocode)

Code: Alles auswählen

a = "%(aktuellestellen)s" % "34"
BlackJack

Sonntag 8. August 2010, 14:50

@Francesco:

Code: Alles auswählen

In [649]: for i in xrange(10):
   .....:     print '%*s' % (i, '42')
   .....:
42
42
42
 42
  42
   42
    42
     42
      42
       42
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Sonntag 8. August 2010, 14:55

BlackJack hat geschrieben:@Francesco:

Code: Alles auswählen

In [649]: for i in xrange(10):
   .....:     print '%*s' % (i, '42')
   .....:
42
42
42
 42
  42
   42
    42
     42
      42
       42
Danke nochmals 8)
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

Sonntag 8. August 2010, 14:57

mit dem "".format() Gebilde, oder gibt es da auch eine einfachere Version?

Code: Alles auswählen

for i in xrange(10):
    print "{{value!s:*>{0}}}".format(i).format(value=34)
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Sonntag 8. August 2010, 15:54

DaMutz hat geschrieben:mit dem "".format() Gebilde, oder gibt es da auch eine einfachere Version?

Code: Alles auswählen

for i in xrange(10):
    print "{{value!s:*>{0}}}".format(i).format(value=34)
Auf jeden Fall wäre das format einmal interessant zum ansehen. Das kann sicher einiges.
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

Sonntag 8. August 2010, 16:39

DaMutz hat geschrieben:mit dem "".format() Gebilde, oder gibt es da auch eine einfachere Version?
Selbstverständlich:

Code: Alles auswählen

In [1]: s="{zahl:{laenge}d}"

In [2]: s.format(zahl=42, laenge=10)
Out[2]: '        42'

In [3]: "{zahl:0{laenge}}".format(zahl=42, laenge=10)
Out[3]: '0000000042'
hth, Jörg
Antworten