Iniciando o uso do
      Python


              Luiz Guilherme F. Aldabalde



                             Versão.: 10/12...
Conteúdo




●   Introdução
●   Tipos Básicos
●   Funções Builtins
●   Instrospecção
●   Criando Funções
●   PyDoc
●   Tra...
Introdução



Objetivos 

● Apresentar sua origem e o seu propósito
● Conhecer a sintaxe da linguagem

● Elaborar os prime...
Introdução
Introdução



Histórico
Python foi criada em 1990 por Guido Van Rossum. O nome da 
linguagem é uma homenagem ao grupo ingl...
Introdução



Evolução da espécie :
● 1990 ­ Nascimento
● 1994 ­ Python ?? Que isso ?

● 1997 – Mas ninguém usa isso.

● 1...
Introdução



Encontramos o Python  :

● Blender, Maya
● OpenOffice 

● Zope/Plone 

● BitTorrent 

● MoinMoin 

● Mailman...
Introdução



Quem usa ?? 
● Nasa, United Space Alliance 

● Google, Yahoo , YouTube

● Nokia, Nortel 

● RedHat, Gentoo 
...
Introdução



 Por que usar Python ?

● Fácil Aprendizado 
● Fácil Manutenção

● Possui uma extensa Biblioteca Padrão

● P...
Introdução




Presente nos Sistemas Operacionais:
● Windows: 9x, Me, 2K, XP

