O Prazer De Trabalhar Com Python

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

Google

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