SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
THE ZEN OF PYTHON




                                                2008


                         Giuseppe Romagnoli
                                    Versão.: 08/06/09
     The Zen of Python
Trabalho




            SERPRO
Serviço Federal de Processamento de Dados




             The Zen of Python
SERPRO



         Maior Provedor do Governo de tecnologia de
       Informações e Comunicações
         Clientes: Ministério da Fazenda,
       Planejamento, Justiça, Transportes, Educação
       e Gabinete Civil e Presidência.
        Mais de 3 bilhões de Transações/ano
        Múltiplas plataformas e padrões abertos
        ASP + ISP + NSP




The Zen of Python
Conteúdo



O que é o Python ?

Quem usa Python ?

Por que usar Python ?

Como é o Python ?




 The Zen of Python
Mas afinal o que significa Python ?




               Python 3




         The Zen of Python
Introdução

Histórico

O Python foi criado em 1990 por Guido van Rossum,
a partir de uma outra linguagem chamada ABC, que
tinha como foco original usuários como físicos e
engenheiros.

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



                           AMOEBA
            ABC            Python          Python
                           Script
              Final do Anos 80           1990

                       The Zen of Python
DNA


                     C          ABC          HASKELL
       MÓDULA-3
                                                             LISP
  ICON
                                                         SMALLTALK
PERL

TCL
                            PYTHON



                  Wikipedia – linguagens que influenciaram o Python

                   The Zen of Python
Você já usou Python ?
  Você já usou o Python ?




     The Zen of Python
Introdução
Python:
Fácil Aprendizado
Fácil Manutenção
Possui uma extensa biblioteca padrão
Interpretada e interativa
Possui uma poderosa estruturas de dados nativa
Disponível com código aberto e livre
Interface para outras Linguagens ( Lua, Java, C)
Multi-plataforma
É um canivete-suíço !!!

                      The Zen of Python
Introdução


                                SCRIPTS


                            ESTRUTURADA
   PYTHON

                              FUNCIONAL


                                     OO

Múltiplos paradigmas

                 The Zen of Python
Introdução

Exemplo de um script

   # Busca em uma página web o valor do dolar comercial
    import urllib
    import 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]
                                                                Dolar Paralelo
           print 'Variacao %s' %numeros[2]                      Compra 2,137
                                                                Venda     2,139
                                                                Variacao 1,97

                         The Zen of Python
Introdução
Estruturando o exemplo do script
 # -*- coding: utf-8 -*-
 # modulo financas.py
 # Busca em uma página web o valor do dolar comercial
 import urllib,
 import re

 def extrai_cotacao(moeda,mercado='R$'):
      “““ função 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
                                                                 Euro - compra (2,842) venda (2,844)
# modulo cotacao.py
from financas import extrai_cotacao

cotacao= extrai_cotacao('Euro') # para o euro na página não tinha mercado
print "Euro - compra (%s) venda (%s)" % (cotacao[0],cotacao[1])


                                   The Zen of Python
Introdução

                      Programação Funcional



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




                                    The Zen of Python
Introdução
     Orientação à objetos
class Cesta:
     def __init__(self,conteudo=None):
       self.conteudo = conteudo or []
     def inclui(self,elemento):
       self.conteudo.append(elemento)
     def abre_a_cesta(self):
       resultado = ""
       for elemento in self.conteudo:
          resultado = resultado + " " + `elemento`
       print "Contém: "+resultado

nova_cesta = cesta()
nova_cesta.inclui('uva')
nova_cesta.inclui('melao')           Contém: 'uva' 'melao'
nova_cesta.abre_a_cesta()

     Explicit is better than implicit                (ZoP)

             The Zen of Python
Quem usa Python ?




"Python tem sido uma parte importante na Google desde o início e continua
de acordo com o crescimento e a evolução do sistema. Hoje dúzias 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.




                          The Zen of Python
Quem usa Python ?




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




                           The Zen of Python
Quem usa Python ?




