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