python mini curso v0812
DESCRIPTION
TRANSCRIPT
![Page 1: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/1.jpg)
Luiz Guilherme F. Aldabalde
Iniciando o uso do Python
Versão.: 10/12/08
![Page 2: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/2.jpg)
Iniciando o uso do Python
Conteúdo
● Introdução● Tipos Básicos● Funções Builtins● Instrospecção● Criando Funções● PyDoc● Tratamento de Erros● Baterias● Fontes
![Page 3: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/3.jpg)
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
![Page 4: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/4.jpg)
Introdução
![Page 5: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/5.jpg)
Introdução
HistóricoPython 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.
![Page 6: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/6.jpg)
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
![Page 7: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/7.jpg)
Introdução
Encontramos o Python :
● Blender, Maya● OpenOffice ● Zope/Plone ● BitTorrent ● MoinMoin ● Mailman ● Chandler ● Gimp ● Gnumeric ● Anaconda, Portage, Yum● Trac
![Page 8: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/8.jpg)
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
![Page 9: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/9.jpg)
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) ● Multiplataforma● É um canivetesuíço !!!
![Page 10: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/10.jpg)
Introdução
Presente nos Sistemas Operacionais:● Windows: 9x, Me, 2K, XP● Unix: HPUX, 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)
![Page 11: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/11.jpg)
Características Básicas
● Interpretado● Possui modo Interativo● Possui Tipagem Dinâmica forte● Linguagem de Muito Alto nível Very HighLevel 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
Primeiras definições :
![Page 12: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/12.jpg)
Características Básicas
Múltiplos paradigmas :
PYTHONPYTHON
SCRIPTSSCRIPTS
ESTRUTURADAESTRUTURADA
FUNCIONALFUNCIONAL
OOOO
![Page 13: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/13.jpg)
Características Básicas
python {opções} [c comando | m módulo | arquivo] {parâmetros}
c cmd : programa passado como string (cmd) na linha de comandoh : mensagem de ajudai : executa programa e "cai" no prompt interativoO : ativa otimizaçõesOO : mesmo que O, incluindo remoção de docstrings (documentação online)t : avisa sobre inconsistências na tabulaçãov : importação verborrágicaV : imprime número de versão
O Interpretador:
![Page 14: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/14.jpg)
Características Básicas
and assert break class continue yielddef finally in print
delforis raiseeliffromlambdareturnelse global
nottryexceptiforwhileexecimportpass
Palavras reservadas [29] :
![Page 15: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/15.jpg)
Características Básicas
● 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
Começando ...
![Page 16: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/16.jpg)
A Linguagem
● Numérico : Decimal, Hexa (0x1a), long 1.0l, float – 1.0 ou 1.0e3, 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
Tipos de dados básicos :
![Page 17: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/17.jpg)
a = 1 # Decimal Inteirob = 0x12 # Hexadecimal Inteiroc = 1.0 # Floatd = 1.34e3 # Floate = "Laranja"f = "Laranja e 'orange'"h = 'Laranja'lista_frutas = ["laranja", "banana", "pera"]tupla_frutas = ("laranja", "banana", "pera") dic_hortifruti = {"fruta":"laranja", "verdura": "alface"}
Exemplo de Tipos de dados básicos :
A Linguagem
![Page 18: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/18.jpg)
● 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:
A Linguagem
![Page 19: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/19.jpg)
● Enquanto :planetas = ["Marte", "Terra", "Venus", "Plutao", "Saturno", "Jupiter"]conta = 0while planetas[conta] <> "Saturno": print planetas[conta] conta = conta + 1
Controle de Fluxo:
A Linguagem
![Page 20: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/20.jpg)
● 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]))
Agora um pouco de diversão :
A Linguagem
![Page 21: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/21.jpg)
● Alguns truques : x,y = y,x # Exemplo de swap list comprehension : resultado = [x for x in xrange(50) if x%3 ==0]
A diversão continua ...
A Linguagem
![Page 22: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/22.jpg)
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()
Usando Funções :
A Linguagem
![Page 23: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/23.jpg)
● Caso 2 Função com parâmetros definidos: def func_soma(a, b): c = a + b return c total = func_soma(1,3)
Usando Funções (continuação) :
A Linguagem
![Page 24: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/24.jpg)
● 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)
Usando Funções (continuação) :
A Linguagem
![Page 25: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/25.jpg)
● 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)
Usando Funções (continuação) :
A Linguagem
![Page 26: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/26.jpg)
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”)
Usando Funções (continuação) :
A Linguagem
![Page 27: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/27.jpg)
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”]()
Outra formas de chamar uma função :
A Linguagem
![Page 28: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/28.jpg)
def fun_um(): “”” Descrição da função fun_um() “”” return
● No modo interativo : help(fun_um)● Com um browser : Pydoc p 123
Documentando o seu código :
A Linguagem
![Page 29: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/29.jpg)
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
Usando Módulos :
A Linguagem
![Page 30: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/30.jpg)
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
Algo mais sobre Módulos :
A Linguagem
![Page 31: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/31.jpg)
● 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.
Introspecção pesquisando os módulos:
A Linguagem
![Page 32: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/32.jpg)
● 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.
Introspecção, de modo mais geral :
A Linguagem
![Page 33: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/33.jpg)
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.]
A Linguagem
![Page 34: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/34.jpg)
Tratamento de Exceções
try: <comandos>except expressão ,variável: <comandos se houve exceções>else: <comandos se não houve exceções>
Controlando o erro através do try/except:
![Page 35: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/35.jpg)
Debug - Encontrando 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 subfunção ( se existir) b xx – define um novo breakpoint na linha xx c – continue l list h – chama o help
Usando um “debugger” :
![Page 36: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/36.jpg)
class segunda(primeira): def __init__(self): print “oi” def hello_2(self): print “Hello second world”
Uma classe ... :
Usando Orientação a Objetos
![Page 37: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/37.jpg)
Baterias Incluídas
![Page 38: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/38.jpg)
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
Bibliotecas que fazem a diferença :
Baterias Incluídas
![Page 39: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/39.jpg)
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
XML : PyXML, 4Suite, ElementTree, RDFLib, Cwm
Web : ZOPE, CherryPy, Webware, Quixote, PSP, mod_python, Nevow, Django, TurboGears, Pylons
Processamento. de Imagens : PIL, PythonMagick, Gimp-python
Mais Energia para as Baterias
![Page 40: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/40.jpg)
Referências
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
Livros :
![Page 41: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/41.jpg)
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
Alguns endereços :
Referências
![Page 42: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/42.jpg)
Wiki SLRJ : 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
Mais alguns endereços :
Referências
![Page 43: Python Mini Curso V0812](https://reader034.vdocuments.pub/reader034/viewer/2022042606/54965047ac7959222e8b5098/html5/thumbnails/43.jpg)
FIM, alguma pergunta ??