SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Revisão Strings
fmasanori@gmail.com
Texto
• É difícil comunicar-se sem palavras
• Entre os vários tipos de dados, um dos mais
importantes é o texto ou string
– Obs.: não é tão fácil manipular strings em algumas
linguagens
• Vamos procurar onde estão as informações
num texto == scraping
• E iremos aprender um dos conceitos mais
importantes de orientação à objetos: métodos
Starbuzz Café
Meu programador
sumiu! Você pode me
ajudar? Ele deixou o
seguinte código...
Código Starbuzz atual
O CEO quer apenas o preço
Você acha que
pode obter
apenas o preço?
O preço está embutido no HTML
• Este é um texto HTML “bruto”, que é o
formato das páginas Web
• O preço está embutido no HTML
Strings
• Strings são seqüências de caracteres
• Como obter apenas o preço?
Strings
Início da
string
Deslocamento
zero
Deslocamento
1
Deslocamento
2
Strings
O primeiro é zero!!
Fatiamento
Fatia do primeiro número até antes do segundo
Não inclui o segundo número!
0 1 2 3 4 5 6 7 8
Fatiamento
preço
234 é o início
do preço
238 é logo
depois do fim
Fatiamento
O CEO está feliz!
Exatamente o que preciso!
Você não sabe quanto
tempo e dinheiro irá
economizar para mim...
Não existem perguntas idiotas
• Posso colocar qualquer página web neste código?
– Sim. Fique à vontade, mas não esqueça o decode
– Por exemplo, o site abaixo usa iso8859
– http://www.ime.usp.br/~pf/algoritmos/dicios/br
• O que urllib.request faz?
– Permite conversar com a internet
• Posso acessar uma página diretamente no
navegador?
– Sim. Digite no modo interativo “import antigravity”
Descontos para clientes fiéis
Vocês poderiam ver o
preço no programa de
fidelidade? Acho que é
simples mudar...
Clientes normais
Clientes fiéis
Programa de fidelidade
Não deu certo! Apareceu “bean” no lugar do
preço. Por quê será?
O preço se moveu
• As páginas são diferentes e o preço muda de
posição na string
Os dados do Python são espertos
• As linguagens de programação fornecem uma
funcionalidade embutida nos dados para
ajudá-lo
• Os dados do Python são espertos: eles podem
fazer coisas
Método find
• Métodos find para strings
Para saber os métodos que possuo dar ctrl + espaço após ponto
Método find
Você conseguiu de
novo! Mas eu queria
comprar só se for
menos que 4.74...
Só quando for menos que 4.74
Dá para ver se
é menos que
4.74?
Só quando for menos que 4.74
Strings são diferentes de números
Você não faz
o meu tipo...
Convertendo para float
Ele pode ficar testando o preço?
Ele pode ficar
tentando para
mim?
Ele pode ficar tentando?
O CEO está muito feliz!
Vou distribuir seu
programa em TODAS
as filiais da Starbuzz!
Aconteceu algum problema
E fomos acusados
de ser hacker´s!
O servidor da
empresa de grãos
travou!
Acusação de DDoS
• DDoS – Distributed Denial of Service
Se o valor está
acima de 4.74 o
programa NÃO
espera e já
acessa o site de
novo!
Seu programa
gera milhares
de solicitações
por hora em
todas as filiais
Recebemos uma mensagem
Zzkzzkkvkk... Desculpe, cara... Vvzzz...
Muita neve.... Ffzzkk... A ligação....
Pzzzkkvkk... Acho que você precisa....
Vzzzzkkk.... da biblioteca time!
Biblioteca time
• Hora atual em segundos time.clock()
• Estou no horário de verão? time.daylight()
• Dormir alguns segundos time.sleep(secs)
• Fuso horário time.timezone()
10 minutos entre cada acesso
Resumo
• Strings são seqüências de caracteres
• Acessamos os caracteres individuais pelo
índice, que começa com zero
• Métodos são funções embutidas nas variáveis
• Existem bibliotecas de programação com
código pronto
• Os dados possuem um tipo, como int ou string
Ferramentas Python
• texto[4] acessa o 5º caracter
• texto[4:9] acessa do 5º ao 9º caracter
• O método texto.find() procura um substring
• float() converte algo para ponto flutuante
• Bibliotecas: urllib.request e time

Mais conteúdo relacionado

Mais de FATEC São José dos Campos

import pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon Brazilimport pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon BrazilFATEC São José dos Campos
 
Lista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbisLista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbisFATEC São José dos Campos
 

Mais de FATEC São José dos Campos (20)

Seja feliz programando em python
Seja feliz programando em pythonSeja feliz programando em python
Seja feliz programando em python
 
import pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon Brazilimport pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon Brazil
 
Import community pycon jp
Import community pycon jpImport community pycon jp
Import community pycon jp
 
Import community
Import communityImport community
Import community
 
Diversidade na Comunidade Python
Diversidade na Comunidade PythonDiversidade na Comunidade Python
Diversidade na Comunidade Python
 
Why python
Why pythonWhy python
Why python
 
Hackeando Dados públicos com python
Hackeando Dados públicos com pythonHackeando Dados públicos com python
Hackeando Dados públicos com python
 
Import community
Import communityImport community
Import community
 
Python, the next Brazilian generation
Python, the next Brazilian generationPython, the next Brazilian generation
Python, the next Brazilian generation
 
Para gostar de Python DevDay
Para gostar de Python DevDay Para gostar de Python DevDay
Para gostar de Python DevDay
 
Classic Games with Python in the browser
Classic Games with Python in the browserClassic Games with Python in the browser
Classic Games with Python in the browser
 
