the zen of python 2010

Download The zen of python 2010

If you can't read please download the document

Upload: luiz-aldabalde

Post on 16-Apr-2017

2.416 views

Category:

Technology


1 download

TRANSCRIPT

THE ZEN OF PYTHON

Luiz Guilherme Aldabalde

De onde venho ?

SERPRO

Maior Provedor do Governo de tecnologia de Informaes e Comunicaes Principais Clientes: Ministrio da Fazenda, Planejamento, Justia, Transportes, Comunicao, Educao e Gabinete Civil e Presidncia. Mais de 3 bilhes de Transaes/ano Mltiplas plataformas e padres abertos ASP + ISP + NSP

Servio Federal de Processamento de Dados

Serpro is the biggest ITC service provider in Brazil. It was created to serve to Ministry of Finance, ad today it severs to many other ministries like: Ministry of Budget and Planning, Civil cabinet of republic presidency, education, transportation and many othersSerpro is a 9000 thousand employees organization distributed in 330 brazilians townsbranches in 10 states

You can say that Serpro would be better described as an Application Service Provider,an Internet Service Provider and a Network Service Provider or any other SP required by Government.

Com sua ampla base operacional, o Serpro presta servios em rede que abrange todo o territrio nacional, num volume de ordem superior a 3 bilhes de transaes on-line anuaisSo 9.944* empregados alocados em mais de 330 municpios brasileiros

Our government clients are: Ministry of Finance, Ministry of Planning and Budget, Civil Cabinet of Republic Presidency, Ministry of Transportation, communication and now education.

Contedo

O que o Python ? Quem usa Python ? Python no Governo Brasileiro Qual o diferencial do Python ? Por onde comear ?

Mas afinal o que significa Python ?

O que Python ?

Python uma espcie de cobra ...

O que Python ?

Tambm um modelo de arma ...

Python 3

O que Python ?

E at o nome de um mssil !!!Mas na verdade ...

O que Python ?

O que Python ?

Introduo

Segundo seu criador a linguagem foi concebida para ocupar o espao que existia entre as linguagens C/C++ e o shell.

Histrico

O Python foi criado em 1990 por Guido van Rossum, a partir de uma outra linguagem chamada ABC, que tinha como foco original usurios como fsicos e engenheiros.

Final do Anos 80

ABC

AMOEBAPython Script

Python

1990

Genealogia

Iniciando o uso do Python

CobolFortran IAlgol 60Fortran 77PL/I

TclPerlSmalltalkC (K&R)LispScheme

Common LispFortran 90

Scheme R5RS

Perl 5Pascal

C ++

Smalltalk 80Python

JavaC ++ (Iso)

Python 2.0Ada 83EiffelRuby

Java 2C#

Boo

ICON

MDULA-3

CHASKELLABCLISPSMALLTALK

DNA

PERLTCL

PYTHONWikipedia linguagens que influenciaram o Python

Voc j usou o Python ?

Introduo

Fcil Aprendizado (VHLL) Fcil Manuteno Possui uma extensa biblioteca padro Interpretada e interativa Possui uma poderosa estruturas de dados nativas Disponvel com cdigo aberto e livre Interface para outras Linguagens ( Lua, Java, C) Multi-plataforma um canivete-suo !!!

PYTHONSCRIPTSESTRUTURADAFUNCIONALOOMltiplos Paradigmas

# Busca em uma pgina web o valor do dolar comercial import urllib, re site = urllib.urlopen('http://economia.uol.com.br/cotacoes/').readlines()

for linha in site: if linha.find('paralelo (em R$)') > 0: valores = linha numeros = re.findall(r'[0-9]+(?:\,[0-9]+)', linha) print 'Dolar Paralelo' print 'Compra %s' %numeros[0] print 'Venda %s' %numeros[1] print 'Variacao %s' %numeros[2] Introduo

Exemplo de um script

Dolar ParaleloCompra 2,137Venda 2,139Variacao 1,97

