the zen of python 2010
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