12 de outubro de 2009

Nova formatação de strings

A partir da versão 2.6 o Python traz um recurso diferente para formatar strings.

Diz o manual que a partir da versão 3.0 a formatação usando o método % será desencorajado, por isso resolvi incluir esse post.

Se você é iniciante em Python, tente começar a mudar logo para o método do str.format().

A mudança é simples. Portanto, vamos aos exemplos:
nome = 'Fernando'
sobrenome = 'Silva'
idade = 9

# Campo simples.
print "meu nome é %s" % (nome)
print "meu nome é {nome}".format(nome=nome)

# 2 campos mudando o nome da substituicao ("n" e "s").
print "meu nome completo é %s %s" % (nome, sobrenome)
print "meu nome completo é {n} {s}".format(n=nome, s=sobrenome)

# Numero com 2 algarismos e zero à esquerda.
print "minha idade é %02d anos" % (idade)
print "minha idade é {idade:02d} anos".format(idade=idade)

# Argumento posicional.
print "eu sou {0} e eu tenho {1} anos".format(nome, idade)

Eu, particularmente, prefiro o jeitão do format, porque eu posso nomear os campos. Mas ele só pode ser usado a partir do python 2.6.

Bem, esse é um post resumido, apenas com o caminho das pedras. O manual também ajuda. ;-)

Eu sou Vinicius Assef, um programador do século passado que gosta de Python, pratica Lean Development e acredita em Deus. Você pode me contactar por email ou twitter.

4 comentários:

  1. Olá Vinicius, tudo certo?

    Parabéns pelo post cara, realmente muito bom! ;D

    Abraços,
    Francisco

    ResponderExcluir
  2. Genial, simples e direto, melhor dizendo "pyctonico" :)

    ResponderExcluir
  3. O novo format como método tem várias vantagens, porém, a substituição usado keywords já existia, veja o exemplo abaixo:

    >>> x = "Teste %(nome)s e %(idade)d" % (dict(nome="ruda", idade=34))
    >>> x
    'Teste ruda e 34'

    ResponderExcluir
  4. Rudá, obrigado pela contribuição.

    A intenção deste blog é essa mesmo: enriquecer o conhecimento para os iniciantes na linguagem.

    ResponderExcluir

Marcadores