# -*- coding: utf-8 -*-# modulo financas.py# Busca em uma pgina web o valor do dolar comercialimport urllib, import re

def extrai_cotacao(moeda,mercado='R$'): funo para retornar a cotacao de uma moeda em seu mercado moeda - nome da moeda mercado tipo (ex.paralelo) site = urllib.urlopen('http://economia.uol.com.br/cotacoes/').readlines() numeros = [] for linha in site: if linha.find(moeda) > 0 and linha.find(mercado) > 0: numeros = re.findall(r'[0-9]+(?:\,[0-9]+)', linha) return numeros

Introduo

Estruturando o exemplo do script

# modulo cotacao.pyfrom financas import extrai_cotacao

cotacao= extrai_cotacao('Euro') # para o euro na pgina no tinha mercadoprint "Euro - compra (%s) venda (%s)" % (cotacao[0],cotacao[1])

Euro - compra (2,842) venda (2,844)

def fatorial(num): fatorial de forma recursivaif num < 0: return 0if num == 0: return 1return num*fatorial(num-1) print fatorial(5) def fatorial(num): fatorial de forma funcional return reduce(lambda x,y:y*x,[1]+range(1,num+1))

print fatorial(5)Programao Funcional

Introduo

# -*- coding: latin-1 -*-def um(msg): print msg return

def dois(msg): print "segunda vez ... " + msg return lista = [um, dois]

resp = raw_input("Escolha uma opo\n 1-Faz isso\n 2-Faz aquilo\n 3-Acaba\n\n")

while resp '3': lista[int(resp)-1]("um") resp = raw_input("Escolha uma opo\n 1-Faz isso\n 2-Faz aquilo\n 3-Acaba\n\n")Programao Funcional

Introduo

class Cesta: def __init__(self,conteudo=None): self.conteudo = conteudo def inclui(self,elemento): self.conteudo.append(elemento) def abre_a_cesta(self): resultado = "" for elemento in self.conteudo: resultado = resultado + " " + `elemento` print "Contm: "+resultado

nova_cesta = Cesta()nova_cesta.inclui('uva')nova_cesta.inclui('melao')nova_cesta.abre_a_cesta()

Contm: 'uva' 'melao'Introduo

Orientao objetos

Explicit is better than implicit (ZoP)

Aplicaes com Python

Encontramos o Python no :

Blender, Maya OpenOffice Zope/Plone Django BitTorrent MoinMoin Mailman Chandler Gimp Gnumeric Anaconda, Portage, Yum Trac

Blender e Maya 3dBitTorrent pear to pear file shareMoinMoin wikiAnaconda Instalador do Red Hat, FedoraPortage Synaptic do GentooYum instalador de pacotes do FEDORA e RHTrac controle de projeto

Python na Nuvem

Quem usa Python ?

"Python tem sido uma parte importante na Google desde o incio e continua de acordo com o crescimento e a evoluo do sistema. Hoje dzias de engenheiros da Google usam Python, e estamos procurando por mais pessoas com habilidades na linguagem." Disse Peter Norvig, diretor de busca de qualidade na Google, Inc.

Quem usa Python ?

Python rpido o suficiente para nosso site e nos permite produzir e funcionalidades que podem ser mantidas em tempo recorde, com o mnimo de desenvolvedores disse Cuong Do, Software Architect, YouTube.com.

Quem usa Python ?

Quem usa Python ?

Ns escolhemos Python porque prov a mxima produtividade, cdigo claro e fcil de manter, forte and extensvel (e crescente !) bibliotecas, e excelente capacidade de integrao com outras aplicaes em qualquer plataforma.Python atingiu ou excedeu todas as necessidades que ns tnhamos," disse Steve Waterbury, Software Group Leader, NASA STEP Testbed.

CAD/CAE/PDMmodelagem integraao

Quem usa Python ?

Quem usa Python ?

