Você está na página 1de 35

Richardson Lima

securityfusion@gmail.com
richardsonlima@foxylinux.com
http://richardsonlima.foxylinux.com

Por Richardson Lima richardsonlima@foxylinux.com 1


Atenção

• O prazer de construir um programa em


Python pode causar dependência
psicológica.

• Brincadeirinhaaaa !!!

Por Richardson Lima richardsonlima@foxylinux.com 2


Esboço
• O que é Python?

• Por que usar Python?

• Python, em comparação com outras linguagens.

Por Richardson Lima richardsonlima@foxylinux.com 3


O que é Python?

Por Richardson Lima richardsonlima@foxylinux.com 4


Porquê Python

• Seu nome é uma homenagem ao grupo


humorístico inglês Monty Python,adorado
por geeks de todo o mundo.
Por Richardson Lima richardsonlima@foxylinux.com 5
O que é Python ?
- Prototipagem rápida de linguagem OO
- Não é apenas uma linguagem de scripting
- Não apenas um outro Perl
- Extensível (incremento de novos módulos)
C / C ++ / Fortran / qualquer coisa =)
Java (através Jython)
- Possível incorporar em aplicações

Por Richardson Lima richardsonlima@foxylinux.com 6


Propriedades de alto nível
- Extremamente portátil.
- Unix, Windows, Mac, BeOS, Win / CE,
DOS, OS / 2, Amiga, VMS, Cray, ...
- Compilado para código interpretador byte code.
- Compilação é implícita e automática.
- Gerenciamento automático de memória.

Por Richardson Lima richardsonlima@foxylinux.com 7


O que é Python
- Livre (open source)
Direitos autorais, mas não uso restrito
- Apoio da comunidade de usuários
- Design elegante, fácil de aprender
Lê como "pseudo-código"
Adequada como primeira linguagem

Por Richardson Lima richardsonlima@foxylinux.com 8


Interfaces para o ...
- COM, DCOM, ODBC
- Bases de dados comerciais
- Java (Jython)
- Muitas bibliotecas GUI
• Plataforma independente
- Tk, wxWindows, GTK
• Plataforma específica
- MFC, MacOS, X11/Motif

Por Richardson Lima richardsonlima@foxylinux.com 9


Propriedades da linguagem
- Tudo é um objeto
- Módulos, classes, funções
- Manipulação de exceção
- Digitação dinâmica, polimorfismo
Static scoping
- Operador de sobrecarga (overloading)
- Indentação para bloquear estrutura

Por Richardson Lima richardsonlima@foxylinux.com 10


Tipos de dados de alto nível
- Números: int, long, float, complex
- Strings: imutável
- Listas e dicionários: contentores
- Outros tipos de e.x. dados binários,
expressões regulares, introspecção

Por Richardson Lima richardsonlima@foxylinux.com 11


Por que usar
Python?

Por Richardson Lima richardsonlima@foxylinux.com 12


Produtividade!
- Tempo de desenvolvimento reduzido,
> A codificação é mais rápida que C, C + +,
Java.
- Manutenção de código
> Código é extremamente legível
- Menor tempo de aprendizado
> Linguagem é muito fácil de aprender

Por Richardson Lima richardsonlima@foxylinux.com 13


Em que pode utilizado?
- Prototipagem rápida
- Web scripting (HTML, HTTP, ...)
- Programação ad hoc,aplicações científicas
- Processamento de XML (XML-RPC and SOAP )
- Base de dados (Oracle, MySQL, PostgreSQL, ODBC, ...)
- Aplicações GUI

Por Richardson Lima richardsonlima@foxylinux.com 14


Quem está usando?
- LLNL, Fermilab
- Grupo CMU no Alice (gráficos 3D)
- ObjectDomain (extensão de ferramenta UML)
- Infoseek (linguagem scripting)
- Industrial Light & Magic (tudo)
- Yahoo! (CGI no Yahoo! Mail)
- Digital Creations (Zope)
- RedHat (Ferramentas de instalação)

Por Richardson Lima richardsonlima@foxylinux.com 15


Criador
• Criada em 1989 pelo holandês
Guido van Rossum no Centrum
voor Wiskunde en Informatica (CWI),
em Amsterdã,Holanda.

• O projeto de sistema operacional


distribuído Amoeba precisava de uma
linguagem de script. Nasce o Python.
Por Richardson Lima richardsonlima@foxylinux.com 16
Python no Brasil
• Embratel: monitoramento das interfaces de backbone e
clientes de internet, também existem scripts de uso interno.
• CPqD: monitoramento de centrais telefônicas.
• GPr Sistemas: Desenvolvimento de aplicações sob encomenda,
sistemas como monitoramento de transporte terrestre via satélite são as
soluções já feitas.

• Outras que utilizam o Python para sistemas Web, como Varig,


Serpro,Interlegis, ...

• Os sistemas web de gestão de conteúdo usando o trio


Python/Zope/Plone vem crescendo a cada dia, principalmente em
grandes empresas e em órgãos do governo.