Exercício Programa 1 Python para Zumbis
Exercício Programa 1 Python para ZumbisExercício Programa 1 Python para Zumbis
Exercício Programa 1 Python para Zumbis
 
Lista de exercícios IV python para zumbis
Lista de exercícios IV python para zumbisLista de exercícios IV python para zumbis
Lista de exercícios IV python para zumbis
 
Lista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbisLista de exercícios III Desafios python para zumbis
Lista de exercícios III Desafios python para zumbis
 
Lista de exercícios II python para zumbis
Lista de exercícios II python para zumbisLista de exercícios II python para zumbis
Lista de exercícios II python para zumbis
 
Lista de exercícios I python para zumbis
Lista de exercícios I python para zumbisLista de exercícios I python para zumbis
Lista de exercícios I python para zumbis
 
Lista de exercícios XIV Python para Zumbis
Lista de exercícios XIV Python para ZumbisLista de exercícios XIV Python para Zumbis
Lista de exercícios XIV Python para Zumbis
 
TWP56 DJ Mix 1
TWP56 DJ Mix 1TWP56 DJ Mix 1
TWP56 DJ Mix 1
 
TWP54 Exceções
TWP54 ExceçõesTWP54 Exceções
TWP54 Exceções
 
TWP52 MVC Model View Controller
TWP52 MVC Model View ControllerTWP52 MVC Model View Controller
TWP52 MVC Model View Controller
 

Revisão Strings: manipulação e métodos em Python

  • 2. Texto • É difícil comunicar-se sem palavras • Entre os vários tipos de dados, um dos mais importantes é o texto ou string – Obs.: não é tão fácil manipular strings em algumas linguagens • Vamos procurar onde estão as informações num texto == scraping • E iremos aprender um dos conceitos mais importantes de orientação à objetos: métodos
  • 3. Starbuzz Café Meu programador sumiu! Você pode me ajudar? Ele deixou o seguinte código...
  • 5. O CEO quer apenas o preço Você acha que pode obter apenas o preço?
  • 6. O preço está embutido no HTML • Este é um texto HTML “bruto”, que é o formato das páginas Web • O preço está embutido no HTML
  • 7. Strings • Strings são seqüências de caracteres • Como obter apenas o preço?
  • 10. Fatiamento Fatia do primeiro número até antes do segundo Não inclui o segundo número! 0 1 2 3 4 5 6 7 8
  • 11. Fatiamento preço 234 é o início do preço 238 é logo depois do fim
  • 13. O CEO está feliz! Exatamente o que preciso! Você não sabe quanto tempo e dinheiro irá economizar para mim...
  • 14. Não existem perguntas idiotas • Posso colocar qualquer página web neste código? – Sim. Fique à vontade, mas não esqueça o decode – Por exemplo, o site abaixo usa iso8859 – http://www.ime.usp.br/~pf/algoritmos/dicios/br • O que urllib.request faz? – Permite conversar com a internet • Posso acessar uma página diretamente no navegador? – Sim. Digite no modo interativo “import antigravity”
  • 15. Descontos para clientes fiéis Vocês poderiam ver o preço no programa de fidelidade? Acho que é simples mudar... Clientes normais Clientes fiéis
  • 16. Programa de fidelidade Não deu certo! Apareceu “bean” no lugar do preço. Por quê será?
  • 17. O preço se moveu • As páginas são diferentes e o preço muda de posição na string
  • 18. Os dados do Python são espertos • As linguagens de programação fornecem uma funcionalidade embutida nos dados para ajudá-lo • Os dados do Python são espertos: eles podem fazer coisas
  • 19. Método find • Métodos find para strings Para saber os métodos que possuo dar ctrl + espaço após ponto
  • 20. Método find Você conseguiu de novo! Mas eu queria comprar só se for menos que 4.74...
  • 21. Só quando for menos que 4.74 Dá para ver se é menos que 4.74?
  • 22. Só quando for menos que 4.74
  • 23. Strings são diferentes de números Você não faz o meu tipo...
  • 25. Ele pode ficar testando o preço? Ele pode ficar tentando para mim?
  • 26. Ele pode ficar tentando?
  • 27. O CEO está muito feliz! Vou distribuir seu programa em TODAS as filiais da Starbuzz!
  • 28. Aconteceu algum problema E fomos acusados de ser hacker´s! O servidor da empresa de grãos travou!
  • 29. Acusação de DDoS • DDoS – Distributed Denial of Service Se o valor está acima de 4.74 o programa NÃO espera e já acessa o site de novo! Seu programa gera milhares de solicitações por hora em todas as filiais
  • 30. Recebemos uma mensagem Zzkzzkkvkk... Desculpe, cara... Vvzzz... Muita neve.... Ffzzkk... A ligação.... Pzzzkkvkk... Acho que você precisa.... Vzzzzkkk.... da biblioteca time!
  • 31. Biblioteca time • Hora atual em segundos time.clock() • Estou no horário de verão? time.daylight() • Dormir alguns segundos time.sleep(secs) • Fuso horário time.timezone()
  • 32. 10 minutos entre cada acesso
  • 33. Resumo • Strings são seqüências de caracteres • Acessamos os caracteres individuais pelo índice, que começa com zero • Métodos são funções embutidas nas variáveis • Existem bibliotecas de programação com código pronto • Os dados possuem um tipo, como int ou string
  • 34. Ferramentas Python • texto[4] acessa o 5º caracter • texto[4:9] acessa do 5º ao 9º caracter • O método texto.find() procura um substring • float() converte algo para ponto flutuante • Bibliotecas: urllib.request e time