Python substituiu o Scheme como linguagem introdutria em Engenharia e Cincia da computao no MIT.Principalmente por conta de suas bibliotecas que implementam interfaces para robtica disse Gerald Jay Sussman um dos criadores do Scheme quando perguntado porque do Python no MIT.

Quem usa Python ?

"Python realiza um papel chave no ciclo de produo. Sem ele um projeto do tamanho de Star Wars: Episode II seria complicado de ser realizado. Desde a renderizao das pessoas em processamento batch at a composio, Python junta todas as coisas juntas," disse o Tommy Burnette, Diretor Tcnico da Industrial Light & Magic.

Quem usa Python ?

O Serpro criou uma fbrica virtual para desenvolver portais para o governo federal. As ferramentas ZOPE e PLONE, foram selecionadas para o projeto, representaram uma economia inicial de R$ 10 milhes para a Empresa em custo de aquisio de softwares proprietrios alm de um aumento visvel de produtividade.Srgio Borba Cangiano Diretor do SERPRO a Revista Tema

Quem usa Python ?

CPQD Maior centro de ti e telecom da america latina usa python em aplicao que monitora centrais telefnicas.

Conectiva Usa python para gerenciar os pacotes da distribuio LINUX.

Embratel As interfaces do backbone e clientes internet so monitoradas por um sistema feito em python.

Petrobrs Utiliza python para fazer simulaes grficas de plataformas em seus ambientes.

Quem usa Python ?

Utilizado pelas seguintes Empresas :

Bank of Boston Nasa, United Space Alliance Google, Yahoo , YouTube Nokia, Nortel RedHat, Gentoo Apple Disney Philips Los Alamos National Laboratory ILM - Industrial Ligth & Magic University of Maryland Atari

Philips-

Los Alamos fsicos e engenheiros no querem aprender C++ usam python e perl

Python no Governo Brasileiro

No Governo: As mudanas so rpidas: Python flexvel

Os cronogramas so apertados: Python produtivo e gil

As plataformas e ambientes so as mais variadas: Python uma soluo cross-platform de grande qualidade

Necessita de maior integrao entre suas solues: Python uma excelente linguagem de ligao

Necessita economizar dinheiro: Python Software Livre e com a maiorias de seus produtos relacionados tambm livres

Python no Governo Brasileiro

Portais ZOPE/PLONE Linguagem de Script Integrao Prototipao rpida CVS controle de verso

Onde estamos usando Python no Serpro

Qual o diferencial do Python ?

Cdigo mais vezes lido do que escrito !

Clareza na linguagem fundamental para o aprendizado e para a manuteno do cdigo.

Por que usar o Python ?

Readability counts ! (ZoP)

MULTIPLATAFORMA

Por que usar o Python ?

Alta portabilidade Presente em 98% das distribuies LINUX Alta integrao com Windows COM Iron Python PDAs,Celulares e tablets

UNIX

iPhone

Implementaes :

CPython Escrita em C Jython (mquina virtual Java) IronPython .NET (Microsoft) PyPy Python escrito em Python PyS60 Nokia

Por que usar o Python ?

Por que Python ?

MATURIDADE

1990 - Nascimento 1994 - Python ?? Que isso ? 1997 Mas ningum usa isso. 1999 Onde podemos encontrar programadores? 2004 Infoworld 6a linguagem 2005 - Python na Nokia 2007 A linguagem que mais cresceu (TIOBE) 2008 Google App Engine 2009 Melhor Linguagem Open Source (Linux New Media Award CEBIT 2009)

Bancos de Dados : ODBC, MySQL, Postgres, Oracle, SQLServer, sqlite, gadfly, ZODB/Durus, PyDO, Metakit

Rede : Twisted, asyncore, htmllib, SimpleHTTPServer, urllib, ftplib, poplib, smtplib, telnetlib

GUI : Tkinter, wxPython, PyGTk, PyQt, PyKDE, Pythonwin

Cincia : NumPY, SciPy, BioPython, AstroPy

