If you can't read please download the document
Upload
marinho-brandao
View
2.370
Download
0
Embed Size (px)
Citation preview
O Prazer de Trabalhar com Python
Marinho Brando, 6 FGSL, 2009, Goinia
Quem o palestrante
Quem o palestrante
pragmtico
No tem ensino superior
Desenvolvedor h 13 anos
Autnomo, consultor e desenvolvedor
Co-fundador da comunidade Django brasileira
Autor do Geraldo Reports
Programador Python do Ano em 2009
O que Python?
O que Python?
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.)
Fcil de aprender e entender
Explcita, edentada e interativa
Software livre compatvel com GPL
Exemplos de cdigo
Exemplo: Clculo de Fibonacci
# -*- coding: utf-8 -*-
a = 1b = 1
while a < 500: print a a, b = b, a + b
Exemplo simples que imprime a sequncia Fibonacci at 500
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 = '(.*?)' 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 cdigo que captura o resultado de uma URL e usaexpresso regular para listar os tens encontrados
Exemplo: Orientao 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
Exemplo: Orientao 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_logdef escrever2(palavra): print palavra
print '-' * 80escrever1('Ola pessoal'); escrever1('Como vao, tudo bem?')print '-' * 80escrever2('Ola pessoal'); escrever2('Como vao, tudo bem?')print '-' * 80
Exemplo: Programao 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 listaoprint reduce(lambda a,b: a+b, listao)
Quem usa Python
Quem usa Python
YouTube
Globo.com
Terra
Yahoo
Politec
Interlegis
Serpro
World News
Novell
CIA
NASA
DataPrev
Canonical
RedHat
Nokia
Ubuntu
OpenOffice
Blender
Gimp
Frases relevantes
Frases relevantes
[...] nossa filosofia geral 'Python onde podemos, C++ onde somos obrigados.' Python no definitivamente apenas um pequeno pedao, nem usado apenas para tarefas 'de scripting'; se ficssemos sem todo nosso cdigo Python de uma hora para outra, nossa poderosa infra-estrutura que tem sido descrita como 'a arma secreta do Google' ficaria abalada. Alex Martelli, Lder Tcnico, Sistemas de Produo, Google Inc.
Python rpido o suficiente para o nosso site e permite que ns produzamos caractersticas que pode ser mantidas em tempo recorde, com um mnimo 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/
Frases relevantes
Python desempenha um papel-chave no nosso esquema de produo. Sem ela um projeto do tamanho de 'Guerras de Estrela: Episdio II' teria sido muito difcil de sair. Da renderizao da multido ao processamento em lote e a composio, Python mantm todas as partes unidas. Tommy Burnette, Diretor Tcnico Snior, ILM
A nossa equipe tem baseado a transio de Perl para Python na facilidade. H trs razes primrias para isso. A criao de bindings em Python para uma biblioteca C++ muito fcil [...]. A natureza orientada a objeto de Python muito atraente [...]. E Python uma cidad de primeira classe [...] na nossa indstria. Darin Grant, Chefe de Produo de Tecnologia, DreamWorks
http://www.python.org/about/quotes/
http://marrcandre.blogspot.com/2007/06/linux-alimentando-o-ogro.html
Perguntas?
Marinho Brando
[email protected]://www.marinhobrandao.comhttp://www.aprendendodjango.com
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso