O documento resume a história, características, plataformas, implementações, licença e módulos da linguagem de programação Python. Foi criada por Guido Van Rossum em 1989 e lançada em 1991, tornando-se uma linguagem de código aberto com ampla utilização.
2. Agenda:
Histórico
Características
Plataformas Disponíveis
Implementações
Licença
Módulos e Frameworks
Ambientes de desenvolvimento
Integrado
3. Agenda:
Aplicações
Aprenda Python
Python não é uma maravilha
Eventos
Python no nosso curso
Ranking
Guido Van Rossum
4. Histórico
Guido Van Rossum – 1989
Instituto de Pesquisa Nacional para
Matemática e Ciência da Computação (CWI)
Sucessor da linguagem ABC
Aumentar Produtividade do Programador
Lançamento: 1991
Versão 0.90:
Módulos de Modula3
Classes, heranças, tratamento de
exceções, funções
Tipos de dados nativos (list, dict,
str)
5. Histórico
1994
Fórum de discussão comp.lang.python
Versão 1.0:
Adicionado de ferramentas para
computação funcional (lambda, map,
filter e reduce)
1995:
Corporação para Iniciativas Nacionais de
Pesquisa CNRI (RestonEstados Unidos)
Versão 1.2
Versão 1.4:
Linguagem ganha a capacidade de passar
parâmetro pelo nome
6. Histórico
Ganha forma de encapsulamento
Suporte Nativo a número complexos
Versão 1.6
Versão 1.61:
Licença CNRI
Compatível com GPL
2000:
BeOpen
Versão 2.0:
Listcomprehension, sistema coletor de
lixo
Analisador Sintático SAX
7. Histórico
2001:
PythonLabs → Digital Creations
Python Software Foundation
Versão 2.1
Versão 2.2:
Unificação do tipos de Python (escritos
em C) e classes (escritas em Python) em
somente uma hierarquia
Modelo de Objetos Python
consistentemente orientado a
objeto
8. Histórico
Versão 2.3:
Pacote logging
Versão 2.4
Versão 2.6:
Transição
Bibliotecas para multiprocessamento,
JSON, E/S
Nova forma de formatação de cadeias de
caracteres
Python 3000:
O print passa a ser uma função
Mudança de todas as cadeias de
caractere para UNICODE
9. Características
Construções
Estrutura de Seleção
if, elif, else
Estrutura de Repetição
for, while
Estrutura de classes
class
Contrução de Subrotina
def
Construção de escopo
with
10. Características
Tipos de dados
Valores e Objetos possuem tipos bem
definidos
str → “Python”, 'petcomputacao'
list → ['ufcg', 10, True]
dict → {“oi”:”hello”, “gordo”:”big”}
int → 13, 5555555555555555L
float → 12.987765432
complex → 3+4j
bool → True, False
set, frozenset → set([1,”diogo”, “diogo”,
13, 13])
11. Características
Permite definição de tipo de dados
próprios
Métodos são definidos como funções
anexados à classe
Exemplo de criação de classe:
class Bag:
def __init__(self):
self.data = []
def add(self, x):
self.data.append(x)
def addtwice(self, x):
self.add(x)
self.add(x)
13. Características
Tipagem Dinâmica
Interpretador Interativo
Análise Léxica
Analisador Sintático
Indentação e Espaços em branco
Compilador de Bytecode
Pode ser compilada
.pyc e .pyo
Módulo dis da Bilioteca
Grupos de Arquivos
14. Características
Orientação a Objetos
Classes, funções, números e módulos são
considerados objetos
Polimorfismo, herança
Não há encapsulamento
Atributo de uso privado da classe:
_atributo
Classe._atributo = outro_atributo
Atributo privado: __atributo
Classe._A__atributo = outro_atributo
19. Licença
Livre, aprovada pela OSI
Compatível com GPL
20. Módulos e Frameworks
Biliotecas de Funções Especializadas
Desenvolvimento Web
Django, Pylons, TurboGears, CherryPy
Processamento de Imagem
Python Imaging Library, Matplotlib
Computação Gráfica e Desenvolvimento de
Jogos
Visual Python, PyOpenGL, Pygame
Computação Distribuída
PYRO
21. Módulos e Frameworks
Computação Científica
Numarray
Desenvolvimento de Software
Twisted
Banco de dados
ZODB
22. Interfaces Gráfica
Tkinter : Módulo padrão para GUI no Python
PyGT : Interface para a biblioteca GTK
PyQT : Interface para a biblioteca QT
WxPython : Interface para a biblioteca
wxWidgets
Wax : Modo simples do wxPython
23. Ambientes de
desenvolvimento integrado
Boa Constructor → wxPython
Eric Python IDE → Qt
Geany → GTK2
IDLE → Tkinter
IronPython Studio → VS2008
Komodo → Mozilla
PyDev (Eclipse)
PythonCard
PyScripter
Wing IDE
24. Aplicações
Projetos que utilizam Python
Servidor ZOPE
Mnet
YouTube
Organizações que utilizam a linguagem
Google
Yahoo
NASA
Air Canada
27. Python não é uma Maravilha
Orientação a Objetos
Não há encapsulamento
Incofiável quanto à atributos privados
Parâmetros não define tipo
Um mesmo método pode retornar vários
tipos de objetos