Upload
allisson-barros
View
26
Download
1
Embed Size (px)
Citation preview
Allisson Barros 12/0055619
Daniel Luz 13/0007714
Leandro Bergmann 14/0149007
Luiz Fernando Vieira 13/0013757
Uriel Silva 12/0137232
Início da
Implementação
1989
1990
Lançamento
CWI
Python 0.9.0
alt.sources
1991
1992
Python 0.9.5
Apenas Mac
Python 1.0
1994
2000
Python 1.6
Python 2.0
BeOpen.com
2000
Python 2.1
PSF
2001
2001
Licença GPL
Python 2.1.1
2008
Python 3.0
Python 2.6
Transição
2008
Python 2.7.10
Versão 2.x Atual
2015
2015
Python 3.4.3
Versão 3.x Atual
Python 1.6
Suporte para Unicode
Regular Expression Engine
Pacote distutils - Instalação e distribuição
Novas APIs em C para alocação de memória
Reestruturação da IDE padrão IDLE
Python 2.1
Novo tipo nativo - Unicode String
Utilização do SourceForge
Novo tratamendo de Listas – Haskell
Novos operadores de atribuição
Mudanças no Garbage Collector
Módulos XML
Python 2.6
Transição para o Python 3.0
Inclusão de novos Pacotes – json e multiprocessing
Python 3.x
Reestruturação da Linguagem Novo formato de Documentação Roundup como novo bug tracker print como função Nova biblioteca de I/O Mudanças de sintaxe Python 2.7.10
Versão 2.x mais estável
Melhora no tratamento de floats e Decimals
Novas Classes Counter e OrderedDict
Procedural Funcional Orientado a Objetos
Científico Comercial Inteligência Artificial
Estudantes Pesquisadores
Paradigmas Domínios
Usuários
Procedural Funcional
Utiliza funções aplicadas a determinados parâmetros como principal meio de execução
Utiliza comandos de atribuição e segue a ordem do código durante a execução
Utiliza abstrações dos dados, encapsulando-os em objetos com restrições de acesso, herança e vinculação
Orientação a Objetos
Astropy Biopython Numpy TomoPy
GNU Mailman Django Kivy
Scikit-learn
Científico Comercial
Inteligência Artificial
Científico
Comercial
Inteligência Artificial
Estudantes Pesquisadores
Usuários Gerais
Comandos
if / else for while try / except
Tipos Primitivos
Boolean Int / Float / Complex Char / String List Tuple Dictionary
Funções
def Classes Funções Anônimas
Outros
Palavras reservadas Variáveis Operadores Identação
Tipos Primitivos
Números (int, float, complex)
Booleano
String
Lista
Tupla
Dicionário
–
Funções
def
Funções
Classes
Funções
–
Funções Anônimas
–
Comandos
If / elif / else
while
for
Comandos
try except
–
Outros
Palavras reservadas
and del from not while
as elif global or with
assert else if pass yield
break except import print class
exc in raise continue finally
is return def for lambda
try False True nonlocal
Outros
Variáveis com tipagem dinâmica
Inicialização múltipla
Outros
Operadores (lógicos, relacionais e aritméticos)
Outros
Sem delimitadores de bloco
Identação é obrigatória
Legibilidade
Capacidade de Escrita
Simplicidade Global
Tipos de Dados
Abstração
Aspectos da Sintaxe
Abstração
Expressividade
Legibilidade
Capacidade de Escrita
Simplicidade Global
Tipos de Dados
Abstração
Aspectos da Sintaxe
Abstração
Expressividade
Simplicidade Global
Poucos componentes básicos
Poucas palavras reservadas
Bom
and del from not while
as elif global or with
assert else if pass yield
break except import print class
exc in raise continue finally
is return def for lambda
try False True nonlocal
Tipos de Dados
Facilidade para criar tipos
Bom
Tipos de Dados
Tipagem dinâmica
Ruim
Abstração
Linguagem de Alto Nível
Dificuldade para entender os objetos
Ruim
Aspectos da Sintaxe
Identação por blocos
Bom
Legibilidade
Capacidade de Escrita
Simplicidade Global
Tipos de Dados
Abstração
Aspectos da Sintaxe
Abstração
Expressividade
Abstração
Funcional
Orientada a Objetos
Bom
Expressividade
Funcional
Orientada a Objetos
Bom
Confiabilidade
Custo
Verificação de Tipos
Tratamento de tipos
Aliasing
Treinamento
Implementação
Compilação/interpretação
Execução
Manutenação
Treinamento
Implementação
Compilação/interpretação
Execução
Manutenação
Confiabilidade
Custo
Verificação de Tipos
Tratamento de tipos
Aliasing
Verificação de tipos
Verificação dinâmica
Runtime
Existência de Erros
Ruim
Tratamento de Exceções Bom
Aliasing
Objetos com mesmo nome
Ruim
Confiabilidade
Custo
Verificação de Tipos
Tratamento de tipos
Aliasing
Treinamento
Execução
Manutenação
http://blog.codeeval.com/codeevalblog/2015#.VYDWMPlViko=
Alta legibilidade
Curva de Aprendizado
Treinamento Baixo
http://benchmarksgame.alioth.debian.org/
Execução Alto
12
16
20
20.06 488.80 0.43 0.88 1.49 21.11 8.44
Java
Ruby
Python
176.22
Manutenção Baixo
Boa legibilidade
Vasta documentação
Depende da aplicação
Moderado
Portabilidade
Generalidade
Padronização
Multi-plataforma
Vários Domínios
Mobile, Web, Desktop
Data Mining
Jogos
Qualidade da Definição
Documentação (python.org)
Suporte da comunidade
Gramática
Processamento de grande quantidade de dados
Manipulação de strings e listas
Data mining
Fácil conexão com banco de dados
Grande quantidade de BIFs
XML
Motivos
libxml2 Libxslt Bibliotecas para parse de documentos XML
JAXP Criada em cima do xslt capaz de alterar a estrutura de dados XML
C Java
libxml++ Essa API é capaz de realizar atividades comuns com menos linhas de código
lxml ElementTree
Junção de libs como libxml2 e libxslt
C++ Python
Tag Atributo Texto Childs
ElementTree
http://lpunb.wikia.com/wiki/Semin%C3%A1rio_sobre_Python_-_LP_1/2015_-_Grupo_2