palestra apresentando python e suas aplicações

57
Marcos Thomaz da Silva [email protected] twitter: @marcosthomazs Conhecendo Python Rio Branco-AC, 08 de outubro de 2014

Upload: marcos-thomaz

Post on 18-Jun-2015

525 views

Category:

Technology


3 download

DESCRIPTION

Apresentação utilizada na palestra realizada no dia 08/10/2014 na faculdade Meta, contendo uma introdução sobre a linguagem de programação Python, suas aplicações, empresas que utilizam e exemplos de uso aplicado a algumas situações, mostrando o potencial desta linguagem, que vai desde o acesso a bancos de dados, geração de sites, aplicações desktop e web multiplataformas (windows, linux, freebsd, MacOS), web, mineração de dados, inteligência artificial, até o desenvolvimento de aplicações mobile (android, iOS).

TRANSCRIPT

Page 1: Palestra Apresentando Python e Suas Aplicações

Marcos Thomaz da [email protected]: @marcosthomazs

Conhecendo Python

Rio Branco-AC, 08 de outubro de 2014

Page 2: Palestra Apresentando Python e Suas Aplicações

•Criada por Guido van Rossun no Instituto de Pesquisa Nacional para Matemática e Ciência da Computação de Amsterdam;

• Lançada em 1991;• Linguagem de alto nível;• Interpretada e Interativa;•Gera bytecodes (pyc, pyo);•Focada na facilidade de manutenção e produtividade;•Atualmente em sua versão 3.4.1•Case sensitive;• “Monty Python Flying Circus”;

Python

Page 3: Palestra Apresentando Python e Suas Aplicações

•Multiplataforma;

Python

Page 4: Palestra Apresentando Python e Suas Aplicações

Python•Endentação como delimitador de blocos;

Page 5: Palestra Apresentando Python e Suas Aplicações

•Possui Interpretador Interativo;

Python

Page 6: Palestra Apresentando Python e Suas Aplicações

•Tipagem dinâmica e forte;

Python

Page 7: Palestra Apresentando Python e Suas Aplicações

•Orientada a Objetos;▫Herança (inclusive herança múltipla);▫Polimorfismo;▫Suporte a metaclasses;

•Tratamento de Exceções;•Sem tipos primitivos;• Introspecção (Reflection);•Multiparadigma;

Python

Page 8: Palestra Apresentando Python e Suas Aplicações

•Sobrecarga de operadores;

Python

Page 9: Palestra Apresentando Python e Suas Aplicações

• Jython•CPython• IronPython•PyPy•PyObjC (Mac OSX middleware)•Python for Delphi•Brython

Python - Interoperabilidade

Page 10: Palestra Apresentando Python e Suas Aplicações

Publico Alvo

Ideia copiada do colega Christiano Anderson (@dump)

Page 11: Palestra Apresentando Python e Suas Aplicações

•Frequentemente vista como linguagem de "scripts“;•Mas não é bem assim! Vejamos!

Python – Pra que serve mesmo?

Page 12: Palestra Apresentando Python e Suas Aplicações

•Geração de scripts;▫Suporte a administradores de redes;▫Serviços de manutenção a Grandes e Escaláveis servidores;▫Processamento de arquivos;

•Acesso a bancos de dados;▫Suporte a praticamente todos os bancos de dados (SQLite3, PostgreSQL,

MySQL, Oracle, DB2, SQLServer, MongoDB, Redis, Cassandra, Firebird, etc).

Onde / quando usar python

Page 13: Palestra Apresentando Python e Suas Aplicações

• Desenvolvimento Desktop;▫Tinter;▫GTK;▫QT/PySide;▫wxWindows;▫Kivy;▫PyGame;▫Kiwi;

• Diversos Editores de Código;▫Pagos: Pycharm, Sublime Text, Komodo, WingIDE, Ninja IDE;▫ Livres: PyDev (Eclipse), Eric, Pida, Boa-Constructor, Notepad++, Vim;

Onde / quando usar python

Page 14: Palestra Apresentando Python e Suas Aplicações

• Área Científica: ▫Scipy;▫NumPy;▫BioPython;

• Aplicações de GeoReferenciamento/Geoprocessamento: ▫Mapproxy;▫GeoDjango;▫Gdal;

• Inteligência Artificial;▫SciKit;▫SimpleAI;

Onde / quando usar python

Page 15: Palestra Apresentando Python e Suas Aplicações

•Machine Learning;▫PyBrain;▫PyML;

• Linguagem Natural e Processamento de Texto;▫NLTK;▫Quepy;

•Redes Neurais;▫neurolab;▫PyAnn

Onde / quando usar python

Page 16: Palestra Apresentando Python e Suas Aplicações

•Mineração / Análise de Dados;▫Pandas

•Tratamento de Imagens;▫Básico/Intermediário

PIL;▫Avançado

NumPy SciPy

•Big Data:▫Hadoop;

Onde / quando usar python

Page 17: Palestra Apresentando Python e Suas Aplicações

•Desenvolvimento web▫Frameworks

Django; Pyramid; Web2Py; Zope; Grok;

