CONSOLINE
Rodrigo Lira
Desvendando o Python
Agenda
Desvendando o Python • Rodrigo Lira
❏ O que é Python?
❏ Hello World
❏ Implementações de Python
❏ Quem utiliza?
❏ Grupo de usuários
❏ IDEs
❏ Bibliotecas e Frameworks (Módulos)
❏ Por onde começar?
Rodrigo Lira
Desvendando o Python • Rodrigo Lira
❏ Eng. e Mestre em Eng. da Computação
(POLI UPE)
❏ Especialista em Desenvolvimento de SW (FITec)
❏ Professor
❏ FATEC e FACOL
❏ Usuário de Python desde 2008
❏ Python POLI (2004)
❏ PUG-PE (2010)
rodrigoclira @ twitter / facebook / linkedin / github
rodrigocliras@gmail.com
Python
Desvendando o Python • Rodrigo Lira
O que é Python ?
Python
Consoline • Rodrigo Lira
Python
Python
Consoline • Rodrigo Lira
Monty Python
Python
Desvendando o Python • Rodrigo Lira
def app_unistall(app, request):
“””
Uninstalls the application
----------
App:
Application name
Request:
The global request object
Returns
----------
‘True’ on success, ‘False’ on failure
“””
try:
#Hey app, this is your end
path = apath(app, request)
rmtree(path)
return True
except Exception:
return False
Python
Python
Desvendando o Python • Rodrigo Lira
❏ Linguagem de Programação (1989)
❏ Interpretada
❏ bytecode (.py e .pyc)
❏ Alto Nível
❏ Multiparadigma
❏ Multiplataforma
❏ Tipagem Dinâmica
❏ Fácil Aprendizado
❏ Open Source
❏ Guido van Rossum (BDFL)
❏ Monty Python
Python
Desvendando o Python • Rodrigo Lira
“Há mais de seis anos, em dezembro de
1989, eu estava procurando por um projeto
de programação como "hobby" que me
mantivesse ocupado durante a semana
próxima ao Natal. Meu escritório... estaria
fechado, mas eu tinha um computador em
casa, e não muito mais do que isso em
mãos. Eu decidi escrever um interpretador
para a nova linguagem de scripting sobre a
qual eu vinha pensando ultimamente: uma
descendente da ABC que agradaria a
hackers de Unix/C. Eu escolhi Python
como um título provisório para o projeto,
sendo que eu estava num humor um pouco
irreverente (e sendo também um grande fã
do Monty Python's Flying Circus).”
Hello, World!
Desvendando o Python • Rodrigo Lira
C
#include <stdio.h>
int main(){
printf(“Hello, world!”);
return 0;
}
Java
public class HelloWorld{
public static void main(){
System.out.println(“Hello, world!”);
}
}
C#
using System;
class HelloWorld{
static void main(){
System.Console.WriteLine(“Hello, world!”);
}
}
Pascal
program hello;
begin
writeln(“Hello, world!”);
end.
Hello, World!
Desvendando o Python • Rodrigo Lira
Em Python …
Hello, World!
Desvendando o Python • Rodrigo Lira
print (“Hello, World!”)
Python
Desvendando o Python • Rodrigo Lira
Versões?
Versões
Desvendando o Python • Rodrigo Lira
“Python 2.x is legacy, Python 3.x
is the present and future of the
language”
https://wiki.python.org/moin/Python2orPython3
❏ As principais funcionalidades do Python 3.x
foram inseridas no Python 2.7.x
Download
Desvendando o Python • Rodrigo Lira
https://www.python.org/downloads/
Implementações
Desvendando o Python • Rodrigo Lira
http://www.toptal.com/python/por-que-h-tantos-pythons/pt
Implementações
Desvendando o Python • Rodrigo Lira
http://speed.pypy.org/
Python
Desvendando o Python • Rodrigo Lira
Quem usa?
Quem usa?
Desvendando o Python • Rodrigo Lira
❏ Google
❏ Youtube, Google App
Engine, Gmail…
“Python tem sido uma importante
parte do Google desde o começo,
e continua assim. Hoje dezenas
de engenheiros do Google usam
Python e nós estamos procurando
por mais pessoas com habilidade
nessa linguagem”, Peter Norvig,
Diretor de Pesquisa do Google.
Quem usa?
Desvendando o Python • Rodrigo Lira
http://www.tecmundo.com.br/inteligencia-artificial/89172-google-distribuindo-software-inteligencia-artificial-graca.htm
Quem usa?
Desvendando o Python • Rodrigo Lira
❏ Yahoo!
❏ Yahoo! Groups foi escrito inicialmente em
python puro: 180.000 linhas de código
cuidavam de tudo, tratando mais de 200
mensagens/segundo em um simples
Pentium 400 Mhz.
Quem usa?
Desvendando o Python • Rodrigo Lira
❏ Dropbox
❏ 99,9 % é em Python
❏ Guido
❏ Frets on Fire
❏ BitTorrent
http://fretsonfire.sourceforge.net/documentation/source/
http://highscalability.com/blog/2011/3/14/6-lessons-from-dropbox-one-million-files-saved-every-15-minu.html
Tiobe Index
Desvendando o Python • Rodrigo Lira
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Python
Desvendando o Python • Rodrigo Lira
https://uk.news.yahoo.com/coding-uk-classroom-python-overtakes-010244979.html#a4ixf
Python
Desvendando o Python • Rodrigo Lira
http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-
at-top-us-universities/fulltext
https://wiki.python.org/moin/SchoolsUsingPython
Python
Desvendando o Python • Rodrigo Lira
Comunidade
Python User Group / PUG-PE
Desvendando o Python • Rodrigo Lira
http://pug.pe
https://pugpe.wordpress.com/2010/11/11/pug-pe-na-facol/
Python User Group / PUG-PE
Desvendando o Python • Rodrigo Lira
Conferência Python Brasil
Desvendando o Python • Rodrigo Lira
http://www.python.org.br/
Python
Desvendando o Python • Rodrigo Lira
IDE
IDLE
Desvendando o Python • Rodrigo Lira
PyDev
Desvendando o Python • Rodrigo Lira
http://www.pydev.org/ http://www.easyeclipse.org/site/distributions/python.html
EricPython
Desvendando o Python • Rodrigo Lira http://eric-ide.python-projects.org/
PyCharm
Desvendando o Python • Rodrigo Lira
https://www.jetbrains.com/pycharm/
Komodo IDE
Desvendando o Python • Rodrigo Lira
http://komodoide.com/
Python
Desvendando o Python • Rodrigo Lira
Bibliotecas
Bibliotecas
Desvendando o Python • Rodrigo Lira
❏ Biblioteca padrão vasta
❏ String (string, re...)
❏ Tipos de dados (datetime, array, Queue...)
❏ Números (math, cmax, fractions, random...)
❏ Arquivos e Diretórios (glob, os.path...)
❏ Persistência de dados (pickle, sqlite3...)
❏ Compressão (zipfile, gzip, zlib...)
[...]
https://docs.python.org/2/library/
PIP
Desvendando o Python • Rodrigo Lira
https://pypi.python.org/pypi
https://docs.python.org/2.7/installing/
pip install pacote
PEP - Python Enhancement Proposals
Desvendando o Python • Rodrigo Lira
❏ Um documento que providencia informação para
a comunidade Python, ou descreve novas
funcionalidades ou seus processos ou seu
ambiente.
❏ PEP 1 -> Informações sobre o PEP
❏ PEP 2 -> Adição de novos módulos
❏ PEP 8 -> Guia de estilos
❏ Usar 4 espaços para indentação
❏ Limite de 79 caracteres por linha
https://www.youtube.com/watch?v=wf-BqAjZb8M
https://www.python.org/dev/peps/pep-0008/
Zen of Python (PEP 20) por Tim Peters
Desvendando o Python • Rodrigo Lira
Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Plano é melhor que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para quebrar as regras.
Embora a praticidade bata a pureza.
Erros nunca devem passar silenciados.
A menos que explicitamente silenciados.
Diante da ambiguidade, recuse a tentação de adivinhar.
Deve haver um -- e preferencialmente só um -- modo óbvio para fazê-lo.
Embora esse caminho não pode ser óbvio a menos que você seja holandês.
Agora é melhor do que nunca.
Embora nunca é muitas vezes melhor do que *agora*.
Se a implementação é difícil de explicar, é uma má ideia.
Se a implementação é fácil de explicar, pode ser uma boa ideia.
Espaços de nomes são uma grande ideia - vamos fazer mais desses!
import this
Python
Desvendando o Python • Rodrigo Lira
Bibliotecas...
PyGame
Desvendando o Python • Rodrigo Lira
www.pygame.org
http://inventwithpython.com/blog/2010/09/01/the-top-10-pygame-tutorials/
PyGame
Desvendando o Python • Rodrigo Lira
GUI
Desvendando o Python • Rodrigo Lira
WEB
Desvendando o Python • Rodrigo Lira
http://wiki.python.org.br/PythonParaWeb
WEB
Desvendando o Python • Rodrigo Lira
http://flask.pocoo.org/
Google App Engine
Desvendando o Python • Rodrigo Lira
https://cloud.google.com/appengine/
Gráficos
Desvendando o Python • Rodrigo Lira
http://matplotlib.org/ http://code.enthought.
com/projects/chaco/
Matplotlib
Desvendando o Python • Rodrigo Lira
http://matplotlib.org/
Programação Científica
Desvendando o Python • Rodrigo Lira
http://www.scipy.org/
Programação Científica
Desvendando o Python • Rodrigo Lira
http://www.ipython.
Programação Científica
Desvendando o Python • Rodrigo Lira
http://www.ipython.
import antigravity
Desvendando o Python • Rodrigo Lira http://python-history.blogspot.com.br/2010/06/import-antigravity.html
Por onde começar?
Desvendando o Python • Rodrigo Lira
❏ https://www.codecademy.com/learn/python
❏ https://www.coursera.org/courses?query=Python
❏ https://ark4n.wordpress.com/python/ (livro)
❏ http://blog.rodrigolira.net/python/
❏ MIT Course
❏ pug.pe
❏ Lista de Discussão
❏ Participar dos encontros mensais
❏ rodrigocliras@gmail.com
Consoline
Desvendando o Python • Rodrigo Lira
Perguntas?

Desvendando o python

  • 1.
  • 2.
    Agenda Desvendando o Python• Rodrigo Lira ❏ O que é Python? ❏ Hello World ❏ Implementações de Python ❏ Quem utiliza? ❏ Grupo de usuários ❏ IDEs ❏ Bibliotecas e Frameworks (Módulos) ❏ Por onde começar?
  • 3.
    Rodrigo Lira Desvendando oPython • Rodrigo Lira ❏ Eng. e Mestre em Eng. da Computação (POLI UPE) ❏ Especialista em Desenvolvimento de SW (FITec) ❏ Professor ❏ FATEC e FACOL ❏ Usuário de Python desde 2008 ❏ Python POLI (2004) ❏ PUG-PE (2010) rodrigoclira @ twitter / facebook / linkedin / github rodrigocliras@gmail.com
  • 4.
    Python Desvendando o Python• Rodrigo Lira O que é Python ?
  • 5.
  • 6.
  • 7.
    Python Desvendando o Python• Rodrigo Lira def app_unistall(app, request): “”” Uninstalls the application ---------- App: Application name Request: The global request object Returns ---------- ‘True’ on success, ‘False’ on failure “”” try: #Hey app, this is your end path = apath(app, request) rmtree(path) return True except Exception: return False Python
  • 8.
    Python Desvendando o Python• Rodrigo Lira ❏ Linguagem de Programação (1989) ❏ Interpretada ❏ bytecode (.py e .pyc) ❏ Alto Nível ❏ Multiparadigma ❏ Multiplataforma ❏ Tipagem Dinâmica ❏ Fácil Aprendizado ❏ Open Source ❏ Guido van Rossum (BDFL) ❏ Monty Python
  • 9.
    Python Desvendando o Python• Rodrigo Lira “Há mais de seis anos, em dezembro de 1989, eu estava procurando por um projeto de programação como "hobby" que me mantivesse ocupado durante a semana próxima ao Natal. Meu escritório... estaria fechado, mas eu tinha um computador em casa, e não muito mais do que isso em mãos. Eu decidi escrever um interpretador para a nova linguagem de scripting sobre a qual eu vinha pensando ultimamente: uma descendente da ABC que agradaria a hackers de Unix/C. Eu escolhi Python como um título provisório para o projeto, sendo que eu estava num humor um pouco irreverente (e sendo também um grande fã do Monty Python's Flying Circus).”
  • 10.
    Hello, World! Desvendando oPython • Rodrigo Lira C #include <stdio.h> int main(){ printf(“Hello, world!”); return 0; } Java public class HelloWorld{ public static void main(){ System.out.println(“Hello, world!”); } } C# using System; class HelloWorld{ static void main(){ System.Console.WriteLine(“Hello, world!”); } } Pascal program hello; begin writeln(“Hello, world!”); end.
  • 11.
    Hello, World! Desvendando oPython • Rodrigo Lira Em Python …
  • 12.
    Hello, World! Desvendando oPython • Rodrigo Lira print (“Hello, World!”)
  • 13.
    Python Desvendando o Python• Rodrigo Lira Versões?
  • 14.
    Versões Desvendando o Python• Rodrigo Lira “Python 2.x is legacy, Python 3.x is the present and future of the language” https://wiki.python.org/moin/Python2orPython3 ❏ As principais funcionalidades do Python 3.x foram inseridas no Python 2.7.x
  • 15.
    Download Desvendando o Python• Rodrigo Lira https://www.python.org/downloads/
  • 16.
    Implementações Desvendando o Python• Rodrigo Lira http://www.toptal.com/python/por-que-h-tantos-pythons/pt
  • 17.
    Implementações Desvendando o Python• Rodrigo Lira http://speed.pypy.org/
  • 18.
    Python Desvendando o Python• Rodrigo Lira Quem usa?
  • 19.
    Quem usa? Desvendando oPython • Rodrigo Lira ❏ Google ❏ Youtube, Google App Engine, Gmail… “Python tem sido uma importante parte do Google desde o começo, e continua assim. Hoje dezenas de engenheiros do Google usam Python e nós estamos procurando por mais pessoas com habilidade nessa linguagem”, Peter Norvig, Diretor de Pesquisa do Google.
  • 20.
    Quem usa? Desvendando oPython • Rodrigo Lira http://www.tecmundo.com.br/inteligencia-artificial/89172-google-distribuindo-software-inteligencia-artificial-graca.htm
  • 21.
    Quem usa? Desvendando oPython • Rodrigo Lira ❏ Yahoo! ❏ Yahoo! Groups foi escrito inicialmente em python puro: 180.000 linhas de código cuidavam de tudo, tratando mais de 200 mensagens/segundo em um simples Pentium 400 Mhz.
  • 22.
    Quem usa? Desvendando oPython • Rodrigo Lira ❏ Dropbox ❏ 99,9 % é em Python ❏ Guido ❏ Frets on Fire ❏ BitTorrent http://fretsonfire.sourceforge.net/documentation/source/ http://highscalability.com/blog/2011/3/14/6-lessons-from-dropbox-one-million-files-saved-every-15-minu.html
  • 23.
    Tiobe Index Desvendando oPython • Rodrigo Lira http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  • 24.
    Python Desvendando o Python• Rodrigo Lira https://uk.news.yahoo.com/coding-uk-classroom-python-overtakes-010244979.html#a4ixf
  • 25.
    Python Desvendando o Python• Rodrigo Lira http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language- at-top-us-universities/fulltext https://wiki.python.org/moin/SchoolsUsingPython
  • 26.
    Python Desvendando o Python• Rodrigo Lira Comunidade
  • 27.
    Python User Group/ PUG-PE Desvendando o Python • Rodrigo Lira http://pug.pe
  • 28.
  • 29.
    Conferência Python Brasil Desvendandoo Python • Rodrigo Lira http://www.python.org.br/
  • 30.
    Python Desvendando o Python• Rodrigo Lira IDE
  • 31.
    IDLE Desvendando o Python• Rodrigo Lira
  • 32.
    PyDev Desvendando o Python• Rodrigo Lira http://www.pydev.org/ http://www.easyeclipse.org/site/distributions/python.html
  • 33.
    EricPython Desvendando o Python• Rodrigo Lira http://eric-ide.python-projects.org/
  • 34.
    PyCharm Desvendando o Python• Rodrigo Lira https://www.jetbrains.com/pycharm/
  • 35.
    Komodo IDE Desvendando oPython • Rodrigo Lira http://komodoide.com/
  • 36.
    Python Desvendando o Python• Rodrigo Lira Bibliotecas
  • 37.
    Bibliotecas Desvendando o Python• Rodrigo Lira ❏ Biblioteca padrão vasta ❏ String (string, re...) ❏ Tipos de dados (datetime, array, Queue...) ❏ Números (math, cmax, fractions, random...) ❏ Arquivos e Diretórios (glob, os.path...) ❏ Persistência de dados (pickle, sqlite3...) ❏ Compressão (zipfile, gzip, zlib...) [...] https://docs.python.org/2/library/
  • 38.
    PIP Desvendando o Python• Rodrigo Lira https://pypi.python.org/pypi https://docs.python.org/2.7/installing/ pip install pacote
  • 39.
    PEP - PythonEnhancement Proposals Desvendando o Python • Rodrigo Lira ❏ Um documento que providencia informação para a comunidade Python, ou descreve novas funcionalidades ou seus processos ou seu ambiente. ❏ PEP 1 -> Informações sobre o PEP ❏ PEP 2 -> Adição de novos módulos ❏ PEP 8 -> Guia de estilos ❏ Usar 4 espaços para indentação ❏ Limite de 79 caracteres por linha https://www.youtube.com/watch?v=wf-BqAjZb8M https://www.python.org/dev/peps/pep-0008/
  • 40.
    Zen of Python(PEP 20) por Tim Peters Desvendando o Python • Rodrigo Lira Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Plano é melhor que aninhado. Esparso é melhor que denso. Legibilidade conta. Casos especiais não são especiais o bastante para quebrar as regras. Embora a praticidade bata a pureza. Erros nunca devem passar silenciados. A menos que explicitamente silenciados. Diante da ambiguidade, recuse a tentação de adivinhar. Deve haver um -- e preferencialmente só um -- modo óbvio para fazê-lo. Embora esse caminho não pode ser óbvio a menos que você seja holandês. Agora é melhor do que nunca. Embora nunca é muitas vezes melhor do que *agora*. Se a implementação é difícil de explicar, é uma má ideia. Se a implementação é fácil de explicar, pode ser uma boa ideia. Espaços de nomes são uma grande ideia - vamos fazer mais desses! import this
  • 41.
    Python Desvendando o Python• Rodrigo Lira Bibliotecas...
  • 42.
    PyGame Desvendando o Python• Rodrigo Lira www.pygame.org http://inventwithpython.com/blog/2010/09/01/the-top-10-pygame-tutorials/
  • 43.
  • 44.
    GUI Desvendando o Python• Rodrigo Lira
  • 45.
    WEB Desvendando o Python• Rodrigo Lira http://wiki.python.org.br/PythonParaWeb
  • 46.
    WEB Desvendando o Python• Rodrigo Lira http://flask.pocoo.org/
  • 47.
    Google App Engine Desvendandoo Python • Rodrigo Lira https://cloud.google.com/appengine/
  • 48.
    Gráficos Desvendando o Python• Rodrigo Lira http://matplotlib.org/ http://code.enthought. com/projects/chaco/
  • 49.
    Matplotlib Desvendando o Python• Rodrigo Lira http://matplotlib.org/
  • 50.
    Programação Científica Desvendando oPython • Rodrigo Lira http://www.scipy.org/
  • 51.
    Programação Científica Desvendando oPython • Rodrigo Lira http://www.ipython.
  • 52.
    Programação Científica Desvendando oPython • Rodrigo Lira http://www.ipython.
  • 53.
    import antigravity Desvendando oPython • Rodrigo Lira http://python-history.blogspot.com.br/2010/06/import-antigravity.html
  • 54.
    Por onde começar? Desvendandoo Python • Rodrigo Lira ❏ https://www.codecademy.com/learn/python ❏ https://www.coursera.org/courses?query=Python ❏ https://ark4n.wordpress.com/python/ (livro) ❏ http://blog.rodrigolira.net/python/ ❏ MIT Course ❏ pug.pe ❏ Lista de Discussão ❏ Participar dos encontros mensais ❏ rodrigocliras@gmail.com
  • 55.
    Consoline Desvendando o Python• Rodrigo Lira Perguntas?