Por Richardson Lima richardsonlima@foxylinux.com 17


Python no mundo
• Apesar da associação cômica, Python
vem sendo usada em projetos sérios por
entidades como Google,Yahoo, NASA,
InfoSeek, MCI Worldcom, IBM e Hiway, a
maior empresa de hospedagem de web-
sites do mundo.

Por Richardson Lima richardsonlima@foxylinux.com 18


Comunidade Mundial

• URL: http://python.org/
• Mail: python-list@python.org, python-help@python.org
• IRC: irc.freenode.org, canal #python

Por Richardson Lima richardsonlima@foxylinux.com 19


Comunidade Brasileira

• URL: http://www.pythonbrasil.com.br/
• Mail: python-brasil@yahoogrupos.com.br
• IRC: irc.freenode.org, canal #python-br

Por Richardson Lima richardsonlima@foxylinux.com 20


Python
COMPARAÇÃO COM
OUTRAS LINGUAGENS

Por Richardson Lima richardsonlima@foxylinux.com 21


Python vs. Perl
- Mais fácil de aprender
- Boa para o uso ocasional
- Código mais legível
- Manutenção do código
- Menos "mágicas ", efeitos colaterais
- Mais "segurança", garantias
- Melhor integração Java

Por Richardson Lima richardsonlima@foxylinux.com 22


Python vs. Tcl
- Orientação a objeto
- Sintaxe mais diferenciada
- Muito mais rápido (mesmo que Tcl 8.x)
- Menos necessidade de extensões C
- Se usar extensões C não redefini a sintaxe
> extensão, portanto, menos conflitos
- Melhor integração Java
- Python usa Tk como GUI std

Por Richardson Lima richardsonlima@foxylinux.com 23


Python vs. Java
- Código 5-10 vezes mais conciso
- Digitação dinâmica
- Desenvolvimento muito rápido
- Não tens que compilar
- Menos tempo de digitação
- Sim, vai mais devagar !!!
- Mas o desenvolvimento é muito mais rápido!
- Utilize Python com Java: Jython!

Por Richardson Lima richardsonlima@foxylinux.com 24


Python em web-applications
• Python é tambem a base do Zope, a mais
sofisticada plataforma para construção de
web-applications disponível hoje como
open-source.

Por Richardson Lima richardsonlima@foxylinux.com 25


Recursos
• Apesar de sua sintaxe simples e clara,
Python oferece recursos disponíveis
também em linguagens mais complicadas
como Java e C++.

Por Richardson Lima richardsonlima@foxylinux.com 26


Detalhes dos recursos
• Programação orientada a objetos

• Um moderno mecanismo para o tratamento de erros

• Possibilidade de executar o mesmo programa sem modificações em


várias plataformas

• Recursos avançados de manipulação de textos, listas e outras estruturas


de dados

• Módulos, uma forma inteligente de acessar e organizar código a ser


reutilizado

Por Richardson Lima richardsonlima@foxylinux.com 27


Orientação a Objeto
• Já vi muita gente dizer que uma
linguagem é orientada a objetos porque
você pode criar interfaces gráficas.

• Não tem nada a ver.

Por Richardson Lima richardsonlima@foxylinux.com 28


Detalhe
• Isso não significa, é claro, que não se
pode criar aplicações com interfaces
gráficas com Python ou com qualquer
outra linguagem orientada ou não a
objetos.

Por Richardson Lima richardsonlima@foxylinux.com 29


Python OO

• Python é uma linguagem orientada a objetos,


e nela quase tudo é um objeto, números,
strings,funções, classes, instancias, métodos,
...

Por Richardson Lima richardsonlima@foxylinux.com 30


Python Destrói !!!
• Python nos oferece uma sintaxe simples
mas ao mesmo tempo suporta a maior
parte das características importantes de
linguagens modernas e amplamente
utilizadas como Java, C++, Perl e
VBScript.

Por Richardson Lima richardsonlima@foxylinux.com 31


Seu primeiro código Python
• >>> print “Oi, Mundo !"
• Oi, Mundo !

• Em JAVA !!!
• Class Oi Mundo {
• public static void main (String[] args) {
• System.out.println(“ Oi, Mundo”) ;
• }
• }

Por Richardson Lima richardsonlima@foxylinux.com 32


Brincando com Python !
• #!/usr/bin/env python
• import os
• if os.path.isdir("/tmp"):
• print "/tmp é um diretório"
• else:
• print "/tmp não é um diretório"

Por Richardson Lima richardsonlima@foxylinux.com 33


The central philosophy of Python

• In [1]: import this

Por Richardson Lima richardsonlima@foxylinux.com 34


Contato

• Richardson Lima ( hachid )

• Email: richardsonlima@foxylinux.com
• Website: http://richardsonlima.foxylinux.com
• aMSN: richardson@hachid.com
• Obtenha esta palestra em:
http://www.foxylinux.com/python/PythonPalestra-RichardsonLima-branco.pdf

Por Richardson Lima richardsonlima@foxylinux.com 35

Você também pode gostar