SlideShare a Scribd company logo
1 of 57
Marcos Thomaz da Silva
marcosthomazs@gmail.com
twitter: @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
• for
for i in ‘Fameta’:
print(i)
• while
p = ‘Fameta’
i = 0
while i<len(p):
print(p[i])
i += 1
Controles de Fluxo
• if..elif
if 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??

More Related Content

What's hot

Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosLudimila Monjardim Casagrande
 
Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em javaManoel Afonso
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com PythonJardel Weyrich
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Python oop - class 2 (inheritance)
Python   oop - class 2 (inheritance)Python   oop - class 2 (inheritance)
Python oop - class 2 (inheritance)Aleksander Fabijan
 

What's hot (20)

Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python Programming Essentials - M31 - PEP 8
Python Programming Essentials - M31 - PEP 8Python Programming Essentials - M31 - PEP 8
Python Programming Essentials - M31 - PEP 8
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Pydata-Python tools for webscraping
Pydata-Python tools for webscrapingPydata-Python tools for webscraping
Pydata-Python tools for webscraping
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em java
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Structs em C
Structs em CStructs em C
Structs em C
 
Python Programming
Python Programming Python Programming
Python Programming
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Python oop - class 2 (inheritance)
Python   oop - class 2 (inheritance)Python   oop - class 2 (inheritance)
Python oop - class 2 (inheritance)
 

Similar to Python Introdução

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias IncluídasJonh Edson
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! dJoelmir Ribacki
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/DjangoÁtila Bezerra
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCETiago Freire
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?Izabela Guerreiro
 

Similar to Python Introdução (20)

The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias Incluídas
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
Postgresql +python
Postgresql +pythonPostgresql +python
Postgresql +python
 
Postgre sql +python
Postgre sql +pythonPostgre sql +python
Postgre sql +python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Slide
SlideSlide
Slide
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?
 

More from Marcos Thomaz

Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...Marcos Thomaz
 
Hydros - Apresentação para Investidores
Hydros - Apresentação para InvestidoresHydros - Apresentação para Investidores
Hydros - Apresentação para InvestidoresMarcos Thomaz
 
Minimax e corte alfa beta
Minimax e corte alfa betaMinimax e corte alfa beta
Minimax e corte alfa betaMarcos Thomaz
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento Marcos Thomaz
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do bancoMarcos Thomaz
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
 

More from Marcos Thomaz (8)

Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
 
Hydros - Apresentação para Investidores
Hydros - Apresentação para InvestidoresHydros - Apresentação para Investidores
Hydros - Apresentação para Investidores
 
Minimax e corte alfa beta
Minimax e corte alfa betaMinimax e corte alfa beta
Minimax e corte alfa beta
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do banco
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQL
 

Python Introdução

  • 1. Marcos Thomaz da Silva marcosthomazs@gmail.com twitter: @marcosthomazs Conhecendo Python Rio Branco-AC, 08 de outubro de 2014
  • 2. • 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
  • 4. Python • Endentação como delimitador de blocos;
  • 5. • Possui Interpretador Interativo; Python
  • 6. • Tipagem dinâmica e forte; Python
  • 7. • 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
  • 8. • Sobrecarga de operadores; Python
  • 9. • Jython • CPython • IronPython • PyPy • PyObjC (Mac OSX middleware) • Python for Delphi • Brython Python - Interoperabilidade
  • 10. Publico Alvo Ideia copiada do colega Christiano Anderson (@dump)
  • 11. • Frequentemente vista como linguagem de "scripts“; • Mas não é bem assim! Vejamos! Python – Pra que serve mesmo?
  • 12. • 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
  • 13. • 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
  • 14. • Área Científica: ▫ Scipy; ▫ NumPy; ▫ BioPython; • Aplicações de GeoReferenciamento/Geoprocessamento: ▫ Mapproxy; ▫ GeoDjango; ▫ Gdal; • Inteligência Artificial; ▫ SciKit; ▫ SimpleAI; Onde / quando usar python
  • 15. • Machine Learning; ▫ PyBrain; ▫ PyML; • Linguagem Natural e Processamento de Texto; ▫ NLTK; ▫ Quepy; • Redes Neurais; ▫ neurolab; ▫ PyAnn Onde / quando usar python
  • 16. • 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
  • 17. • Desenvolvimento web ▫ Frameworks Django; Pyramid; Web2Py; Zope; Grok; ▫ Microframeworks; Flask; Bottle; ▫ Outros Google App Engine (GAE); Onde / quando usar python
  • 18. • 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
  • 19. • 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
  • 20. • 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
  • 21. • Windows ▫ Fazer o Download dos binários e seguir a “filosofia” NNF • Linux e MacOS ▫ Já vem pré-instalado por padrão. Instalação
  • 22. • 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
  • 26. Python – site www.python.org
  • 27. Python – site: www.python.org.br
  • 28. • 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)
  • 29. • Aritméticos: +, -, *, /, **, %, // • Lógicos: and, or, not, is, is not • Binários: >> , << • Atribuição: “=“, “+=“, “-=“, “*=“, “/=“ • Condição: “==“, “!=“, “>”, “<“, “>=“, “<=“, “in” Operadores
  • 30. • for for i in ‘Fameta’: print(i) • while p = ‘Fameta’ i = 0 while i<len(p): print(p[i]) i += 1 Controles de Fluxo
  • 31. • if..elif if dia == 8: print(“Hoje é dia 8”) elif dia == 7: print(“Hoje é dia 7”) else: print(“ Hoje não é dia 7 nem dia 8”) Outros
  • 32. • Muito bom mas... •E O CÓDIGO???
  • 33. • Pra variar.... Um pouco de código • Invertendo variáveis • Melhorando um pouco o código anterior • Código anterior, mais “pythônico”
  • 34. 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>;
  • 35. 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” )
  • 36. 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)
  • 37. 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.
  • 38. 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
  • 39. • 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
  • 40. 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”.
  • 41. 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?
  • 42.
  • 43.
  • 44. Sobrecarga de Operadores – Exemplo 1
  • 45. 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.
  • 46. Sobrecarga de Operadores – Exemplo 2
  • 50. Python, Django e MapProxy
  • 54. “... 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.
  • 55. • 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?
  • 56. • 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

Editor's Notes

  1. Indicar que a endentação é livre, porém deve seguir um padrão. Não segue o padrão de {}, nem ;, nem begin...end