Seite 1 von 1

formatieren eines strings mit variabler formatlänge

Verfasst: Sonntag 8. August 2010, 14:44
von Francesco
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"

Re: formatieren eines strings mit variabler formatlänge

Verfasst: Sonntag 8. August 2010, 14:50
von BlackJack
@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

Re: formatieren eines strings mit variabler formatlänge

Verfasst: Sonntag 8. August 2010, 14:55
von Francesco
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)

Re: formatieren eines strings mit variabler formatlänge

Verfasst: Sonntag 8. August 2010, 14:57
von DaMutz
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)

Re: formatieren eines strings mit variabler formatlänge

Verfasst: Sonntag 8. August 2010, 15:54
von Francesco
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.

Re: formatieren eines strings mit variabler formatlänge

Verfasst: Sonntag 8. August 2010, 16:39
von b.esser-wisser
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