SlideShare uma empresa Scribd logo
Iniciando
no mundo do Python


              Luiz Guilherme F. Aldabalde



                             Versão.: 12/05/11
Objetivo




Apresentar sua origem e o seu propósito
Conhecer a sintaxe da linguagem
Elaborar os primeiros códigos
Apresentar os módulos importantes
Indicar outras fontes de conhecimento
De onde venho ...
SERPRO


                     Maior Provedor do Governo de tecnologia de
                    Informações e Comunicações
                    Principais Clientes: Ministério da Fazenda,
                    Planejamento, Justiça, Transportes,
                    Comunicação, 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




                   SERPRO
Serviço Federal de Processamento de Dados                      4
Comunidades
Começou assim ...

Python foi criada em 1990 por Guido Van Rossum. 
O nome da linguagem é uma homenagem ao grupo 
inglês de humor Monty Python. 
A linguagem foi concebida para ocupar o espaço 
que existia entre as linguagens C/C++ e o shell.
Porque Python ?




      oioio       7
A evolução ...

 1990 ­ Nascimento
 1994 ­ Python ?? Que isso ?
 1997 – Mas ninguém usa isso.
 1999 – Onde podemos encontrar programadores?
 2004 – Infoworld –  6a linguagem mais utilizada
 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)
 2010 ­ A linguagem que mais cresceu (TIOBE)
Aplicações com Python


Encontramos o Python no : 

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

                             oioio         9
Quem está usando



 Nasa, United Space Alliance 
 Google, Yahoo , YouTube
 Nokia, Nortel 
 RedHat, Gentoo 
 Apple 
 Disney 
 Philips  
 Los Alamos National Laboratory 
 ILM ­ Industrial Ligth & Magic
 SERPRO, PETROBRAS 
 Interlegis
Fator de sucesso
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 multidões, passando pelo
processamento em batch até a composição, Python junta todas
estas coisas. Python está em todos os lugares na ILM.
É usado para estender a capacidade de cada aplicação, da
mesma forma promovendo uma cola entre elas. Cada
Imagem de CG criada envolveu o uso de Python de alguma
forma." disse o Tommy Burnette, Diretor Técnico da Industrial
Light & Magic.
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.
Na universidade

Python substituiu o Scheme como linguagem introdutória em
Engenharia e Ciência da computação no MIT.
“Principalmente por conta de suas bibliotecas que implementam
interfaces para robótica” disse Gerald Jay Sussman um dos criadores do
Scheme quando perguntado porque do Python no MIT.




                                   oioio                                 14
Quem usa Python ?
Quem usa Python ?




“ O Serpro criou uma fábrica 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 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 à Revista Tema (2004)
Testemunhos

                 Autor: A Catedral e o Bazar

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

                 Frases famosas:
                 "Havendo olhos suficientes, todos os erros são óbvios"
Eric Raymond
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.”
Testemunhos

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

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

Palestra: Why I love Python
Palestra: Why I love Python
 “Python foi feito pra você “
 “Python foi feito pra você “
 “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a
 “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a
linguagem.”
linguagem.”
  “Eu não preciso digitar muito. Mas o que eu digito é o certo “
  “Eu não preciso digitar muito. Mas o que eu digito é o certo “
De quem é o Python ?

         Python Software Foundation


         “The mission of the Python
         Software Foundation is to
         promote, protect, and
         advance the Python
         programming language, and
         to support and facilitate
         the growth of a diverse
         and international
         community of Python
         programmers.”
Introdução


Fácil Aprendizado (VHLL)
Fácil Manutenção
Possui uma extensa biblioteca padrão
Interpretada e interativa
Possui uma poderosa estruturas de dados nativas
Disponível com código aberto e livre
Interface para outras Linguagens ( Lua, Java, C)
Multi-plataforma
É um canivete-suíço !!!
                            oioio                  20
Multiplataforma


Presente nos Sistemas Operacionais:
 Windows: 9x, Me, 2K, XP
 Unix: HP­UX, Solaris (freqüentemente pré­instalada)
 Linux (freqüentemente pré­instalada)
 MacOs X (sempre pré­instalada)
 Nokia Série 60 

Através de Interpretadores :
 CPython 
 Jython (máquina virtual Java)
 IronPython .NET (em desenvolvimento na Microsoft)
Características