▫Microframeworks; Flask; Bottle;

▫Outros Google App Engine (GAE);

Onde / quando usar python

Page 18: Palestra Apresentando Python e Suas Aplicações

•Ferramenta de Gerenciamento de Conteúdo;▫Plone;▫Opps;▫Mezzanine;

•Gestão Empresarial e Desenvolvimento de ERP’s:▫OpenERP;▫Stoq;

•Desenvolvimento de Jogos:▫PyGame;▫PyOpenGL;

Onde / quando usar python

Page 19: Palestra Apresentando Python e Suas Aplicações

•Animações 3D;▫Blender;

•Aplicativos Móveis (Celulares, Tablets);▫PyS60;▫Kivy;

•Geração de Relatórios / PDF;▫ReportLab;▫GeraldoReports (BR);

•Programação Assíncrona;▫Integração com NodeJS▫Tornado;▫Twisted;

Onde / quando usar python

Page 20: Palestra Apresentando Python e Suas Aplicações

•Testes de Código, Unitários: DocTests, BDD, TDD, Selenium;•Persistência de Dados;▫ORM: DjangoORM, SQLAlchemy;▫DAL: web2py DAL, dal;

•Geração de Documentação: PyDoc, Sphynx, Django-extensions;•Reconhecimento Facial: OpenCV, SimpleCV;•Muitos Outros.▫Integração com BROffice e MS Office ©, tratamento de arquivos (Json,

Yaml, XML, csv, txt), robótica (pyRobotics), desenv. para Raspberry PI, sensores, Análise Digital de Sinais, tipografia, análise de sentimento social, gerenciadores de pacotes (easy_install, pip);

Onde / quando usar python

Page 21: Palestra Apresentando Python e Suas Aplicações

•Windows▫Fazer o Download dos binários e seguir a “filosofia” NNF

• Linux e MacOS ▫Já vem pré-instalado por padrão.

Instalação

Page 22: Palestra Apresentando Python e Suas Aplicações

•Através de Binários de Instalação;•Compilando Código-Fonte; ou•Através de um gerenciador de Pacotes. (Recomendado)

pip install django

easy_install django

Instalação de Pacotes e Módulos Extras

Page 23: Palestra Apresentando Python e Suas Aplicações

Python – Quem usa?

Page 24: Palestra Apresentando Python e Suas Aplicações

Python – Quem Usa

Page 25: Palestra Apresentando Python e Suas Aplicações

Python – Quem Usa

Page 26: Palestra Apresentando Python e Suas Aplicações

Python – site www.python.org

Page 27: Palestra Apresentando Python e Suas Aplicações

Python – site: www.python.org.br

Page 28: Palestra Apresentando Python e Suas Aplicações

• int, long, float, complex, Decimal: 1, 2, 10000L, 10.5, 20j, “20.05”• str: “Oi”, ‘mundo’, ‘a’, “b”, ‘’’Teste’’’, ‘Oi ‘+” Mundo”, “ha”*3•boolean: True, False;•date, time, datetime, timestamp: date(2014,10,8), time(19,00)• list (array), dict, tuple; [1,2,3, ‘A’, 12.5], {‘a’:5, ‘b’:9}, (‘a’,’b’,’c’,4,5)•None;• regex: r’^[F][amet]{4}[a]$’, r’^\d{3}.\d{3}.\d{3}-\d{2}’;

Tipos de Dados (Básicos)

Page 29: Palestra Apresentando Python e Suas Aplicações

•Aritméticos: +, -, *, /, **, %, //• Lógicos: and, or, not, is, is not•Binários: >> , << •Atribuição: “=“, “+=“, “-=“, “*=“, “/=“•Condição: “==“, “!=“, “>”, “<“, “>=“, “<=“, “in”

Operadores

Page 30: Palestra Apresentando Python e Suas Aplicações

• forfor i in ‘Fameta’:

print(i)

•whilep = ‘Fameta’i = 0while i<len(p):

print(p[i])i += 1

Controles de Fluxo

Page 31: Palestra Apresentando Python e Suas Aplicações

• if..elifif dia == 8:

print(“Hoje é dia 8”)elif dia == 7:

print(“Hoje é dia 7”)else:

print(“ Hoje não é dia 7 nem dia 8”)

Outros

Page 32: Palestra Apresentando Python e Suas Aplicações

•Muito bom mas...

•E O CÓDIGO???

Page 33: Palestra Apresentando Python e Suas Aplicações

•Pra variar....

Um pouco de código

• Invertendo variáveis

•Melhorando um pouco o código anterior

•Código anterior, mais “pythônico”

Page 34: Palestra Apresentando Python e Suas Aplicações

Um pouco de código• Leia um número, e diga se ele

é par ou ímpar

<variavel >= <valorSeVerdadeiro >if <Condição> else <valorSeFalso>

# <variavel> = <valorVerdadeiro> SE <condição for verdadeira> SENÃO <valorFalso>

<variavel> = <condição> ? <valorSeVerdadeiro> : <valorSeFalso>;

Page 35: Palestra Apresentando Python e Suas Aplicações

