[Curso de Python] Produzindo saídas - parte 2
por
em 28-10-2009 às 08:40 (8778 Visualizações)
Antes de prosseguir leia os artigos anteriores aqui
Dando continuidade ao artigo sobre como gerar saídas em Python.
Produzindo saídas
Às vezes utilizar a soma ou a vírgula pode gerar um código muito poluído. Muitas vezes é mais vantajoso formatar as strings por meio do operador %. Com ele é possível passar argumentos e definir o tipo da variável. Vamos ver um exemplo para esclarecer:
Podemos notar que utilizei duas notações %s e %d. O %s significa que o ele seria substituído por uma string e o %d significa que ele seria substituido por um número decimal. A princípio isso pode parecer inútil, mas é fundamental quando temos uma saída com várias variáveis. Vamos resumir o exemplo anterior:Código :>>> nome = 'Magnun' >>> idade = 25 >>> >>> print 'Ola, meu nome é %s' % nome Ola, meu nome é Magnun >>> print 'Eu tenho %d anos' % idade Eu tenho 25 anos >>>
Existe uma lista de possíveis notações:Código :>>> nome = 'Magnun' >>> idade = 25 >>> print 'Ola, meu nome e %s, eu tenho %d anos.' % (nome, idade) Ola, meu nome e Magnun, eu tenho 25 anos. >>>
- 'd' e 'i'- Inteiro decimal;
- 'o' - Valor octal
- 'u' - Obsoleto, foi substituido pelo 'd'
- 'x' - Hexadecimal (em minúsculo);
- 'X' - Hexadecimal (em maiúsculo);
- 'e' - Ponto flutuante em representação exponencial (em minúsculo);
- 'E' - Ponto flutuante em representação exponencial (em maiúsculo);
- 'f' e 'F' - Ponto flutuante em fomrmatação decimal;
- 'g' - Ponto flutuante. Usa a formatação exponencial minúscula se o expoente for menor que -4 ou menor que a precisão indicada, caso contrário utiliza a formatação de ponto flutuante decimal;
- 'G' - Ponto flutuante. Usa a formatação exponencial maiúscula se o expoente for menor que -4 ou menor que a precisão indicada, caso contrário utiliza a formatação de ponto flutuante decimal;
- 'c' - Único caractere (aceita um inteiro ou um string de um único caractere);
- 'r' - String (converte qualquer objeto usndo repr());
- 's' - String (converte qualquer objeto usndo str()).
Ok, são muitos. Mas a maioria não será necessária para nós no início. Vamos somente nos ater em %d, %f e %s.
Há também a possibilidade de ao invés de utilizar uma tupla, utilizar um dicionário. Dessa forma podemos substituir os %s por uma 'chave':
Uma vantagem desse método é que podemos repetir várias vezes a mesma chave:Código :>>> print "Mensagem: %(msg)s" % {'msg': 'Ola Mundo!'} Mensagem: Ola Mundo! >>> print "Ola! Me chamo %(nome)s e tenho %(idade)d" % {'nome':'Magnun', 'idade':25} Ola! Me chamo Magnun e tenho 25 >>>
Outra vantagem é a utilização do nome de variáveis e da função vars():Código :>>> print '%(msg1)s %(msg1)s esse e um teste de %(msg2)s' % {'msg1':"Atencao!", 'msg2':'repeticao'} Atencao! Atencao! esse e um teste de repeticao >>>
Como isso funciona? Simples, a função vars() gera um dicionário com todas as variáveis locais e globais! Façam um teste depois: Crie varias variáveis e chame a função vars().Código :>>> ling = "Python" >>> dif = "facil" >>> print "Eu estou aprendendo %(ling)s! Ela e muito %(dif)s!\n%(ling)s! %(ling)s! %(ling)s!" % vars() Eu estou aprendendo Python! Ela e muito facil! Python! Python! Python! >>>
Amanhã veremos o "inverso do print"! Veremos como produzir uma entrada de dados!
Até mais...
Comentários
+ Enviar Comentário