“Nós escolhemos Python porque provê a máxima produtividade, código
claro e fácil de manter, forte and extensível (e crescente !) bibliotecas, e
excelente capacidade de integração com outras aplicações em qualquer
plataforma.
Python atingiu ou excedeu todas as necessidades que nós tínhamos," disse
Steve Waterbury, Software Group Leader, NASA STEP Testbed.



                           The Zen of Python
Quem usa Python ?




“ O Serpro criou uma fábrica virtual para desenvolver portais para o
governo federal. As ferramentas ZOPE e PLONE feitas em PYTHON,
foram selecionadas para o projeto, representaram uma economia inicial de
R$ 10 milhões para a Empresa em custo de aquisição de softwares
proprietários além de um aumento visível de produtividade.”
Sérgio Borba Cangiano – Diretor do SERPRO




                           The Zen of Python
Quem usa Python ?




  The Zen of Python
Quem usa Python ?


Utilizado pelas  seguintes Empresas : 
  Nasa, United Space Alliance 
  Google, Yahoo , YouTube
  Nokia, Nortel 
  RedHat, Gentoo 
  Apple 
  Disney 
  Philips 
  Canonical 
  Los Alamos National Laboratory 
  ILM ­ Industrial Ligth & Magic
  SERPRO, PETROBRAS, GLOBO 
  Interlegis


                         The Zen of Python
Aplicações com Python


Encontramos o Python no : 

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



                       The Zen of Python
Por que usar o Python ?


Código é mais vezes lido do que escrito !

Clareza na linguagem é fundamental para
o aprendizado e para a manutenção do
código.



            Readability counts ! (ZoP)


               The Zen of Python
Por que usar o Python ?
                  MULTIPLATAFORMA

●   Alta portabilidade
●   Presente em 99,99% das distribuições LINUX
●   Alta integração com Windows COM
●   Iron Python
●   PDA´s,Celulares e tablets




                                     UNIX

                         The Zen of Python
Por que usar o Python ?

Implementações :


 CPython – Escrita em C
 Jython (máquina virtual Java)
 IronPython .NET (Microsoft)
 PyPy – Python escrito em Python
 PyS60 – Nokia




                 The Zen of Python
Por que Python ?

                     MATURIDADE

1990 - Nascimento
1994 - Python ?? Que isso ?
1997 – Mas ninguém 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)




                      The Zen of Python
Por que Python ?
  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

 Ciência : 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, Boa Constructor

Jogos : Pygame, Pykra, Panda3D, Blender3D,


                      The Zen of Python
Porque Python

           Fácil e clara       Fácil integração
                               C, Java, Lua



Problema             PRODUTIVIDADE


                                                  SOLUÇÃO

           Vasta biblioteca         Múltiplos
           disponível               Paradigmas


                 “Simple is better than complex” (ZoP)

                           The Zen of Python
Porque Python




   The Zen of Python
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 não preciso digitar muito. Mas o que eu digito é o certo “
      “Special cases aren't special enough to break the rules.” (ZoP)

                           The Zen of Python
Testemunhos

                  Eric Raymond
                 Autor: A Catedral e o Bazar
                  mantém o Jargon File (Hacker's Dictionary)
                  Contribuidor do GNU Emac, Linux, Fetchmail
                  Frases famosas:
                  "Havendo olhos suficientes, todos os erros são óbvios"

O que Eric pensa do Python:
“Entre todas as linguagens que aprendi, Python é a que
menos interfere entre mim e o problema. É a mais efetiva
para traduzir pensamentos em ações.”
“Python amplifica seu cérebro.”

   “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)

                           The Zen of Python
Python foi feito para você !

                                       Compatibilidade com o passado


                                                Compromisso com o
                                                Mercado
Interesses de Grandes
Empresas




    Performance contra produtividade
                      Curva de aprendizado
               “Simple is better than complex” (ZoP)

                        The Zen of Python
In love with Python




Fortran Girl   Cobol Girl        Prolog Girl
                                                      Java Girl




 Python Girl
                   “Beautiful is better than ugly.” (ZoP)

                      The Zen of Python
Por onde começar
Python para desenvolvedores - Luiz Eduardo Borges




                             Livre para Download
                             Licença Creative Commons
                             http://ark4n.wordpress.com/




                 The Zen of Python
Por onde começar

                                                 Documentação
               www.python.org.br                 How to's
                                                 Cookbook




Dive into Python How to think like a Aprendendo Python Python Cookbook
Mark Pilgrim     computer scientist David Ascher e Mark Lutz Alex Martelli, Anna
Livre pra download   Allen Downey, Jeff Elkner               Ravenscroft eDavid Ascher
                       and Chris Meyers
                      Livre pra download

                                  The Zen of Python
Links Importantes



Site Python - python.org
Site PythonBrasil - www.python.org.br
Site PythonRio - www.pythonrio.org
APyB - associacao.pythonbrasil.org/
Lista PythonRio - br.groups.yahoo.com/group/pythonrio/
Lista PythonBrasil - br.groups.yahoo.com/group/python-brasil/
PyconBrasil 2008 - pyconbrasil.com.br/
PyConBrasil 2009 -associacao.pythonbrasil.org/associacao/imprensa/noticias/caxias-do-sul-2009




                                  The Zen of Python
Zen of Python
O Zen do Python, por Tim Peters

Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Linear é melhor do que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para quebrar as regras.
Ainda que praticidade vença a pureza.
Erros nunca devem passar silenciosamente.
A menos que sejam explicitamente silenciados.
Diante da ambiguidade, recuse a tentação de adivinhar.
Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo.
Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês.
Agora é melhor que nunca.
Embora nunca frequentemente seja melhor que *já*.
Se a implementação é difícil de explicar, é uma má ideia
Se a implementação é fácil de explicar, pode ser uma boa ideia
Namespaces são uma grande idéia — vamos ter mais dessas!

                         The Zen of Python
Contatos

Import Apresentacao

try:
   if Apresentacao.Boa:
      print “OBRIGADO !!!”
   else:
      print “Heeerr, Obrigado mesmo assim”
except PalestraRuim:
   print “SAI CORRENDO !!!!”


palestrante = “Giuseppe Romagnoli”
email = “giuseppe.romagnoli@gmail.com”




             The Zen of Python
O importante é saber que os caminhos existem




               The Zen of Python

Más contenido relacionado

La actualidad más candente

Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 
Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009Marco Mendes
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Marco Mendes
 
Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Marco Mendes
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Marco Mendes
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programaçãoSimples Consultoria
 
Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Marco Mendes
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamenteRodrigo Amaral
 

La actualidad más candente (20)

Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009
 
Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Por que Python? - FURB - 2009
Por que Python? - FURB - 2009
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programação
 
Por que Python? Latinoware 2011
Por que Python? Latinoware 2011Por que Python? Latinoware 2011
Por que Python? Latinoware 2011
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
Minicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídasMinicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídas
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 

Similar a Python Pythononcampus Uva 060609

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias IncluídasJonh Edson
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Marcel Caraciolo
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/DjangoÁtila Bezerra
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCETiago Freire
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! dJoelmir Ribacki
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6 Fabio Spanhol
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 

Similar a Python Pythononcampus Uva 060609 (20)

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias Incluídas
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Python Zope Plone - Tchelinux
Python Zope Plone - TchelinuxPython Zope Plone - Tchelinux
Python Zope Plone - Tchelinux
 
Python
PythonPython
Python
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
 
Python Zope Plone - Fiocruz
Python Zope Plone - FiocruzPython Zope Plone - Fiocruz
Python Zope Plone - Fiocruz
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 

Más de gsroma

Why I Love Python V2
Why I Love Python V2Why I Love Python V2
Why I Love Python V2gsroma
 
Amora: A mobile remote assistant
Amora: A mobile remote assistantAmora: A mobile remote assistant
Amora: A mobile remote assistantgsroma
 
Integração de aplicações em
Integração de aplicações emIntegração de aplicações em
Integração de aplicações emgsroma
 
Computação Gráfica em Python
Computação Gráfica em PythonComputação Gráfica em Python
Computação Gráfica em Pythongsroma
 
