Seminário de Python - LP 1/2015 - Grupo 2

Preview:

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

Recommended