● Unix: HP­UX, Solaris (freqüentemente pré­i...
Características Básicas



Primeiras definições : 
● Interpretado
● Possui modo Interativo

● Possui Tipagem Dinâmica fort...
Características Básicas



Múltiplos paradigmas :

                                            SCRIPTS


                 ...
Características Básicas



O Interpretador: 

 python {opções} [­c comando | ­m módulo | arquivo] {parâmetros}

 ­c cmd : ...
Características Básicas



Palavras reservadas [29] : 

           and                del       not
           assert     ...
Características Básicas




Começando  ... 
● Cada linha termina com ponto e vírgula (;) ou com um <enter >
● Cada bloco d...
A Linguagem



Tipos de dados básicos : 
● Numérico : Decimal,  Hexa (0x1a),  long 1.0l, float – 1.0 ou 1.0e­3,    
comple...
A Linguagem



Exemplo de Tipos de dados básicos  : 
a = 1            # Decimal Inteiro
b = 0x12      # Hexadecimal Inteir...
A Linguagem



Controle de Fluxo: 

● Condicional :
planetas = [quot;Martequot;, quot;Terraquot;, quot;Venusquot;, quot;Pl...
A Linguagem



Controle de Fluxo: 

● Enquanto :
planetas = [quot;Martequot;, quot;Terraquot;, quot;Venusquot;, quot;Pluta...
A Linguagem



Agora um pouco de diversão : 

● Tratando com texto 
    a = “Hoje vai fazer sol “
    pos = a.find(“vai)
 ...
A Linguagem




A diversão continua ... 
● Alguns truques :
    x,y = y,x # Exemplo de swap 
    list comprehension : resu...
A Linguagem



Usando Funções  :

Uma função pode retornar um ou mais objetos.
Quanto aos parâmetros de entrada, podemos t...
A Linguagem




Usando Funções (continuação)  :

● Caso 2 ­ Função com parâmetros definidos:  
    def func_soma(a, b):
  ...
A Linguagem



Usando Funções (continuação)   :


● Caso 3 ­ Função com parâmetros definidos, mas valores defaults:  
    ...
A Linguagem



Usando Funções  (continuação) :
● Caso 4 ­ Função com quantidade de parâmetros variáveis:  
    def func_so...
A Linguagem



Usando Funções  (continuação) :
 Caso 5 ­ Função com quantidade de parâmetros variáveis, mas 
nome de variá...
A Linguagem



Outra formas de chamar uma função :

  Podemos  usar  uma  função  como  uma  variável  dentro  de  um 
  d...
A Linguagem



Documentando o seu código : 

 
      def  fun_um():
          “””
               Descrição da função fun_u...
A Linguagem



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

    im...
A Linguagem



Algo mais sobre Módulos : 

Para permitir que um módulo importado não execute as rotinas que 
estejam fora ...
A Linguagem



 Introspecção ­ pesquisando os módulos: 

● No modo interativo usamos o dir() para realizar esta função
   ...
A Linguagem



 Introspecção, de modo mais geral : 
 ●    type() ­ apresenta o tipo de uma variável.
 ● locals() ­ apresen...
A Linguagem



Conhecendo o __builtins__: 
 O módulo __builtins__ contém as funções disponíveis por padrão quando se
 inic...
Tratamento de Exceções



Controlando o erro através do try/except: 

  try:
     <comandos>
  except expressão ,variável:...
Debug - Encontrando os erros



Usando um “debugger” : 
Debug :
Usando o pdb para inserir um “breakpoint” no seu código:
 ...
Usando Orientação a Objetos



Uma classe ... : 

   class segunda(primeira):
       def __init__(self):
            print...
Baterias Incluídas
Baterias Incluídas



Bibliotecas que fazem a diferença  : 
Vários módulos estão disponíveis, entre eles temos  :

●   SO:...
Mais Energia para as Baterias




 Bancos de Dados : ODBC, MySQL, Postgres, Oracle, SQLServer,
sqlite, gadfly, ZODB/Durus
...
Referências



Livros : 

­ Python in a Nutshell – Alex Martelli – O'Reilly
­ Python Cookbook – Alex Martelli e David Asch...
Referências



Alguns endereços  : 

­ Site oficial :
        www.python.org
- Site oficial no Brasil :
        www.python...
Referências



Mais alguns endereços  : 

­ Wiki SL­RJ :
    wiki.softwarelivre.org/SLRJ/WebHome
- Lista SL-RJ :
   groups...
FIM, alguma pergunta ??
OBRIGADO




Luiz Guilherme F. Aldabalde
  lg.aldabalde@gmail.com
Upcoming SlideShare
Loading in …5
×

Python Mini Curso V0812

1,826 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,826
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
104
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Python Mini Curso V0812

  1. 1. Iniciando o uso do Python Luiz Guilherme F. Aldabalde Versão.: 10/12/08
  2. 2. Conteúdo ● Introdução ● Tipos Básicos ● Funções Builtins ● Instrospecção ● Criando Funções ● PyDoc ● Tratamento de Erros ● Baterias ● Fontes Iniciando o uso do Python
  3. 3. Introdução Objetivos  ● Apresentar sua origem e o seu propósito ● Conhecer a sintaxe da linguagem ● Elaborar os primeiros códigos ● Apresentar os módulos mais importantes ● Indicar outras fontes de conhecimento
  4. 4. Introdução
  5. 5. Introdução Histórico Python foi criada em 1990 por Guido Van Rossum. O nome da  linguagem é uma homenagem ao grupo inglês de humor Monty  Python.  Segundo Guido a linguagem foi concebida para ocupar o  espaço que existia entre as linguagens C/C++ e o shell.
  6. 6. Introdução Evolução da espécie : ● 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
  7. 7. Introdução Encontramos o Python  : ● Blender, Maya ● OpenOffice  ● Zope/Plone  ● BitTorrent  ● MoinMoin  ● Mailman  ● Chandler  ● Gimp  ● Gnumeric  ● Anaconda, Portage, Yum ● Trac
  8. 8. Introdução Quem usa ??  ● 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
  9. 9. Introdução  Por que usar Python ? ● Fácil Aprendizado  ● Fácil Manutenção ● Possui uma extensa Biblioteca Padrão ● 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 !!!
  10. 10. Introdução 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)
  11. 11. Características Básicas Primeiras definições :  ● Interpretado ● Possui modo Interativo ● Possui Tipagem Dinâmica forte ● Linguagem de Muito Alto nível ­ Very High­Level Language (VHLL) ● “Glue Language” ­ usada para integrar sistemas distintos ● Possui uma grande quantidade de bibliotecas de objetos  ● Sua sintaxe facilita uma apresentação limpa do código  ● Orientada a Objetos, mas permite trabalhar com outros paradigmas
  12. 12. Características Básicas Múltiplos paradigmas : SCRIPTS ESTRUTURADA PYTHON FUNCIONAL OO
  13. 13. Características Básicas O Interpretador:  python {opções} [­c comando | ­m módulo | arquivo] {parâmetros} ­c cmd : programa passado como string (cmd) na linha de comando ­h : mensagem de ajuda ­i  : executa programa e quot;caiquot; 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
  14. 14. Características Básicas Palavras reservadas [29] :  and  del not assert  for try break  is  except class  raise if continue  elif or yield from while def  lambda exec finally  return import in  else  pass print    global 
  15. 15. Características Básicas 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
  16. 16. A Linguagem Tipos de dados 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 : {“Nome”: “Ronaldo”, “Time”:”Barcelona”} ● Booleano : True ou False ● Tipo Nulo : None 
  17. 17. A Linguagem Exemplo de Tipos de dados básicos  :  a = 1            # Decimal Inteiro b = 0x12      # Hexadecimal Inteiro c = 1.0         # Float d = 1.34e­3  # Float e = quot;Laranjaquot; f = quot;Laranja e 'orange'quot; h = 'Laranja' lista_frutas = [quot;laranjaquot;, quot;bananaquot;, quot;peraquot;] tupla_frutas = (quot;laranjaquot;, quot;bananaquot;, quot;peraquot;)  dic_hortifruti = {quot;frutaquot;:quot;laranjaquot;, quot;verduraquot;: quot;alfacequot;}
  18. 18. A Linguagem Controle de Fluxo:  ● Condicional : planetas = [quot;Martequot;, quot;Terraquot;, quot;Venusquot;, quot;Plutaoquot;, quot;Saturnoquot;, quot;Jupiterquot;] if type(planetas) is list:     print quot;Tenho uma Listaquot; ● Loop : for i in xrange(10):     print i
  19. 19. A Linguagem Controle de Fluxo:  ● Enquanto : planetas = [quot;Martequot;, quot;Terraquot;, quot;Venusquot;, quot;Plutaoquot;, quot;Saturnoquot;, quot;Jupiterquot;] conta = 0 while planetas[conta] <> quot;Saturnoquot;:     print planetas[conta]     conta = conta + 1
  20. 20. A Linguagem Agora um pouco de diversão :  ● 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]))
  21. 21. A Linguagem A diversão continua ...  ● Alguns truques :     x,y = y,x # Exemplo de swap      list comprehension : resultado = [x for x in xrange(50) if  x%3 ==0]
  22. 22. A Linguagem Usando Funções  : Uma função pode retornar um ou mais objetos. Quanto aos parâmetros de entrada, podemos ter 5 tipos de funções  : ● Caso 1­ Função simples :     def func_simples():         print “oi”         return True          func_simples()
  23. 23. A Linguagem Usando Funções (continuação)  : ● Caso 2 ­ Função com parâmetros definidos:       def func_soma(a, b):         c =  a + b         return c          total = func_soma(1,3)
  24. 24. A Linguagem Usando Funções (continuação)   : ● 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)
  25. 25. A Linguagem Usando Funções  (continuação) : ● Caso 4 ­ Função com quantidade de parâmetros variáveis:       def func_soma(*entrada):         # entrada é uma tupla com todas as variáveis passadas         c = 0         for i in entrada:              c =  c + i          return c          total = func_soma(1,3)     total = func_soma(2,3,4,5)
  26. 26. A Linguagem Usando Funções  (continuação) :  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 formado pelo par chave=valor         print entrada         return True          total = func_trata(nome=”Ronaldo”, time=”Real Madri”)    
  27. 27. A Linguagem Outra formas de chamar uma função : 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”]()
  28. 28. A Linguagem Documentando o seu código :          def  fun_um(): “””                Descrição da função fun_um() “”” return ● No modo interativo :  help(fun_um) ● Com um browser : Pydoc ­p 123
  29. 29. A Linguagem Usando 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_func
  30. 30. A Linguagem Algo mais sobre 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
  31. 31. A Linguagem  Introspecção ­ pesquisando os módulos:  ● No modo interativo usamos o dir() para realizar esta função      import os       dir(os) ●  Permite a integração com IDEs para a geração de ajuda ● Usado para conhecer os módulos e métodos de um objeto que estão  disponíveis.
  32. 32. A Linguagem  Introspecção, de modo mais geral :  ●  type() ­ apresenta o tipo de uma variável. ● locals() ­ apresenta as variáveis presentes no escopo local. ● globals() ­ ­ apresenta as variáveis presentes no escopo global. Definição : Capacidade da linguagem de identificar suas próprias  estruturas internas, tais como tipos, escopo das variáveis, métodos e  atributos.
  33. 33. A Linguagem Conhecendo o __builtins__:  O módulo __builtins__ contém as funções disponíveis por padrão quando se inicia o uso do Python. Temos : ● help ● 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 módulos.]
  34. 34. Tratamento de Exceções Controlando o erro através do try/except:  try:    <comandos> except expressão ,variável:    <comandos se houve exceções> else:    <comandos se não houve exceções>
  35. 35. Debug - Encontrando os erros Usando um “debugger” :  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
  36. 36. Usando Orientação a Objetos Uma classe ... :  class segunda(primeira):     def __init__(self):          print “oi”             def hello_2(self):         print “Hello second world”
  37. 37. Baterias Incluídas
  38. 38. Baterias Incluídas Bibliotecas que fazem a diferença  :  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
  39. 39. Mais Energia para as 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
  40. 40. Referências Livros :  ­ Python in a Nutshell – Alex Martelli – O'Reilly ­ Python Cookbook – Alex Martelli e David Ascher  ­ O'Reilly ­ Dive Into Python – Mark Pilgrim (http://www.diveintopython.org/ ) ­ Aprendendo Python ­ Mark Lutz e David Ascher
  41. 41. Referências Alguns endereços  :  ­ Site oficial : www.python.org - Site oficial no Brasil : www.pythonbrasil.com.br - Manual Referência : http://docs.python.org/ref/ref.html - Tutorial ( Português) : http://www.python.org/doc/current/tut/tut.html
  42. 42. Referências Mais alguns endereços  :  ­ Wiki SL­RJ : wiki.softwarelivre.org/SLRJ/WebHome - Lista SL-RJ : groups.google.com/group/slrj - Lista PythonRio : br.groups.yahoo.com/group/pythonrio/ - Site SERPRO : www.serpro.gov.br
  43. 43. FIM, alguma pergunta ??
  44. 44. OBRIGADO Luiz Guilherme F. Aldabalde lg.aldabalde@gmail.com

×