O Estado do Python 
Henrique G. G. Pereira 
SAINF 2014
Roteiro 
•Apresentação 
•Introdução ao Python 
•Histórico 
•Comunidade 
•Bibliotecas
Eu 
•Bacharel em Sistemas de Informação – UNIFRA 
•Mestre em Ciência da Computação – UFSM 
•Analista de TI @ CPD 
•Professor @ UNIFRA 
•Programador Python
O que é Python? 
•Linguagem de Altíssimo Nível 
•Sintaxe Fácil 
•Multiparadigma 
•Tipagem Forte e Dinâmica 
•Multiplataforma 
•Interpretada
O que é Python? 
•Linguagem de Altíssimo Nível 
•Sintaxe Fácil 
•Multiparadigma 
•Tipagem Forte e Dinâmica 
•Multiplataforma 
•Interpretada
Baixo Nível
Nível Intermediário
Altíssimo Nível
O que é Python? 
•Linguagem de Altíssimo Nível 
•Sintaxe Fácil 
•Multiparadigma 
•Tipagem Forte e Dinâmica 
•Multiplataforma 
•Interpretada
Sintaxe Fácil 
•Sem { } 
•Blocos limitados por indentação 
•Comandos em inglês 
•Operadores em inglês
O que é Python? 
•Linguagem de Altíssimo Nível 
•Sintaxe Fácil 
•Multiparadigma 
•Tipagem Forte e Dinâmica 
•Multiplataforma 
•Interpretada
Multiparadigma 
•Procedural 
nome = ‘paulo’ 
•Orientado a Objetos 
paulo = Pessoa(“Paulo”) 
•Funcional 
executar(busca, Pessoa, nome = ‘Paulo’)
O que é Python? 
•Linguagem de Altíssimo Nível 
•Sintaxe Fácil 
•Multiparadigma 
•Tipagem Forte e Dinâmica 
•Multiplataforma 
•Interpretada
Tipagem 
•Dinâmica 
•Não é necessário declarar tipos nas variáveis 
•O interpretador detecta automáticamente os tipos. 
•Forte 
•Objetos de tipos diferentes não conseguem se relacionar. 
•Impossível somar uma string com um número.
O que é Python? 
•Linguagem de Altíssimo Nível 
•Sintaxe Fácil 
•Multiparadigma 
•Tipagem Forte e Dinâmica 
•Multiplataforma 
•Interpretada
Multiplataforma 
•Windows 
•Linux 
•Embutido 
•OSX 
•Embutido 
•Solaris 
•Embutido
O que é Python? 
•Linguagem de Altíssimo Nível 
•Sintaxe Fácil 
•Multiparadigma 
•Tipagem Forte e Dinâmica 
•Multiplataforma 
•Interpretada
Interpretada 
•Interpretador Python (C) 
•Interpretador Jython (Java) 
•Interpretador IronPython (.Net)
História do Python 
•Idealizada por Guido Van Rossum no final dos anos 80. 
•Python 1.0 lançada em 1994. 
•Python 2.0 lançada em 2000. 
•Python 3.0 lançada em 2008.
História do Python 
•Idealizada por Guido Van Rossum no final dos anos 80. 
•Python 1.0 lançada em 1994. 
•Python 2.0 lançada em 2000. 
•Python 3.0 lançada em 2008.
Python 2 
•Versão 2.7 
•Lançada em Julho de 2010 
•Atualmente 2.7.8 
•Só recebe correções 
•Escrita em C 
•Muitas Bibliotecas 
•Estável
Python 3 
•Versão 3.4 
•Lançada em Março de 2014 
•Versão atual de desenvolvimento 
•Escrita em C 
•Um número menor de bibliotecas 
•Estável
Outros Pythons 
•PyPy 
•Stackless Python 
•IronPython 
•Jython 
•ActivePython 
•Python(x,y)
Quem usa Python?
Python @ Google
Python @ Google
Python @ Google
Python @ NASA
Python @ CIA
Python @ CIA
E no Brasil?
Empregos no Brasil? 
•Globo.com 
•IBM 
•Motorola 
•Totvs 
•Google 
•Amazon 
•Titans Group 
•Dafiti 
•MagazineLuiza
Comunidade
Python Software Foundation 
•Organização sem fins lucrativos 
•Formada em 2001 
•Promover, proteger e avançar o Python 
•Auxiliar e Ajudar o crescimento das comunidades internacionais 
•Orçamento de $800k em 2013
APyB - Associação Python Brasil 
•Organização sem fins lucrativos 
•Organizar eventos 
•Coordenar esforços de promoção e marketing 
•Divulgação de casos de sucesso 
•Fomentar a utilização da linguagem 
•Proteger o uso das marcas
Email, IRC, Lista de Discussão 
•www.python.org.br 
•irc.freenode.net #python-br 
•https://groups.google.com/forum/#!forum/python-brasil
Bibliotecas
Bibliotecas 
•Muitas delas nativas 
•https://docs.python.org/3/library/index.html
Bibliotecas 
•Muitas delas nativas 
•https://docs.python.org/3/library/index.html 
•Milhares contribuídas 
•https://pypi.python.org/pypi
Computação Científica
SciPy 
•Matemática 
•Ciência 
•Engenharia 
•Scipy.org
NumPy 
•Vetores 
•Matrizes n-dimensionais 
•Integração com C/C++ e Fortran 
•Números aleatórios 
•Numpy.org
Pandas 
•Estatística 
•Mediana, quartis, desvio padrão, variância 
•Análise e Modelagem de dados 
•pandas.pydata.org
SymPy 
•Matemática Simbólica 
•Sympy.org
BioPython 
•Bioinformática 
•Alinhamento de códons 
•Sequências de proteínas 
•BLAST 
•ClustalW 
•Biopython.org
NLTK 
•Processamento de linguagem natural 
•Funciona em Português também 
•Machado de Assis incluído 
•NLTK.org
Scikit-learn 
•Data Mining e Análise de Dados 
•Classificação 
•Regressão 
•Agrupamento 
•Normalização 
•scikit-learn.org
Scikit-image 
•Processamento de imagens 
•Detecção de Bordas 
•Histogramas 
•Matching 
•Scikit-image.org
Desenvolvimento Web
Django 
•Framework FullStack 
•3 camadas 
•Modelo – Banco de Dados 
•View – Regras de Negócio 
•Template – Apresentação 
•Livre de SQL 
•Djangoproject.com
Model
View
Template
Flask 
•Microframework 
•flask.pocoo.org
Pyramid 
•Framework Minimalista 
•3 camadas 
•SQLAlchemy como mapeador objeto relacional 
•pylonsproject.org
web2py 
•Framework FullStack 
•3 camadas 
•Model – Banco de Dados 
•Controler – Regras de Negócio 
•View - Apresentação
Desenvolvimento de Jogos
Pygame 
•Framework para desenvolvimento de jogos 
•Baseado na Lib SDL 
•Multiplataforma 
•Windows, Linux, OSX 
•pygame.org
Kivy 
•Framework para desenvolvimento de aplicações gráficas 
•OpenGL ES 2 
•Multiplataforma 
•Windows, Linux, OSX 
•Android 
•iOS 
•kivy.org
Panda3D 
•Game Engine em 3D 
•Desenvolvido pela Disney 
•C++/Python 
•Multiplataforma 
•Windows, Linux, OSX 
•panda3d.org

O Estado do Python