Python Na Informática Para Biodiversidade
Python Na Informática Para BiodiversidadePython Na Informática Para Biodiversidade
Python Na Informática Para Biodiversidadegsroma
 
Por que Python?
Por que Python?Por que Python?
Por que Python?gsroma
 
Integrando C com Python
Integrando C com PythonIntegrando C com Python
Integrando C com Pythongsroma
 
Busca Visual
Busca VisualBusca Visual
Busca Visualgsroma
 
Pound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de CargaPound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de Cargagsroma
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLgsroma
 

Más de gsroma (10)

Why I Love Python V2
Why I Love Python V2Why I Love Python V2
Why I Love Python V2
 
Amora: A mobile remote assistant
Amora: A mobile remote assistantAmora: A mobile remote assistant
Amora: A mobile remote assistant
 
Integração de aplicações em
Integração de aplicações emIntegração de aplicações em
Integração de aplicações em
 
Computação Gráfica em Python
Computação Gráfica em PythonComputação Gráfica em Python
Computação Gráfica em Python
 
Python Na Informática Para Biodiversidade
Python Na Informática Para BiodiversidadePython Na Informática Para Biodiversidade
Python Na Informática Para Biodiversidade
 
Por que Python?
Por que Python?Por que Python?
Por que Python?
 
Integrando C com Python
Integrando C com PythonIntegrando C com Python
Integrando C com Python
 
Busca Visual
Busca VisualBusca Visual
Busca Visual
 
Pound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de CargaPound & Varnish - Cache e Balanceamento de Carga
Pound & Varnish - Cache e Balanceamento de Carga
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
 

