seminário de python - lp 1/2015 - grupo 2

50
Allisson Barros 12/0055619 Daniel Luz 13/0007714 Leandro Bergmann 14/0149007 Luiz Fernando Vieira 13/0013757 Uriel Silva 12/0137232

Upload: allisson-barros

Post on 15-Aug-2015

26 views

Category:

Software


1 download

TRANSCRIPT

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

Allisson Barros 12/0055619

Daniel Luz 13/0007714

Leandro Bergmann 14/0149007

Luiz Fernando Vieira 13/0013757

Uriel Silva 12/0137232

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

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

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

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

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

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

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

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

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

Procedural Funcional Orientado a Objetos

Científico Comercial Inteligência Artificial

Estudantes Pesquisadores

Paradigmas Domínios

Usuários

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

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

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

Utiliza abstrações dos dados, encapsulando-os em objetos com restrições de acesso, herança e vinculação

Orientação a Objetos

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

Astropy Biopython Numpy TomoPy

GNU Mailman Django Kivy

Scikit-learn

Científico Comercial

Inteligência Artificial

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

Científico

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

Comercial

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

Inteligência Artificial

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

Estudantes Pesquisadores

Usuários Gerais

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

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

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

Tipos Primitivos

Números (int, float, complex)

Booleano

String

Lista

Tupla

Dicionário

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

Funções

def

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

Funções

Classes

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

Funções

Funções Anônimas

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

Comandos

If / elif / else

while

for

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

Comandos

try except

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

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

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

Outros

Variáveis com tipagem dinâmica

Inicialização múltipla

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

Outros

Operadores (lógicos, relacionais e aritméticos)

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

Outros

Sem delimitadores de bloco

Identação é obrigatória

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

Legibilidade

Capacidade de Escrita

Simplicidade Global

Tipos de Dados

Abstração

Aspectos da Sintaxe

Abstração

Expressividade

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

Legibilidade

Capacidade de Escrita

Simplicidade Global

Tipos de Dados

Abstração

Aspectos da Sintaxe

Abstração

Expressividade

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

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

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

Tipos de Dados

Facilidade para criar tipos

Bom

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

Tipos de Dados

Tipagem dinâmica

Ruim

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

Abstração

Linguagem de Alto Nível

Dificuldade para entender os objetos

Ruim

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

Aspectos da Sintaxe

Identação por blocos

Bom

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

Legibilidade

Capacidade de Escrita

Simplicidade Global

Tipos de Dados

Abstração

Aspectos da Sintaxe

Abstração

Expressividade

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

Abstração

Funcional

Orientada a Objetos

Bom

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

Expressividade

Funcional

Orientada a Objetos

Bom

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

Confiabilidade

Custo

Verificação de Tipos

Tratamento de tipos

Aliasing

Treinamento

Implementação

Compilação/interpretação

Execução

Manutenação

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

Treinamento

Implementação

Compilação/interpretação

Execução

Manutenação

Confiabilidade

Custo

Verificação de Tipos

Tratamento de tipos

Aliasing

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

Verificação de tipos

Verificação dinâmica

Runtime

Existência de Erros

Ruim

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

Tratamento de Exceções Bom

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

Aliasing

Objetos com mesmo nome

Ruim

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

Confiabilidade

Custo

Verificação de Tipos

Tratamento de tipos

Aliasing

Treinamento

Execução

Manutenação

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

http://blog.codeeval.com/codeevalblog/2015#.VYDWMPlViko=

Alta legibilidade

Curva de Aprendizado

Treinamento Baixo

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

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

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

Manutenção Baixo

Boa legibilidade

Vasta documentação

Depende da aplicação

Moderado

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

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

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

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

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

libxml2 Libxslt Bibliotecas para parse de documentos XML

JAXP Criada em cima do xslt capaz de alterar a estrutura de dados XML

C Java

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

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

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

Tag Atributo Texto Childs

ElementTree

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