SlideShare a Scribd company logo
1 of 44
Download to read offline
Iniciando o uso do
      Python


              Luiz Guilherme F. Aldabalde



                             Versão.: 10/12/08
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
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
Introdução
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.
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
Introdução



Encontramos o Python  :

● Blender, Maya
● OpenOffice 

● Zope/Plone 

● BitTorrent 

● MoinMoin 

● Mailman 

● Chandler 

● Gimp 

● Gnumeric 

● Anaconda, Portage, Yum

● Trac
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
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 !!!
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)
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
Características Básicas



Múltiplos paradigmas :

                                            SCRIPTS


                                          ESTRUTURADA
       PYTHON

                                           FUNCIONAL


                                              OO
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
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 
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
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 
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;}
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
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
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]))
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]
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()
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)
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)
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)
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”)
   
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”]()
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
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
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
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.
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.
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.]
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>
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
Usando Orientação a Objetos



Uma classe ... : 

   class segunda(primeira):
       def __init__(self):
            print “oi”        
       def hello_2(self):
           print “Hello second world”
Baterias Incluídas
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
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
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
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
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
FIM, alguma pergunta ??
OBRIGADO




Luiz Guilherme F. Aldabalde
  lg.aldabalde@gmail.com

More Related Content

What's hot

What's hot (6)

JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Aula1 c++ builder
Aula1   c++ builderAula1   c++ builder
Aula1 c++ builder
 
Introdução ao JavaScript
Introdução ao JavaScriptIntrodução ao JavaScript
Introdução ao JavaScript
 
Php m18
Php m18Php m18
Php m18
 

Similar to Python Mini Curso V0812

Scala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) IntroduçãoScala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) Introduçãopaulosuzart
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanosCaike Souza
 
PHP - Uma Pequena Introducao
PHP - Uma Pequena IntroducaoPHP - Uma Pequena Introducao
PHP - Uma Pequena Introducaojonatasoliveira
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comandogarux
 
Workshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptWorkshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptPedro Sousa
 
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
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonJanderson Campêlo
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaSérgio Souza Costa
 
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 PythonMayron Cachina
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 

Similar to Python Mini Curso V0812 (20)

Scala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) IntroduçãoScala - Uma Breve (breve mesmo) Introdução
Scala - Uma Breve (breve mesmo) Introdução
 
PHP - Programação para seres humanos
PHP - Programação para seres humanosPHP - Programação para seres humanos
PHP - Programação para seres humanos
 
PHP - Uma Pequena Introducao
PHP - Uma Pequena IntroducaoPHP - Uma Pequena Introducao
PHP - Uma Pequena Introducao
 
Qual linguagem escolher?
Qual linguagem escolher?Qual linguagem escolher?
Qual linguagem escolher?
 
Minicurso Java && Cl
Minicurso Java && ClMinicurso Java && Cl
Minicurso Java && Cl
 
Desenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de ComandoDesenvolvimento Rápido de Programas Linha de Comando
Desenvolvimento Rápido de Programas Linha de Comando
 
Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)
 
Workshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-ptWorkshop Ruby on Rails dia 1 ruby-pt
Workshop Ruby on Rails dia 1 ruby-pt
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo Lua
 
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
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Aula01
Aula01Aula01
Aula01
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Ecossistema Python
Ecossistema PythonEcossistema Python
Ecossistema Python
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
Linguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem JavaLinguagem Java, fundamentos da linguagem Java
Linguagem Java, fundamentos da linguagem Java
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 

Python Mini Curso V0812