Último

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Python Pythononcampus Uva 060609

  • 1. THE ZEN OF PYTHON 2008 Giuseppe Romagnoli Versão.: 08/06/09 The Zen of Python
  • 2. Trabalho SERPRO Serviço Federal de Processamento de Dados The Zen of Python
  • 3. SERPRO Maior Provedor do Governo de tecnologia de Informações e Comunicações Clientes: Ministério da Fazenda, Planejamento, Justiça, Transportes, Educação e Gabinete Civil e Presidência. Mais de 3 bilhões de Transações/ano Múltiplas plataformas e padrões abertos ASP + ISP + NSP The Zen of Python
  • 4. Conteúdo O que é o Python ? Quem usa Python ? Por que usar Python ? Como é o Python ? The Zen of Python
  • 5. Mas afinal o que significa Python ? Python 3 The Zen of Python
  • 6. Introdução Histórico O Python foi criado em 1990 por Guido van Rossum, a partir de uma outra linguagem chamada ABC, que tinha como foco original usuários como físicos e engenheiros. Segundo seu criador a linguagem foi concebida para ocupar o espaço que existia entre as linguagens C/C++ e o shell. AMOEBA ABC Python Python Script Final do Anos 80 1990 The Zen of Python
  • 7. DNA C ABC HASKELL MÓDULA-3 LISP ICON SMALLTALK PERL TCL PYTHON Wikipedia – linguagens que influenciaram o Python The Zen of Python
  • 8. Você já usou Python ? Você já usou o Python ? The Zen of Python
  • 9. Introdução Python: Fácil Aprendizado Fácil Manutenção Possui uma extensa biblioteca padrão Interpretada e interativa Possui uma poderosa estruturas de dados nativa Disponível com código aberto e livre Interface para outras Linguagens ( Lua, Java, C) Multi-plataforma É um canivete-suíço !!! The Zen of Python
  • 10. Introdução SCRIPTS ESTRUTURADA PYTHON FUNCIONAL OO Múltiplos paradigmas The Zen of Python
  • 11. Introdução Exemplo de um script # Busca em uma página web o valor do dolar comercial import urllib import 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] Dolar Paralelo print 'Variacao %s' %numeros[2] Compra 2,137 Venda 2,139 Variacao 1,97 The Zen of Python
  • 12. Introdução Estruturando o exemplo do script # -*- coding: utf-8 -*- # modulo financas.py # Busca em uma página web o valor do dolar comercial import urllib, import re def extrai_cotacao(moeda,mercado='R$'): “““ função 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 Euro - compra (2,842) venda (2,844) # modulo cotacao.py from financas import extrai_cotacao cotacao= extrai_cotacao('Euro') # para o euro na página não tinha mercado print "Euro - compra (%s) venda (%s)" % (cotacao[0],cotacao[1]) The Zen of Python
  • 13. Introdução Programação Funcional def fatorial(num): ”””fatorial de forma recursiva””” def fatorial(num): if num == 0: ”””fatorial de forma funcional””” return 1 return reduce(lambda x,y:y*x,[1]+range(1,num+1)) return num*fatorial(num-1) print fatorial(5) print fatorial(5) The Zen of Python
  • 14. Introdução Orientação à objetos class Cesta: def __init__(self,conteudo=None): self.conteudo = conteudo or [] def inclui(self,elemento): self.conteudo.append(elemento) def abre_a_cesta(self): resultado = "" for elemento in self.conteudo: resultado = resultado + " " + `elemento` print "Contém: "+resultado nova_cesta = cesta() nova_cesta.inclui('uva') nova_cesta.inclui('melao') Contém: 'uva' 'melao' nova_cesta.abre_a_cesta() Explicit is better than implicit (ZoP) The Zen of Python
  • 15. Quem usa Python ? "Python tem sido uma parte importante na Google desde o início e continua de acordo com o crescimento e a evolução do sistema. Hoje dúzias 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. The Zen of Python
  • 16. Quem usa Python ? "Python realiza um papel chave no ciclo de produção. Sem ele um projeto do tamanho de Star Wars: Episode II seria complicado de ser realizado. Desde a renderização das pessoas em processamento batch até a composição, Python junta todas as coisas juntas," disse o Tommy Burnette, Diretor Técnico da Industrial Light & Magic. The Zen of Python
  • 17. Quem usa Python ? “Nós escolhemos Python porque provê a máxima produtividade, código claro e fácil de manter, forte and extensível (e crescente !) bibliotecas, e excelente capacidade de integração com outras aplicações em qualquer plataforma. Python atingiu ou excedeu todas as necessidades que nós tínhamos," disse Steve Waterbury, Software Group Leader, NASA STEP Testbed. The Zen of Python
  • 18. Quem usa Python ? “ O Serpro criou uma fábrica virtual para desenvolver portais para o governo federal. As ferramentas ZOPE e PLONE feitas em PYTHON, foram selecionadas para o projeto, representaram uma economia inicial de R$ 10 milhões para a Empresa em custo de aquisição de softwares proprietários além de um aumento visível de produtividade.” Sérgio Borba Cangiano – Diretor do SERPRO The Zen of Python
  • 19. Quem usa Python ? The Zen of Python
  • 20. Quem usa Python ? Utilizado pelas  seguintes Empresas :   Nasa, United Space Alliance   Google, Yahoo , YouTube  Nokia, Nortel   RedHat, Gentoo   Apple   Disney   Philips   Canonical   Los Alamos National Laboratory   ILM ­ Industrial Ligth & Magic  SERPRO, PETROBRAS, GLOBO   Interlegis The Zen of Python
  • 21. Aplicações com Python Encontramos o Python no :   Blender, Maya  OpenOffice   Zope/Plone   BitTorrent   MoinMoin   Mailman   Chandler   Gimp   Gnumeric   Anaconda, Portage, Yum  Trac The Zen of Python
  • 22. Por que usar o Python ? Código é mais vezes lido do que escrito ! Clareza na linguagem é fundamental para o aprendizado e para a manutenção do código. Readability counts ! (ZoP) The Zen of Python
  • 23. Por que usar o Python ? MULTIPLATAFORMA ● Alta portabilidade ● Presente em 99,99% das distribuições LINUX ● Alta integração com Windows COM ● Iron Python ● PDA´s,Celulares e tablets UNIX The Zen of Python
  • 24. Por que usar o Python ? Implementações : CPython – Escrita em C Jython (máquina virtual Java) IronPython .NET (Microsoft) PyPy – Python escrito em Python PyS60 – Nokia The Zen of Python
  • 25. Por que Python ? MATURIDADE 1990 - Nascimento 1994 - Python ?? Que isso ? 1997 – Mas ninguém 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) The Zen of Python
  • 26. Por que Python ? 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 Ciência : 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, Boa Constructor Jogos : Pygame, Pykra, Panda3D, Blender3D, The Zen of Python
  • 27. Porque Python Fácil e clara Fácil integração C, Java, Lua Problema PRODUTIVIDADE SOLUÇÃO Vasta biblioteca Múltiplos disponível Paradigmas “Simple is better than complex” (ZoP) The Zen of Python
  • 28. Porque Python The Zen of Python
  • 29. 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 não preciso digitar muito. Mas o que eu digito é o certo “ “Special cases aren't special enough to break the rules.” (ZoP) The Zen of Python
  • 30. Testemunhos Eric Raymond Autor: A Catedral e o Bazar mantém o Jargon File (Hacker's Dictionary) Contribuidor do GNU Emac, Linux, Fetchmail Frases famosas: "Havendo olhos suficientes, todos os erros são óbvios" O que Eric pensa do Python: “Entre todas as linguagens que aprendi, Python é a que menos interfere entre mim e o problema. É a mais efetiva para traduzir pensamentos em ações.” “Python amplifica seu cérebro.” “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) The Zen of Python
  • 31. Python foi feito para você ! Compatibilidade com o passado Compromisso com o Mercado Interesses de Grandes Empresas Performance contra produtividade Curva de aprendizado “Simple is better than complex” (ZoP) The Zen of Python
  • 32. In love with Python Fortran Girl Cobol Girl Prolog Girl Java Girl Python Girl “Beautiful is better than ugly.” (ZoP) The Zen of Python
  • 33. Por onde começar Python para desenvolvedores - Luiz Eduardo Borges Livre para Download Licença Creative Commons http://ark4n.wordpress.com/ The Zen of Python
  • 34. Por onde começar Documentação www.python.org.br How to's Cookbook Dive into Python How to think like a Aprendendo Python Python Cookbook Mark Pilgrim computer scientist David Ascher e Mark Lutz Alex Martelli, Anna Livre pra download Allen Downey, Jeff Elkner Ravenscroft eDavid Ascher and Chris Meyers Livre pra download The Zen of Python
  • 35. Links Importantes Site Python - python.org Site PythonBrasil - www.python.org.br Site PythonRio - www.pythonrio.org APyB - associacao.pythonbrasil.org/ Lista PythonRio - br.groups.yahoo.com/group/pythonrio/ Lista PythonBrasil - br.groups.yahoo.com/group/python-brasil/ PyconBrasil 2008 - pyconbrasil.com.br/ PyConBrasil 2009 -associacao.pythonbrasil.org/associacao/imprensa/noticias/caxias-do-sul-2009 The Zen of Python
  • 36. Zen of Python O Zen do Python, por Tim Peters Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Linear é melhor do que aninhado. Esparso é melhor que denso. Legibilidade conta. Casos especiais não são especiais o bastante para quebrar as regras. Ainda que praticidade vença a pureza. Erros nunca devem passar silenciosamente. A menos que sejam explicitamente silenciados. Diante da ambiguidade, recuse a tentação de adivinhar. Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo. Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês. Agora é melhor que nunca. Embora nunca frequentemente seja melhor que *já*. Se a implementação é difícil de explicar, é uma má ideia Se a implementação é fácil de explicar, pode ser uma boa ideia Namespaces são uma grande idéia — vamos ter mais dessas! The Zen of Python
  • 37. Contatos Import Apresentacao try: if Apresentacao.Boa: print “OBRIGADO !!!” else: print “Heeerr, Obrigado mesmo assim” except PalestraRuim: print “SAI CORRENDO !!!!” palestrante = “Giuseppe Romagnoli” email = “giuseppe.romagnoli@gmail.com” The Zen of Python
  • 38. O importante é saber que os caminhos existem The Zen of Python