Processamento. de Imagens : PIL, PythonMagick, Gimp-python

XML : PyXML, 4Suite, ElementTree, RDFLib, Cwm

Web : ZOPE, CherryPy, Webware, Quixote, PSP, mod_python, Nevow, Django, TurboGears, Pylons, Web2Py

IDE : Emacs, vi, idle, PyDev (Eclipse), SPE, Pythonwin, Komodo, BlackAdder, WingIDE, PyScripter, NetBeans

Jogos : Pygame, Pykra, Panda3D, Blender3D,

Por que Python ?

Por que Python ?

SOLUO

Fcil e clara

Fcil integraoC, Java, Lua

PRODUTIVIDADE

Vasta biblioteca disponvel

Mltiplos Paradigmas

Problema

Simple is better than complex (ZoP)

Testemunhos

Bruce Eckel

Autor de Best Sellers: Thinking in C++ Thinking in Java

Frases Inspiradoras: Python: it fits your brain Life is Better Without Braces Life is short ! You need Python ! Python: Batteries Included

Palestra: Why I love Python Python foi feito pra voc Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a linguagem. Eu no preciso digitar muito. Mas o que eu digito o certo

valor = int(raw_input("Digite o valor: ")) a, b = 0, 1while b < valor: { print b a, b = b, a+b }

Special cases aren't special enough to break the rules. (ZoP)

Testemunhos

Eric Raymond

Autor: A Catedral e o Bazar

mantm o Jargon File (Hacker's Dictionary)Contribuidor do GNU Emac, Linux, Fetchmail

Frases famosas: "Havendo olhos suficientes, todos os erros so bvios"

Entre todas as linguagens que aprendi, Python a que menos interfere entre mim e o problema. a mais efetiva para traduzir pensamentos em aes.

O que Eric pensa do Python:

Python amplifica seu crebro.

If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. (ZoP)

Beautiful is better than ugly. (ZoP)

Simple is better than complex (ZoP)

Por onde comear com Python ?

Livros

...

Python para desenvolvedores - Luiz Eduardo Borges

Livre para DownloadLicena Creative Commonshttp://ark4n.wordpress.com/Livros

Computao Cientfica com Python Flvio Coelho

http://www.lulu.com/content/616789

Livros

Dive into PythonMark PilgrimLivre pra download

Aprendendo PythonDavid Ascher e Mark Lutz

Python CookbookAlex Martelli, Anna Ravenscroft eDavid Ascher

How to think like a computer scientistAllen Downey, Jeff Elkner and Chris Meyers Livre pra download

Livros

Python Brasil

www.python.org.br

DocumentaoHowtosCookBookMuitos linksNotcias

[1] Campinas

[2] Braslia

[3] Joinville

[4] Rio de Janeiro

Comunidade

Site Python python.orgSite PythonRio www.pythonrio.orgLista PythonRio br.groups.yahoo.com/group/pythonrio/Lista PythonBrasil br.groups.yahoo.com/group/python-brasil/ PyconBrasil 2009 www.pythonbrasil.org.br/

Links

Comunidade RJ

http://pythonrio.org/

The Zen of Python (PEP 20 - Python Enhancement Proposals)

>>>import this (no interpretador Python)

The Zen of Python, by Tim Peters

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!

The Zen of Python

autores = [Luiz Aldabalde, Giuseppe Romagnoli]

dic_contato = {Luiz Aldabalde: [email protected]}

Contatos

Venha fazer parte desta comunidade

Clique para editar o formato do ttulo de texto

Clique para editar o formato do texto em estrutura de tpicosSegundo Nvel da Estrutura de TpicosTerceiro Nvel da Estrutura de TpicosQuarto Nvel da Estrutura de TpicosQuinto Nvel da Estrutura de TpicosSexto Nvel da Estrutura de TpicosStimo Nvel da Estrutura de TpicosOitavo Nvel da Estrutura de TpicosNono Nvel da Estrutura de Tpicos

The Zen of Python