Interpretado
Modo Interativo
Tipagem Dinâmica forte
Very High-Level Language (VHLL)
“Glue Language” - usada para integrar sistemas distintos
Grande quantidade de bibliotecas de objetos
Sintaxe estimula uma apresentação limpa do código
Orientada a Objetos
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.
Múltiplos Paradigmas


                        SCRIPTS


                      ESTRUTURADA
PYTHON

                       FUNCIONAL


                          OO



              oioio                 24
O interpretador




>> python  [opções] [nome­arquivo­python]

­c cmd : programa passado como string (cmd) na linha de comando
­h : mensagem de ajuda
­i  : executa programa e "cai" no prompt interativo
­O : ativa otimizações
­OO : mesmo que ­O, incluindo remoção de docstrings (documentação 
on­line)
­t : avisa sobre inconsistências na tabulação
­v : importação verborrágica
­V : imprime número de versão
Palavras reservadas

and          del       not
assert       for       try
break        is        except
class        raise     if
continue     elif      or
             from      while
yield
             lambda    exec
def
             return    import
finally
             else      pass
in           global
print
         29 palavras
Começando ...


 ­ Cada   linha termina com ponto e vírgula (;) ou com
um <enter >
 -     Cada bloco de instruções é definido pela
identação
- Comentário em uma linha é definido pelo símbolo
tralha (#)
- Comentário em mais e uma linha podemos usar aspas
triplas para começar e terminar (“”” texto comentado
“””)
- Multi linha com o uso de barra invertida ()
 Uma variável não é declarada, ela assume o tipo
quando associada com um valor
Tipos básicos


- Numérico :
   Decimal,     Hexa (0x1a),
   long 1.0l,
   float – 1.0 ou 1.0e-3,
   complexo 1.0j
- Strings : “oi”, 'oi', ”””oi 'dentro' de outra”””
- Tuplas : (1, “a”, 3.0)
- Listas : [1,2,3,4]
- Dicionários : {“DDD”: “21”, “Estado”:”RJ”}
- Booleano : True ou False
- Tipo Nulo : None
Controle de Fluxo


 Condicional :
planetas = ["Marte", "Terra", "Venus", "Plutao",
"Saturno", "Jupiter"]


if type(planetas) is list:
    print "Tenho uma Lista"


 Loop :
for i in xrange(10):
    print i
Controle de Fluxo


 Enquanto :

planetas = ["Marte", "Terra", "Venus", "Plutao",
"Saturno", "Jupiter"]
conta = 0
while planetas[conta] <> "Saturno":
    print planetas[conta]
    conta = conta + 1
Show me the code ...


 Tratando com texto
 a = “Hoje vai fazer sol “
 pos = a.find(“vai)
 novo_a = a[1:1]
 outro_a = a[1:-1]
 a_maiusculo = a.upper()
 d = dict(zip([“um”, “dois”, “tres”], [1,2,3]))
Show me the code ...


 Alguns truques :
 x,y = y,x # Exemplo de swap


list comprehension :
 resultado=[x for x in xrange(50) if x%3 == 0]
Funções


Uma função pode retornar um ou mais objetos.
Quanto aos parâmetros, podemos definir 5 tipos
de funções   :


 Caso 1- Função simples :
    def func_simples():
        print “oi”
        return True
    func_simples()
Funções


Caso 2 - Função com parâmetros definidos:


def func_soma(a, b):
      c =   a + b
      return c


total = func_soma(1,3)
Funções


 Caso 3 - Função com parâmetros definidos,
mas valores defaults:
    def func_soma(a, b=2):
         c =   a + b
         return c


    total = func_soma(1,3)
    total = func_soma(2)
Funções

 Caso 4 - Função com quantidade de parâmetros variáveis:
#entrada é uma tupla composta pelos valores passados


def func_soma(*entrada):
    c = 0
    for i in entrada:
       c =   c + i
       return c


 total = func_soma(1,3)
 total = func_soma(2,3,4,5)
Funções

  Caso 5 - Função com quantidade de parâmetros
variáveis, mas nome de variáveis associadas:


def func_trata(**entrada):
# entrada é um dicionário {chave=valor}
         print entrada
         return True


total = func_trata(estado=”RJ”, cidade=”Vassouras”)
   
Funções

Podemos usar uma função como uma variável dentro
de   um   dicionário.    Desta   forma   podemos   escolher
entre várias opções de maneira muito simples :


     def func_um():
           print “um”
     def func_dois():
          print “dois”
     lista_funcoes = {“um”: func_um, “dois”: func_dois}
     lista_funcoes[“um”]()
Documentando


 
    def    fun_um():
    “””
           Descrição da função fun_um()
    “””
          return


 No modo interativo :      help(fun_um)
 Com um browser : Pydoc -p 123
Módulos



Para permitir a chamada de outras funções,
classes temos os seguintes comandos :


 import nome_módulo
 from nome_módulo import    *
 from nome_módulo import nome_func
 from nome_módulo import nome_func as alias
Módulos


Para permitir que um módulo importado não execute
as rotinas que estejam fora de uma função
utilizamos o seguinte recursos :
    if __name__ == '__main__':
         print “oi”


Para definir um diretório como um conjunto de
arquivos que serão importados basta colocar um
arquivo (vazio) com este nome :
     __init__.py
Introspecção


Definição : Capacidade da linguagem de identificar
suas próprias estruturas internas, tais como tipos,
escopo das variáveis, métodos e atributos.
•   dir( obj ) -   apresenta os métodos associados ao
objeto passado
•   type( obj ) - apresenta o tipo de um objeto.
•   help(obj ) - apresenta um resumo sobre o objeto
documentado.
__builtins__

O módulo __builtins__ contém as funções disponíveis por
padrão quando se inicia o uso do Python. Temos :
 help, dir, type
 tuple, int, list, dict, float, long
 chr, ord
 len, sum, min, max, pow
 xrange
 open
 Códigos de Erro
 reduce, map, filter
 raw_input
 ... [ use o dir(__builtins__) para pesquisar mais.]
Tratamento de Erros



try:
    <comandos>
except expressão ,variável:
    <comandos se houve exceções>
else:
    <comandos se não houve exceções>
Buscando os erros

Debug :
Usando o pdb para inserir um “breakpoint” no seu código:
      import pdb; pdb.set_trace()
Uma vez no modo interativo você pode verificar todas as
variáveis, e usar os seguintes comandos :
  n – next, vai para a próxima linha
  s   - step into, entra em uma sub-função ( se existir)
  b xx – define um novo breakpoint     na linha xx
  c – continue
  l - list
  h – chama o help
Orientação a Objetos


Sintaxe básica :


class segunda(primeira):
    def __init__(self, p1, p2):
          self.nome = p1
          Self.ano = p2
    def hello(self):
         print “Hello,   %s” % self.nome
meu_obj = segunda(“Luiz”, 40)
meu_obj.hello()
Baterias Incluidas


Vários módulos estão disponíveis, entre eles
temos   :
  SO: os, sys, shutils
  Dados: csv, pickle, shelve, zipfile
  Rede: email, ftplib, urllib2, urlparse,
SimpleHttpServer
  Ferramentas Gerais : datetime, numeric,
time, re,md5
Adicionando mais baterias

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

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

GUI : Tkinter, wxPython, PyGTk, PyQt, PyKDE, Pythonwin
                                ''''
 Ciência : NumPY, SciPy, BioPython, MatPlotLIb

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
Será que existem livros de Python?
Dicas Inportantes




                      How to think like aa                       Python Cookbook
                                                                  Python Cookbook
                      How to think like                            Alex Martelli,
                      computer scientist
                       computer scientist                           Alex Martelli,
                        Allen Downey,                            Anna Ravenscroft ee
                                                                 Anna Ravenscroft
                         Allen Downey,                             David Ascher
                          Jeff Elkner
                           Jeff Elkner                              David Ascher
 Dive into Python
  Dive into Python     and Chris Meyers
                        and Chris Meyers     Aprendendo Python
                                             Aprendendo Python
   Mark Pilgrim
    Mark Pilgrim       Livre pra download
                        Livre pra download     David Ascher ee
                                               David Ascher
Livre pra download
 Livre pra download                              Mark Lutz
                                                 Mark Lutz
Referências Livres




           Python para desenvolvedores
               Luiz Eduardo Borges

            Livre para Download
             Livre para Download
            Licença Creative Commons
             Licença Creative Commons
            http://ark4n.wordpress.com/
             http://ark4n.wordpress.com/
Referências a mais




       Computação Científica com Python
               Flávio Coelho



          http://www.lulu.com/content/616789
           http://www.lulu.com/content/616789
www.python.org
www.python.org.br



                    Documentação
                    Documentação

                      Howtos
                      Howtos

                     CookBook
                      CookBook

                    Muitos links
                    Muitos links

                      Notícias
                      Notícias
Links




Python - python.org
PythonBrasil - www.python.org.br
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 2009 - http://www.pythonbrasil.org.br/              55
Alguma pergunta ?
Luiz Guilherme F. Aldabalde
E-mail ; lg.aldabalde@gmail.com
        luiz.aldabalde@serpro.gov.br
Twitter : @aldabalde




                                         Dedicado a
                                       Dorneles Tremea
 Venha fazer parte desta comunidade

Mais conteúdo relacionado

Mais procurados

Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python
Fabio Spanhol
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
Fabio Spanhol
 
Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Python Training #0.5 ed. 7
Python Training #0.5 ed. 7
Fabio Spanhol
 
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
Grupython Ufla
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
Fabio Spanhol
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
Fabio Spanhol
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
Eduardo Araujo
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
richardsonlima
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
Fabio Spanhol
 
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
Simples Consultoria
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
Fabio Spanhol
 
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
Alvaro Oliveira
 
Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
Moises de Paula
 
Python brasil[6]
Python brasil[6]Python brasil[6]
Python brasil[6]
Eduardo S. Pereira
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
Luiz Vieira .´. CISSP, OSCE, GXPN, CEH
 
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
Carlos Schults
 
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
Marcos Thomaz
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
Osvaldo Santana Neto
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
fabiocerqueira
 

Mais procurados (20)

Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
 
Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Python Training #0.5 ed. 7
Python Training #0.5 ed. 7
 
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
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
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
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
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
 
Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
 
Python brasil[6]
Python brasil[6]Python brasil[6]
Python brasil[6]
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
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
 
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
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 

Destaque

Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python Poli
Rodrigo Lira
 
Internet das Coisas com Python e Arduino
Internet das Coisas com Python e ArduinoInternet das Coisas com Python e Arduino
Internet das Coisas com Python e Arduino
Humberto Zanetti
 
Desenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com PythonDesenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com Python
Roselma Mendes
 
Crawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapyCrawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapy
Bernardo Fontes
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com Python
Pedro Valente
 
Hackeando Dados públicos com python
Hackeando Dados públicos com pythonHackeando Dados públicos com python
Hackeando Dados públicos com python
FATEC São José dos Campos
 
Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1
Alax Ricard
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
Marcel Caraciolo
 
Hackeando o Facebook com Python
Hackeando o Facebook com PythonHackeando o Facebook com Python
Hackeando o Facebook com Python
FATEC São José dos Campos
 

Destaque (9)

Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python Poli
 
Internet das Coisas com Python e Arduino
Internet das Coisas com Python e ArduinoInternet das Coisas com Python e Arduino
Internet das Coisas com Python e Arduino
 
Desenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com PythonDesenvolvendo web crawler/scraper com Python
Desenvolvendo web crawler/scraper com Python
 
Crawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapyCrawleando a web feito gente grande com o scrapy
Crawleando a web feito gente grande com o scrapy
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com Python
 
Hackeando Dados públicos com python
Hackeando Dados públicos com pythonHackeando Dados públicos com python
Hackeando Dados públicos com python
 
Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Hackeando o Facebook com Python
Hackeando o Facebook com PythonHackeando o Facebook com Python
Hackeando o Facebook com Python
 

Semelhante a Python Mini Ccurso Consegi2011

Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
gsroma
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
Fabio Spanhol
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
ProfIvanSaboia
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
Átila Bezerra
 
Programação Python na Iot
Programação Python na IotProgramação Python na Iot
Programação Python na Iot
FabianoFrancaMoreira
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013
Marco Mendes
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre
Denis Vieira
 
Tutorial Python - 1
Tutorial Python - 1Tutorial Python - 1
Tutorial Python - 1
Fabio Spanhol
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
Helio Loureiro
 
Curso Python - Aula 01
Curso Python - Aula 01Curso Python - Aula 01
Curso Python - Aula 01
Luís Guilherme
 
Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
Luciano Camargo Cruz
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
Tiago Freire
 
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
Jonh Edson
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
Douglas Soares de Andrade
 
Python Zope Plone - Tchelinux
Python Zope Plone - TchelinuxPython Zope Plone - Tchelinux
Python Zope Plone - Tchelinux
Luciano Camargo Cruz
 
Programação RAD com Python
Programação RAD com PythonProgramação RAD com Python
Programação RAD com Python
Osvaldo Santana Neto
 
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
Alvaro Oliveira
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3
IP10
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
Lourenço Junior
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
Bruno Maspoli
 

Semelhante a Python Mini Ccurso Consegi2011 (20)

Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
Programação Python na Iot
Programação Python na IotProgramação Python na Iot
Programação Python na Iot
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre
 
Tutorial Python - 1
Tutorial Python - 1Tutorial Python - 1
Tutorial Python - 1
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Curso Python - Aula 01
Curso Python - Aula 01Curso Python - Aula 01
Curso Python - Aula 01
 
Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
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
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Python Zope Plone - Tchelinux
Python Zope Plone - TchelinuxPython Zope Plone - Tchelinux
Python Zope Plone - Tchelinux
 
Programação RAD com Python
Programação RAD com PythonProgramação RAD com Python
Programação RAD com 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
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 

Python Mini Ccurso Consegi2011

  • 1. Iniciando no mundo do Python Luiz Guilherme F. Aldabalde Versão.: 12/05/11
  • 2. Objetivo Apresentar sua origem e o seu propósito Conhecer a sintaxe da linguagem Elaborar os primeiros códigos Apresentar os módulos importantes Indicar outras fontes de conhecimento
  • 4. SERPRO Maior Provedor do Governo de tecnologia de Informações e Comunicações Principais Clientes: Ministério da Fazenda, Planejamento, Justiça, Transportes, Comunicação, 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 SERPRO Serviço Federal de Processamento de Dados 4
  • 7. Porque Python ? oioio 7
  • 8. A evolução ... 1990 ­ Nascimento  1994 ­ Python ?? Que isso ?  1997 – Mas ninguém usa isso.  1999 – Onde podemos encontrar programadores?  2004 – Infoworld –  6a linguagem mais utilizada  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)  2010 ­ A linguagem que mais cresceu (TIOBE)
  • 12. 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 multidões, passando pelo processamento em batch até a composição, Python junta todas estas coisas. Python está em todos os lugares na ILM. É usado para estender a capacidade de cada aplicação, da mesma forma promovendo uma cola entre elas. Cada Imagem de CG criada envolveu o uso de Python de alguma forma." disse o Tommy Burnette, Diretor Técnico da Industrial Light & Magic.
  • 13. 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.
  • 14. Na universidade Python substituiu o Scheme como linguagem introdutória em Engenharia e Ciência da computação no MIT. “Principalmente por conta de suas bibliotecas que implementam interfaces para robótica” disse Gerald Jay Sussman um dos criadores do Scheme quando perguntado porque do Python no MIT. oioio 14
  • 16. Quem usa Python ? “ O Serpro criou uma fábrica 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 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 à Revista Tema (2004)
  • 17. Testemunhos Autor: A Catedral e o Bazar Mantenedor do Jargon File (Hacker's Dictionary) Contribuidor do GNU Emac, Linux, Fetchmail Frases famosas: "Havendo olhos suficientes, todos os erros são óbvios" Eric Raymond 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.”
  • 18. Testemunhos Autor de Best Sellers: Autor de Best Sellers: “Thinking in C++” “Thinking in C++” “Thinking in Java” “Thinking in Java” Bruce Eckel Frases Inspiradoras: ” Python: it fits your brain” Frases Inspiradoras: ” Python: it fits your brain” “ Life is Better Without Braces” “ Life is Better Without Braces” “ Life is short ! You need Python ! “ Life is short ! You need Python ! “ Python: Batteries Included” “ Python: Batteries Included” Palestra: Why I love Python Palestra: Why I love Python “Python foi feito pra você “ “Python foi feito pra você “ “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a linguagem.” linguagem.” “Eu não preciso digitar muito. Mas o que eu digito é o certo “ “Eu não preciso digitar muito. Mas o que eu digito é o certo “
  • 19. De quem é o Python ? Python Software Foundation “The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.”
  • 20. Introdução Fácil Aprendizado (VHLL) Fácil Manutenção Possui uma extensa biblioteca padrão Interpretada e interativa Possui uma poderosa estruturas de dados nativas Disponível com código aberto e livre Interface para outras Linguagens ( Lua, Java, C) Multi-plataforma É um canivete-suíço !!! oioio 20
  • 22. Características Interpretado Modo Interativo Tipagem Dinâmica forte Very High-Level Language (VHLL) “Glue Language” - usada para integrar sistemas distintos Grande quantidade de bibliotecas de objetos Sintaxe estimula uma apresentação limpa do código Orientada a Objetos
  • 23. 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.
  • 24. Múltiplos Paradigmas SCRIPTS ESTRUTURADA PYTHON FUNCIONAL OO oioio 24
  • 26. Palavras reservadas and del not assert for try break is except class raise if continue elif or from while yield lambda exec def return import finally else pass in global print 29 palavras
  • 27. Começando ...  ­ Cada linha termina com ponto e vírgula (;) ou com um <enter > - Cada bloco de instruções é definido pela identação - Comentário em uma linha é definido pelo símbolo tralha (#) - Comentário em mais e uma linha podemos usar aspas triplas para começar e terminar (“”” texto comentado “””) - Multi linha com o uso de barra invertida () Uma variável não é declarada, ela assume o tipo quando associada com um valor
  • 28. Tipos básicos - Numérico : Decimal, Hexa (0x1a), long 1.0l, float – 1.0 ou 1.0e-3, complexo 1.0j - Strings : “oi”, 'oi', ”””oi 'dentro' de outra””” - Tuplas : (1, “a”, 3.0) - Listas : [1,2,3,4] - Dicionários : {“DDD”: “21”, “Estado”:”RJ”} - Booleano : True ou False - Tipo Nulo : None
  • 29. Controle de Fluxo  Condicional : planetas = ["Marte", "Terra", "Venus", "Plutao", "Saturno", "Jupiter"] if type(planetas) is list: print "Tenho uma Lista" Loop : for i in xrange(10): print i
  • 30. Controle de Fluxo  Enquanto : planetas = ["Marte", "Terra", "Venus", "Plutao", "Saturno", "Jupiter"] conta = 0 while planetas[conta] <> "Saturno": print planetas[conta] conta = conta + 1
  • 31. Show me the code ...  Tratando com texto a = “Hoje vai fazer sol “ pos = a.find(“vai) novo_a = a[1:1] outro_a = a[1:-1] a_maiusculo = a.upper() d = dict(zip([“um”, “dois”, “tres”], [1,2,3]))
  • 32. Show me the code ...  Alguns truques : x,y = y,x # Exemplo de swap list comprehension : resultado=[x for x in xrange(50) if x%3 == 0]
  • 33. Funções Uma função pode retornar um ou mais objetos. Quanto aos parâmetros, podemos definir 5 tipos de funções : Caso 1- Função simples : def func_simples(): print “oi” return True func_simples()
  • 34. Funções Caso 2 - Função com parâmetros definidos: def func_soma(a, b): c = a + b return c total = func_soma(1,3)
  • 35. Funções  Caso 3 - Função com parâmetros definidos, mas valores defaults: def func_soma(a, b=2): c = a + b return c total = func_soma(1,3) total = func_soma(2)
  • 36. Funções  Caso 4 - Função com quantidade de parâmetros variáveis: #entrada é uma tupla composta pelos valores passados def func_soma(*entrada): c = 0 for i in entrada: c = c + i return c total = func_soma(1,3) total = func_soma(2,3,4,5)
  • 37. Funções   Caso 5 - Função com quantidade de parâmetros variáveis, mas nome de variáveis associadas: def func_trata(**entrada): # entrada é um dicionário {chave=valor} print entrada return True total = func_trata(estado=”RJ”, cidade=”Vassouras”)    
  • 38. Funções Podemos usar uma função como uma variável dentro de um dicionário. Desta forma podemos escolher entre várias opções de maneira muito simples : def func_um(): print “um” def func_dois(): print “dois” lista_funcoes = {“um”: func_um, “dois”: func_dois} lista_funcoes[“um”]()
  • 39. Documentando       def fun_um(): “”” Descrição da função fun_um() “”” return No modo interativo : help(fun_um) Com um browser : Pydoc -p 123
  • 40. Módulos Para permitir a chamada de outras funções, classes temos os seguintes comandos : import nome_módulo from nome_módulo import * from nome_módulo import nome_func from nome_módulo import nome_func as alias
  • 41. Módulos Para permitir que um módulo importado não execute as rotinas que estejam fora de uma função utilizamos o seguinte recursos : if __name__ == '__main__': print “oi” Para definir um diretório como um conjunto de arquivos que serão importados basta colocar um arquivo (vazio) com este nome : __init__.py
  • 42. Introspecção Definição : Capacidade da linguagem de identificar suas próprias estruturas internas, tais como tipos, escopo das variáveis, métodos e atributos. • dir( obj ) - apresenta os métodos associados ao objeto passado • type( obj ) - apresenta o tipo de um objeto. • help(obj ) - apresenta um resumo sobre o objeto documentado.
  • 43. __builtins__ O módulo __builtins__ contém as funções disponíveis por padrão quando se inicia o uso do Python. Temos : help, dir, type tuple, int, list, dict, float, long chr, ord len, sum, min, max, pow xrange open Códigos de Erro reduce, map, filter raw_input ... [ use o dir(__builtins__) para pesquisar mais.]
  • 44. Tratamento de Erros try: <comandos> except expressão ,variável: <comandos se houve exceções> else: <comandos se não houve exceções>
  • 45. Buscando os erros Debug : Usando o pdb para inserir um “breakpoint” no seu código: import pdb; pdb.set_trace() Uma vez no modo interativo você pode verificar todas as variáveis, e usar os seguintes comandos : n – next, vai para a próxima linha s - step into, entra em uma sub-função ( se existir) b xx – define um novo breakpoint na linha xx c – continue l - list h – chama o help
  • 46. Orientação a Objetos Sintaxe básica : class segunda(primeira): def __init__(self, p1, p2): self.nome = p1 Self.ano = p2 def hello(self): print “Hello, %s” % self.nome meu_obj = segunda(“Luiz”, 40) meu_obj.hello()
  • 47. Baterias Incluidas Vários módulos estão disponíveis, entre eles temos : SO: os, sys, shutils Dados: csv, pickle, shelve, zipfile Rede: email, ftplib, urllib2, urlparse, SimpleHttpServer Ferramentas Gerais : datetime, numeric, time, re,md5
  • 48. Adicionando mais baterias Bancos de Dados : ODBC, MySQL, Postgres, Oracle, SQLServer, sqlite, gadfly, ZODB/Durus Rede : Twisted, asyncore, htmllib, SimpleHTTPServer, urllib, ftplib, poplib, smtplib, telnetlib GUI : Tkinter, wxPython, PyGTk, PyQt, PyKDE, Pythonwin '''' Ciência : NumPY, SciPy, BioPython, MatPlotLIb 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
  • 49. Será que existem livros de Python?
  • 50. Dicas Inportantes How to think like aa Python Cookbook Python Cookbook How to think like Alex Martelli, computer scientist computer scientist Alex Martelli, Allen Downey, Anna Ravenscroft ee Anna Ravenscroft Allen Downey, David Ascher Jeff Elkner Jeff Elkner David Ascher Dive into Python Dive into Python and Chris Meyers and Chris Meyers Aprendendo Python Aprendendo Python Mark Pilgrim Mark Pilgrim Livre pra download Livre pra download David Ascher ee David Ascher Livre pra download Livre pra download Mark Lutz Mark Lutz
  • 51. Referências Livres Python para desenvolvedores Luiz Eduardo Borges Livre para Download Livre para Download Licença Creative Commons Licença Creative Commons http://ark4n.wordpress.com/ http://ark4n.wordpress.com/
  • 52. Referências a mais Computação Científica com Python Flávio Coelho http://www.lulu.com/content/616789 http://www.lulu.com/content/616789
  • 54. www.python.org.br Documentação Documentação Howtos Howtos CookBook CookBook Muitos links Muitos links Notícias Notícias
  • 55. Links Python - python.org PythonBrasil - www.python.org.br 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 2009 - http://www.pythonbrasil.org.br/ 55
  • 57. Luiz Guilherme F. Aldabalde E-mail ; lg.aldabalde@gmail.com luiz.aldabalde@serpro.gov.br Twitter : @aldabalde Dedicado a Dorneles Tremea Venha fazer parte desta comunidade