segunda-feira, janeiro 15, 2007

Trabalhando com strings

Só pra não deixar o blog parado, vamos dar uma pequena olhada no que o Python pode fazer com strings, apenas alguns métodos. Primeiro vale lembra que em Python, tudo são objetos, então uma string também é um objeto, e tem varios metodos embutidos que facilitam seu manuseio e formatação. Não é preciso declarar variáveis, então para criar uma string, basta atribuir:

>>> nome = 'igor'

>>> nome
'igor'

Ou para tornar um outro tipo em string:

>>> numero = 12.45
>>> string = str(numero)
>>> string
'12.45'

As strings possuem aspas simples ou duplas, para o caso de precisarmos de algumas delas dentro da própria string:

>>> nome = "meu nome é 'igor' "
>>> nome
"meu nome é 'igor' "

E se quisermos escrever uma string usando varias linhas:

>>> nome = ''' estou
... aprendendo
... python'''
>>> nome
'estou\n aprendendo\n python'

Note que um carácter quebra de linha (\n) é adicionado automaticamente com o Enter.
Agora vamos brincar com letras maiúsculas e minúsculas:

>>> nome = 'igor sobreira'
>>> nome.capitalize()
'Igor sobreira'
>>> nome
'igor sobreira'
>>> nome = nome.capitalize()
>>> nome
'Igor sobreira'

capitalize() retorna a primeira letra de string em maiúscula, mas sem alterar o valor da string atual. Tambem tem o upper(), e o lower():

>>> nome = 'igor'
>>> nome = nome.upper()
>>> nome
'IGOR'
>>> nome.lower()
'igor'

Também é possivel procurar por um caracter numa string, mostrando seu índice, mas isso retornara um erro, caso nao encontre:

>>>nome = 'python'
>>> nome.find('t')
2

Outro método muito interessante é o split():

>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']

o argumento que splt() recebe, é onde a string será cortada, e retornara uma lista como o exemplo acima.

>>> pasta = '/home/python/programa.py'
>>> pasta = pasta.split('/')
>>> pasta
['', 'home', 'python', 'programa.py']

Agora vamos fazer o inverso:

>>> '/'.join(pasta)
'/home/python/programa.py'
>>> ' ---- '.join(pasta)
'----home----python----programa.py'

Agora o método que eu acho mais interessante de todos é o replace:

>>> nome = 'mergulhando em java'
>>> nome = nome.replace(' em java', ' no python')
>>> nome
'mergulando no python'
>>> nome.replace('mergulhando em ','')
'python'

O replace pode ser utilizado pra tirar aquele estaço que fica no começo ou no final da string, mas, como não é surpresa, o Python ja tem isso pronto, é o strip(), mas ele so tira do começo e/ou do final da string:

>>> nome = ' python e muito bom '
>>> nome.strip()
'python e muito bom'

Ahh..quase ia me esquecendo, concatenar strings! Isso é algo muito dificil, creio que é a maior dificuldade de quem começa na linguagem:

>>> comeco = 'aprendendo '
>>> fim = 'python'
>>> comeco + fim
'aprendendo python'

Bem, e o print de Python, pode ser usado como o 'printf' de C:

>>> print 'aprendendo %s' %'python'
aprendendo python


É claro que existem varios outros métodos para strings, esses são os mais usados, caso alguem lembre-se de outro, pode colocar nos comentários :)

3 comentários:

Anônimo disse...

Me salvou esse artigo ae hahahaha tava esquecendo do velho strip

Diego disse...

Split né cabeça?! ¬¬

Anônimo disse...

olá! Podia me ajudar neste exercício: "Escreva uma função cnt(a) que conte quantas palavras com cinco letras (maiúsculas ou minúsculas)
há na lista de strings a (nota: não pode assumir que
as palavras são compostas apenas por letras)." É que mesmo sabendo o que disse, não o consigo resolver...