Um pouco de código• Ler uma palavra e imprimi-la ao inverso (por exemplo OI apareceria IO).

• Ler o nome da pessoa e mostre suas iniciais ( lembrando que no nome Manoel dos Anjos, as iniciais são apenas MA, desconsiderando a palavra “dos” )

Page 36: Palestra Apresentando Python e Suas Aplicações

Um pouco de código• Claro que o código anterior ficou um pouco confuso, mas a simplicidade da linguagem permite que a

instrução, mesmo com certa complexidade, seja criada em poucas linhas de código (no caso uma)

Page 37: Palestra Apresentando Python e Suas Aplicações

Um pouco de código• Ler 3 inteiros N1, N2 e N3 e diga qual é o maior.

•Criar uma função para dizer se um número é primo ou não.

Page 38: Palestra Apresentando Python e Suas Aplicações

Um pouco de código•Criar uma função que verifique se duas strings são anagramas, por

exemplo, a palavra “casa”, tem como anagramas “saca” e “asca”.(P4Z)

•Crie uma função que, supondo que uma lata de tinta pinte 54m², dada uma metragem, retorne a quantidade de latas de tinta necessárias. (P4Z)

* P4Z – Exercícios da lista do curso Python 4 Zombies

Page 39: Palestra Apresentando Python e Suas Aplicações

• Ler o conteúdo do arquivo alunos.txt e imprima os nomes da tela, organizando por ordem alfabética, e numerando os nomes listados.

Um pouco de código

Page 40: Palestra Apresentando Python e Suas Aplicações

Um pouco de código• Criar uma função que conte quantas vezes aparece a palavra “code” na palavra

informada, sendo que a letra “d” pode ser trocada por qualquer outra, assim, as palavras “coze”, “cote” seriam contadas também. Por exemplo, na palavra “aaacodebbb” seria retornado 1, na palavra “acodebbbcodem” seria retornado 2, assim como na palavra “cozehhhcode1”.

Page 41: Palestra Apresentando Python e Suas Aplicações

Orientação a Objetos

•Temos uma classe Pessoa e as classes Gerente e Vendedor (que são uma especialização de Pessoa). Na classe Gerente temos o método autorizaVenda, e na classe Vendedor temos o método realizaVenda. O que fazer se precisarmos criar um cargo que realize as vendas e as autorize ao mesmo tempo, mantendo também a estrutura atual?

Page 42: Palestra Apresentando Python e Suas Aplicações
Page 43: Palestra Apresentando Python e Suas Aplicações
Page 44: Palestra Apresentando Python e Suas Aplicações

Sobrecarga de Operadores – Exemplo 1

Page 45: Palestra Apresentando Python e Suas Aplicações

Sobrecarga de Operadores – Exemplo 2

•No mundo real, temos os alunos e, ao matricularmos esses alunos em uma determinada turma, estamos adicionando-os nessa turma.

Page 46: Palestra Apresentando Python e Suas Aplicações

Sobrecarga de Operadores – Exemplo 2

Page 47: Palestra Apresentando Python e Suas Aplicações

Python e MongoDB

Page 48: Palestra Apresentando Python e Suas Aplicações

Python e PostgreSQL

Page 49: Palestra Apresentando Python e Suas Aplicações

Python / Django ORM

Page 50: Palestra Apresentando Python e Suas Aplicações

Python, Django e MapProxy

Page 51: Palestra Apresentando Python e Suas Aplicações

Python no Desktop

Page 52: Palestra Apresentando Python e Suas Aplicações

PyGame

Page 53: Palestra Apresentando Python e Suas Aplicações

Python (Blender)

Page 54: Palestra Apresentando Python e Suas Aplicações

“... nossa filosofia geral é ‘Python onde podemos, C++ onde somos obrigados.’ Python não é definitivamente apenas um pequeno pedaço, nem é usado apenas para tarefas ‘de scripting’; se ficássemos sem todo

nosso código Python de uma hora para outra, nossa poderosa infra-estrutura que tem sido descrita como ‘a arma secreta do Google’ ficaria

abalada”Alex Martinalli, Lider Técnico,

Sistemas de Produção, Google Inc.

Page 55: Palestra Apresentando Python e Suas Aplicações

• Linguagem simples, elegante e poderosa;•Fácil de aprender;•Pode ser usada para resolver uma grande variedade de problemas;• Incentiva a escrita de código de forma correta;•É muito produtiva;•Possui shell interativo;•Comunidade muito ativa e prestativa;•Porque é divertido; e•Porque SIM!

Porque Python?

Page 56: Palestra Apresentando Python e Suas Aplicações

•https://www.python.org/•https://www.python.org.br/•http://ericstk.wordpress.com/2014/09/30/python-powered-coisas-que-

python-pode-fazer-e-voce-nao-sabia/•http://erichideki.github.io/video-aulas-gratuitas/•https://www.djangoproject.com/•http://pingmind.com/classes/142/announcements/

Links Interessantes

Page 57: Palestra Apresentando Python e Suas Aplicações

Obrigado!

Dúvidas??