E aqui vamos nós para mais uma aula de Python!
Mas antes da aula vamos aos recados e comentários…
Eu achei bem interessante o último exercício da aula 5, aquele em que vocês deveriam transformar a frase “o menino é legal” em “a menina é legal”. O que eu achei interessante é que somente alguns perceberam que bastava trocar as letras “o” pela letra “a”. Mas percebam que não existe “certo” ou “errado”, o que eu pedi foi para transformar uma frase em outra, então tivemos resultados assim:
frase.replace(“o menino”, “a menina”)
Que faz o que eu pedi, mas, como eu disse, dava para fazer assim:
frase.replace(“o”,”a”)
Bem mais simples, não?
O nosso fórum teve uns probleminhas de Administrador… Pois é, eu não conheço a plataforma phpBB muito bem ainda, por isso acabei deixando os fóruns sem permissão de escrita para que vocês mandassem suas sugestões de soluções da aula 5, mas agora parece que está tudo certo =)
Então vamos à aula de hoje!
Hoje vamos falar um pouco mais sobre as strings… Sim, eu sei que já vimos bastante coisa sobre elas, mas hoje vamos ver um pouco mais
Substrings
Uma coisa interessante sobre as strings é que você pode acessar pedaços delas de forma muito simples, vejam o exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/usr/bin/env python # *-* coding: utf-8 *-* titulo = 'aulas de python' # Pegando caractere por caractere print(titulo[0]) print(titulo[4]) # Agora pegando intervalos de caracteres print(titulo[0:5]) print(titulo[9:15]) # Outros modos: # Do começo até X print(titulo[:5]) # De X até o fim print(titulo[9:]) |
O resultado:
$ ./substr.py
a
s
aulas
python
aulas
python
$
Agora as explicações:
Linha 3: Defini uma variável chamada titulo e à ela dei o valor “aulas de python“.
Linha 5: Exibi o caractere 0 (zero) desda string, ou seja, a letra “a“.
Linha 6: Mesmo esquema da linha 5, só que desta vez exibindo o caractere número 4, ou seja, a letra “s“.
Agora vem a parte legal:
Linhas 8 e 9: Exibi uma lista de caracteres, primeiro a lista de 0 até 5 para mostrar a palavra “aulas”…
Pausa para compreender melhor
O Python faz a numeração dos caracteres de uma string desse jeito:
![]()
Certo, simples né? Para pegar a letra “v” eu faria isso:
texto[5]
E para pegar a palavra “Como” eu faria isso:
texto[0:3]
Nãããoooo!!! Isso retornaria apenas a string “Com“. Mas… Por que isso?
Ora, é bem simples, a lista [A:B] vai de A (inclusive) até B (exclusive). Muito complexo? Bem, ela vai de A até um antes de B, o nome disso é Slice (cortar em inglês).
Fim da pausa!
Continuando… Então se eu pegar dos caracteres de 0 até 5 (na linha 8), então eu consigo pegar a palavra “aulas”. O mesmo vale para a linha 9, onde eu pego a palavra “python”.
Linhas 12 e 14: Nestas linhas eu usei um outro recurso interessante, quando você não fornece o primeiro elemento da lista de caracteres o Python entende que você quer o primeiro caractere da string, o caractere 0 (zero). Da mesma forma quando você não fornece o segundo elemento da lista o Python entende que você quer que seja o último caractere.
Sabendo disso tudo você se pergunta se é possível fazer algo como substituir uma letra dentro de uma string:
texto[6] = “b”
Não! Não é possível alterar strings desta forma. Para isso utilize a função str.replace() que já vimos aqui.
Uma outra forma de pegar substrings é usando a função str.__getslice__(), desta forma:
titulo = “aulas de python”
print(titulo.__getslice__(0,5))
É claro que é bem mais simples usar a primeira forma ( texto[0:5]), mas é bom saber que existem outros meios
Strip
Calma… não é o que alguns pensaram… Agora veremos mais uma função da biblioteca str, a função str.strip(). Os que já programam em alguma linguagem podem conhecer essa função pelo nome trim.
Vamos aos exemplos:
1 2 3 4 5 6 | #!/usr/bin/env python # *-* coding: utf-8 *-* titulo = ' aulas de python ' print(titulo.strip()) print(titulo.lstrip()) print(titulo.rstrip()) |
Desta vez a string tem o valor de “ aulas de python ”, sim, com cinco espaços em branco antes e depois do texto. Aqui foi proposital, mas você pode se deparar com um texto assim por ai.
Na linha 4 eu removi os espaços no começo e no fim da string com a função str.strip().
Na linha 5 eu removi apenas os espaços no começo da string usando a função str.lstrip() (Left Strip).
E na linha 6 eu removi apenas os espaços no fim da string usando a função str.rstrip() (Right Strip).
Find
Agora um função legal para pesquisar textos:
1 2 3 4 5 | #!/usr/bin/env python # *-* coding: utf-8 *-* titulo = 'aulas de python' print(titulo.find('de')) print(titulo.find('we')) |
O resultado:
$ ./find.py
6
-1
$
Na linha 4 eu pesquisei pelo texto “de” e fui informado que ele está começa no caractere 6. Isso é legal para não ficar contando “de olho” onde uma substring começa.
Já na linha 5 eu pesquisei pelo texto “we“, mas como ele não existe na string eu recebi o resultado -1. Isso é interessante para fazer pesquisas em textos.
Lição de casa!
Com isso vamos para a lição de casa de hoje, que ainda é bem leve e desta vez não requer código. Mandem as respostas no corpo do e-mail mesmo:
1) Se eu tenho o texto “Oi me chamo João! Como é o seu nome?”, como eu faria para saber em que posição a palavra “nome” começa? E como eu retornaria essa palavra?
2) Ainda na mesma string da 1, como eu trocaria o nome João por José?
3) Como eu faço para remover os espaços no início de um texto? E no fim? E no início e no fim?
(A aula desse semana não deixa espaços para exercícios mais elaborados…)
E agora um desafio! Não é obrigatório fazer!
Calcule a área sob o gráfico da função f = x + 3, sendo que x vai de 2 à 4. Apenas com o que já aprendemos aqui já é possível fazer isso.
InFog.
Outros textos que você pode gostar:
- Curso de Python – Aula 9 – Mais sobre listas e um pouco de “aleatoriedade” Olá pessoal! Como foram de festas de fim de ano?...
- Curso de Python – Aula 15 – Mais sobre Orientação à Objetos Olá alunos! Na aula passada vimos um básico sobre...
- Curso de Python – Aula 5 – Matemática, Recados e Strings Olá pessoal, aqui estou para mais uma aula de...
Posts relacionados trazidos a você pelo Yet Another Related Posts Plugin.



























