Palestra Apresentando Python e Suas Aplicações
-
Upload
marcos-thomaz -
Category
Technology
-
view
524 -
download
3
description
Transcript of Palestra Apresentando Python e Suas Aplicações
Marcos Thomaz da [email protected]: @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??