O Prazer de Trabalhar com Python Marinho Brandão, 6º FGSL, 2009, Goiânia
Quem é o palestrante
Quem é o palestrante <ul><li>É pragmático
Não tem ensino superior
Desenvolvedor há 13 anos
Autônomo, consultor e desenvolvedor
Co-fundador da comunidade Django brasileira
Autor do Geraldo Reports
Programador Python do Ano em 2009 </li></ul>
O que é Python?
O que é Python? <ul><li>Criada por Guido van Rossum em 1990
Multi-plataforma (Windows, Linux, Mac, celulares, etc.)
Compilada, Interpretada, JVM, .Net, etc.
Multi-paradigma (OOP, AOP, Estruturada, Script, Funcional, etc.)
Fácil de aprender e entender
Explícita, edentada e interativa
Software livre compatível com GPL </li></ul>
Upcoming SlideShare
Loading in …5
×

O Prazer De Trabalhar Com Python

2,309 views
2,145 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,309
On SlideShare
0
From Embeds
0
Number of Embeds
49
Actions
Shares
0
Downloads
45
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

O Prazer De Trabalhar Com Python

  1. 1. O Prazer de Trabalhar com Python Marinho Brandão, 6º FGSL, 2009, Goiânia
  2. 2. Quem é o palestrante
  3. 3. Quem é o palestrante <ul><li>É pragmático
  4. 4. Não tem ensino superior
  5. 5. Desenvolvedor há 13 anos
  6. 6. Autônomo, consultor e desenvolvedor
  7. 7. Co-fundador da comunidade Django brasileira
  8. 8. Autor do Geraldo Reports
  9. 9. Programador Python do Ano em 2009 </li></ul>
  10. 10. O que é Python?
  11. 11. O que é Python? <ul><li>Criada por Guido van Rossum em 1990
  12. 12. Multi-plataforma (Windows, Linux, Mac, celulares, etc.)
  13. 13. Compilada, Interpretada, JVM, .Net, etc.
  14. 14. Multi-paradigma (OOP, AOP, Estruturada, Script, Funcional, etc.)
  15. 15. Fácil de aprender e entender
  16. 16. Explícita, edentada e interativa
  17. 17. Software livre compatível com GPL </li></ul>
  18. 18. Exemplos de código
  19. 19. Exemplo: Cálculo de Fibonacci # -*- coding: utf-8 -*- a = 1 b = 1 while a < 500: print a a, b = b, a + b Exemplo simples que imprime a sequência Fibonacci até 500
  20. 20. Exemplo: captura da web # -*- coding: utf-8 -*- import urllib, re, sys URL_RAIZ = 'http://www.euprecisode.com.br' def efetuar_busca (palavra): fp = urllib.urlopen( '%s/pesquisa/?q=%s' %(URL_RAIZ, palavra)) cont = fp.read() fp.close() expressao = '<a href=&quot;(.*?)&quot; class=&quot;fn org&quot;>(.*?)</a>' return re.findall(expressao, cont, re.I | re.M) if __name__ == '__main__' : palavra = len(sys.argv) > 1 and sys.argv[1] or 'emprego' for url, titulo in efetuar_busca(palavra) : print titulo.ljust(50), URL_RAIZ + url Exemplo que código que captura o resultado de uma URL e usa expressão regular para listar os ítens encontrados
  21. 21. Exemplo: Orientação a Objetos class Vida(object): def __init__(self, antecedentes=None, nome='Sem Nome'): self.antecedentes, self.nome = antecedentes, nome def reproduzir(self, **kwargs): return Vida(antecedentes=(self,), **kwargs) def __repr__(self): return self.nome class Animal(Vida): def reproduzir(self, parceiro, **kwargs): return Animal(antecedentes=(self,parceiro), **kwargs) def andar(self): print self.nome, 'Andou' ameba_pai = Vida(nome='Papai Ameba') ameba_filha = ameba_pai.reproduzir(nome='Amebinha') print ameba_pai, 'e', ameba_filha, 'foram passear juntos' cao_pai, cao_mae = Animal(nome='Tchucao'), Animal(nome='Tchucadela') cao_filho = cao_pai.reproduzir(cao_mae, nome='Tchutchuquinho') print cao_pai, ',', cao_mae, 'e', cao_filho
  22. 22. Exemplo: Orientação a Aspectos from datetime import datetime def registra_log(func): def registrar_funcao(func): print '--- funcao %s registrada'%func def registrar_log_e_executar(*args, **kwargs): print '---', datetime.now().strftime('%H:%M:%S'), args return func(*args, **kwargs) return registrar_log_e_executar return registrar_funcao(func) def escrever1(palavra): print palavra @registra_log def escrever2(palavra): print palavra print '-' * 80 escrever1('Ola pessoal'); escrever1('Como vao, tudo bem?') print '-' * 80 escrever2('Ola pessoal'); escrever2('Como vao, tudo bem?') print '-' * 80
  23. 23. Exemplo: Programação Funcional lista = ['Goiania-GO','Anapolis-GO','Brasilia-DF'] lista.sort() print lista lista.sort( lambda a,b: cmp(a.split('-')[1], b.split('-')[1])) print lista print map( lambda a: a.upper(), lista) print filter( lambda a: a.endswith('-GO'), lista) print list(enumerate(lista)) outra_lista = ['capital','interior','capital'] print zip(lista, outra_lista) listao = [lista, outra_lista] print listao print reduce( lambda a,b: a+b, listao)
  24. 24. Quem usa Python
  25. 25. Quem usa Python <ul><li>Google
  26. 26. YouTube
  27. 27. Globo.com
  28. 28. Terra
  29. 29. Yahoo
  30. 30. Politec
  31. 31. Interlegis
  32. 32. Serpro
  33. 33. World News
  34. 34. Novell </li></ul><ul><li>CIA
  35. 35. NASA
  36. 36. DataPrev
  37. 37. Canonical
  38. 38. RedHat
  39. 39. Nokia
  40. 40. Ubuntu
  41. 41. OpenOffice
  42. 42. Blender
  43. 43. Gimp </li></ul>
  44. 44. Frases relevantes
  45. 45. Frases relevantes ”[...] nossa filosofia geral é 'Python onde podemos, C++ onde somos obrigados.' Python não é definitivamente apenas um pequeno pedaço, nem é usado apenas para tarefas 'de scripting'; se ficássemos sem todo nosso código Python de uma hora para outra, nossa poderosa infra-estrutura que tem sido descrita como 'a arma secreta do Google' ficaria abalada.” Alex Martelli , Líder Técnico, Sistemas de Produção, Google Inc. ”Python é rápido o suficiente para o nosso site e permite que nós produzamos características que pode ser mantidas em tempo recorde, com um mínimo de desenvolvedores.” Cuong Do , Arquiteto de Software, YouTube.com http://groups.google.com/group/comp.lang.python/browse_thread/thread/af75a3e91a03ec18/ http://www.python.org/about/quotes/
  46. 46. Frases relevantes ”Python desempenha um papel-chave no nosso esquema de produção. Sem ela um projeto do tamanho de 'Guerras de Estrela: Episódio II' teria sido muito difícil de sair. Da renderização da multidão ao processamento em lote e a composição, Python mantém todas as partes unidas.” Tommy Burnette , Diretor Técnico Sênior, ILM ”A nossa equipe tem baseado a transição de Perl para Python na facilidade. Há três razões primárias para isso. A criação de bindings em Python para uma biblioteca C++ é muito fácil [...]. A natureza orientada a objeto de Python é muito atraente [...]. E Python é uma cidadã de primeira classe [...] na nossa indústria.” Darin Grant , Chefe de Produção de Tecnologia, DreamWorks http://www.python.org/about/quotes/ http://marrcandre.blogspot.com/2007/06/linux-alimentando-o-ogro.html
  47. 47. Perguntas? Marinho Brandão [email_address] http://www.marinhobrandao.com http://www.aprendendodjango.com

×