>

Erlon Cabral
on nov 30th, 2008
@ 18:57:
Só queria deixar uma dica pra galera que está acompanhando o curso.
Estava utilizando como IDE o Geany, que conheci através de comentário aqui mesmo, mas como brinco as vezes com Java também, utilizando o Netbeans que a pouco tempo finalizou sua versão 6.5, quando estava no site baixando essa nova versão percebi uma versão “especifica” pra desenvolvimento em Python (não sei se já tinha antes, só conhecia de um plugin), essa versão tem 26mb (versão linux), muito tranqüila de instalar e oferece um nível de organização que pra mim é ótima, fora a ajuda para identar o código completar nome de funções, variáveis… Quem já conhece o Netbens sabe de sua qualidades e defeitos, pra quem não conhece vale a pena experimentar.
[Resposta]
InFog
on nov 30th, 2008
@ 22:01:
Erlon, seguindo a sua dica eu baixei o Netbeans aqui (eu já tinha a versão 6.1) com o suporte à Python. É o editor é muito bom e o auto completar dele é bem funcional
InFog
[Resposta]
mezulig
on nov 30th, 2008
@ 22:14:
Excelente iniciativa. Tem os meus Parabéns
1abraço
[Resposta]
Henry
on nov 30th, 2008
@ 22:40:
Olá!! Obrigado pelo curso!
Bom, estou escrevendo só por ter notado um erro de digitação, caso queira corrigir… é este:
“Os que ***jpa*** programam em alguma linguagem podem conhecer essa função pelo nome trim.”
[]s
[Resposta]
Rodrigo Cesar
on dez 1st, 2008
@ 0:32:
Junior, acabei de mandar os ultimos exercicios pra vc. Espero algum contato pra saber que o envio ocorreu tudo beem.
abraço
[Resposta]
kretcheu
on dez 1st, 2008
@ 13:12:
Ola InFog,
dei uma procurada no blog e não achei.
Seria legal que cada aula do curso de Python, tivesse uma versão em pdf para impressão e posterior estudo, inclusive off-line.
O que acham ? E aí InFog ? O que acha ?
[]’s
kretcheu
[Resposta]
leonardo zanini golbspan
on dez 2nd, 2008
@ 9:50:
Evaldo vc com eu faço para entrar em contato com vc ? ? ? vc tem MSN ou SKYPE ? ? ?
[Resposta]
Márcio
on dez 2nd, 2008
@ 14:19:
Não sabia que o Netbeans já estava suportando o Python. Testarei.
[Resposta]
InFog
on dez 2nd, 2008
@ 22:37:
Kretcheu,
Pois é, muitos estão sugerindo esse pdf =) Vou juntar umas aulas e fazer uma versão assim, acho que incluir coisas novas também.
InFog
[Resposta]
Wallisson Narciso (SatanGos)
on dez 3rd, 2008
@ 8:41:
Owww. Netbeans + python, essa eu quero ver.
O PDF será bem vindo mesmo, eh bom ter um arquivo com umas aulas no note pra lembrar.
[Resposta]
nickolback
on dez 5th, 2008
@ 8:22:
Já baixaram o seu Python 3000 hoje?
Eu baixei e tem alguns códigos que quebraram, rsrs
Agora o print() deu certinho. To em busca das novidades.
[Resposta]
Ved
on dez 20th, 2008
@ 7:40:
Rapaz, vc ta de parabens pelo curso. Li as 6 aulas e adorei o Python. Realmente poderosa. Obrigado por compartilhar o conhecimento!
[Resposta]
ROBISON DE MARATAIZES-ES
on ago 7th, 2009
@ 22:18:
Professor mais uma aula completada.
Pessoal para quem utiliza linux ubuntu como eu, utilizo o ubuntu 9.04, experimentem a
IDE Geany, é leve, autocompleta os códigos, compila e executa as aplicações e o mais
importante está em português!!!
Abraço para todos e bons estudos!!!
Fui pra aula 7…………
[Resposta]