Palestra Apresentando Python e Suas Aplicações

Post on 18-Jun-2015

524 views 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 of Palestra Apresentando Python e Suas Aplicações

Marcos Thomaz da Silvamarcosthomazs@gmail.comtwitter: @marcosthomazs

Conhecendo Python

Rio Branco-AC, 08 de outubro de 2014

•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

•Multiplataforma;

Python

Python•Endentação como delimitador de blocos;

•Possui Interpretador Interativo;

Python

•Tipagem dinâmica e forte;

Python

•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

•Sobrecarga de operadores;

Python

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

Python - Interoperabilidade

Publico Alvo

Ideia copiada do colega Christiano Anderson (@dump)

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

Python – Pra que serve mesmo?

•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

• 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

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

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

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

Onde / quando usar python

•Machine Learning;▫PyBrain;▫PyML;

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

•Redes Neurais;▫neurolab;▫PyAnn

Onde / quando usar python

•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

•Desenvolvimento web▫Frameworks

Django; Pyramid; Web2Py; Zope; Grok;

▫Microframeworks; Flask; Bottle;

▫Outros Google App Engine (GAE);

Onde / quando usar python

•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

•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

•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

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

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

Instalação

•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

Python – Quem usa?

Python – Quem Usa

Python – Quem Usa

Python – site www.python.org

Python – site: www.python.org.br

• 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)

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

Operadores

• forfor i in ‘Fameta’:

print(i)

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

print(p[i])i += 1

Controles de Fluxo

• 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

•Muito bom mas...

•E O CÓDIGO???

•Pra variar....

Um pouco de código

• Invertendo variáveis

•Melhorando um pouco o código anterior

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

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>;

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” )

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)

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.

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

• 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

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”.

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?

Sobrecarga de Operadores – Exemplo 1

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.

Sobrecarga de Operadores – Exemplo 2

Python e MongoDB

Python e PostgreSQL

Python / Django ORM

Python, Django e MapProxy

Python no Desktop

PyGame

Python (Blender)

“... 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.

• 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?

•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

Obrigado!

Dúvidas??