1. Python é uma linguagem de programação simples, legível e poderosa, que vem com diversas bibliotecas e ferramentas prontas para uso.
2. Python é amplamente utilizada em empresas e projetos de software ao redor do mundo, tanto no exterior quanto no Brasil.
3. Python é uma linguagem multiplataforma, multiuso e multiparadigma, o que a torna flexível para diferentes tipos de aplicações.
UFCD_10392_Intervenção em populações de risco_índice .pdf
Por que Python? IFC Concórdia 2011
1. Por que Python?
10 raz˜es para aprender Python
o
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e
24 de novembro de 2011
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
2. Uma breve introdu¸˜o
ca
desse que vos fala
1 Mestre em Ciˆncia da Computa¸˜o pela UFSC
e ca
2 Professor do Instituto Federal Catarinense
1 Usu´rio Unix desde 1992 e Linux desde 1999
a
2 Entusiasta de software de c´digo aberto
o
1 Membro da comunidade Python desde 2004
2 Membro-fundador da Associa¸˜o Python Brasil (APyB)
ca
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
3. Uma breve introdu¸˜o
ca
Sobre a linguagem
1 Criada por Guido van Rossum em 1991
2 Origem do nome: grupo de humoristas
Monty Python
3 Linguagem de alt´
ıssimo n´ (VHLL)
ıvel
4 Sintaxe simples e f´cil de ser assimilada
a
5 Orientada ` objetos, estruturada e funcional
a
6 Tipagem forte e dinˆmica
a
7 Multiplataforma
8 Interpretada
9 Ambiente interativo
10 Licen¸a compat´ com a GPL
c ıvel
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
4. 1 - Python ´ legal
e
1 Simples
arquivo = open ( " emails . txt " )
dominios = {} 2 Leg´
ıvel
for contato in arquivo :
resto , dominio = contato . split ( " @ " )
3 Clara
dominio = dominio . replace ( " r n " , " " )
4 Simplificada
if dominio in dominios :
dominios [ dominio ] += 1 5 Sofisticada
else :
dominios [ dominio ] = 1 6 Poderosa
arquivo . close ()
arquivo = open ( " dominios . txt " , " w " )
for dominio in dominios . keys ():
registro = " % s ;% s n " %( dominio , dominios [ dominio ])
arquivo . write ( registro )
arquivo . close ()
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
5. 2 - Python j´ vem com os acess´rios
a o
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
6. 3 - Python ´ utilizado l´ fora
e a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
7. 3 - Python ´ utilizado l´ fora
e a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
8. 3 - Python ´ utilizado l´ fora
e a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
9. 4 - Python ´ utilizado aqui dentro
e
LZT: AutoSystem
Instituto Nokia de Tecnologia
InVesalius
Async: Stoq
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
10. 5 - Python ´ utilizado na web ao redor do mundo
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
11. 5 - Python ´ utilizado na web ao redor do mundo
e
Diversos frameworks
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
12. 6 - Python ´ utilizado na web aqui no Brasil
e
brasil.gov.br globo.com
uiner.com
vericia.com
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
13. 6 - Python ´ utilizado na web aqui no Brasil
e
certsign.com.br
ucs.br
serpro.gov.br
atepassar.com.br
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
14. 7 - Tem emprego para programadores Python
python.org/community/jobs
google.com.br/intl/en/jobs/
empregos.trovitbrasil.com.br/python
twitter.com/python_jobs
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
15. 8 - Python conversa com as outras linguagens
C e C++
void initspam ( void );
static PyObject * spam_system ( PyObject * self , PyObject * args );
static PyObject * spam_system ( self , args )
PyObject * self ;
PyObject * args ; {
char * orden ; int sts ;
if (! PyArg_ParseTuple ( args , " s " , & orden ))
return NULL ;
sts = system ( orden );
return Py_BuildValue ( " i " , sts ); }
static PyMethodDef SpamMethods [] = {
{ " system " , spam_system , METH_VARARGS } ,
{ NULL , NULL } };
void
initspam (){( void ) Py_InitModule ( " spam " , SpamMethods );}
int main ( int argc , char ** argv ){
P y _ S e tPr ogra mNa me ( argv [0]);
Py_Initialize ();
initspam ();
return 1; }
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
16. 8 - Python conversa com as outras linguagens
import javax . swing as libswing
pnumero = libswing . JOptionPane . showInputDialog ( " Digite um Numero Inteiro : " )
snumero = libswing . JOptionPane . showInputDialog ( " Digite um Numero Inteiro : " )
soma = int ( pnumero ) + int ( snumero )
libswing . JOptionPane . s how Mes sage Dia log ( None , " Soma : % d " % soma )
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
17. 8 - Python conversa com as outras linguagens
import clr
clr . AddReference ( " System . Windows . Forms " )
from System . Windows . Forms import *
class FormV3 ( Form ):
def __init__ ( self ):
self . Text = ’ Hello World ’
self . Controls . Add ( Label ( Text = ’ Enter Message : ’ ))
self . txtMessage = TextBox ( Left =100)
self . Controls . Add ( self . txtMessage )
msgButton = Button ( Text = ’ Message ’ , Left =20 , Top =25)
msgButton . Click += self . OnMsgButtonClick
self . Controls . Add ( msgButton )
def O n M s g B uttonClick ( self , * args ):
MessageBox . Show ( self . txtMessage . Text , " Message " )
Application . Run ( FormV3 ())
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
18. 8 - Python conversa com as outras linguagens
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
19. 9 - Python ´ multiplataforma
e
At´ aqui, nada de surpreendente, certo?
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
20. 9 - Python ´ multiplataforma
e
XO/OLPC
Grande parte do projeto ´ desenvolvida em Python, incluindo:
e
1 A interface gr´fica Sugar
a
2 V´rias aplica¸˜es e jogos
a co
3 O sistema de arquivos
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
21. 9 - Python ´ multiplataforma
e
Dispositivos m´veis
o
Android Iphone
Symbian Meego/Maemo
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
22. 10 - Python ´ multiparadigma
e
Programa¸˜o Estruturada
ca
import random
def jogaDados ():
dado1 = random . randrange (1 ,7)
dado2 = random . randrange (1 ,7)
somaTemp = dado1 + dado2
print " Jogador tirou % d + % d = % d " %( dado1 , dado2 , somaTemp )
return somaTemp
soma = jogaDados ()
if soma == 7 or soma == 11:
situacaoJogo = " GANHOU "
elif soma == 2 or soma == 3 or soma == 12:
situacaoJogo = " PERDEU "
else :
situacaoJogo = " CONTINUA "
meuPonto = soma
print " Ponto : " , meuPonto
while situacaoJogo == " CONTINUA " :
soma = jogaDados ()
if soma == meuPonto : situacaoJogo = " GANHOU "
elif soma == 7: situacaoJogo = " PERDEU "
if situacaoJogo == " GANHOU " : print " Jogador ganha "
else : print " Jogador perde "
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
23. 10 - Python ´ multiparadigma
e
Programa¸˜o Orientada a Objetos
ca
class Fracao ( object ): python -i poo - fracoes . py
def __mdc ( self , m , n ): >>> a = Fracao (5 ,7)
if m % n == 0: >>> b = Fracao (3 ,4)
return n >> r1 = a * b
else : >>> print r1
return self . __mdc (n , m % n ) 15/28
>>> c = Fracao (3 ,5)
def __init__ ( self , numerador , denominador =1): >> r2 = a * c
g = self . __mdc ( numerador , denominador ) >>> print r2
self . numerador = numerador / g 3/7
self . denominador = denominador / g
def __repr__ ( self ):
return " % d /% d " %( self . numerador ,
self . denominador )
def __mul__ ( self , outro ):
if isinstance ( outro , int ):
outro = Fracao ( outro )
return Fracao ( self . numerador * outro . numerador ,
self . denominador * outro . denominador )
__rmul__ = __mul__
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
24. 10 - Python ´ multiparadigma
e
Programa¸˜o Funcional
ca
# Primos menores que 1000
print filter ( None , map ( lambda y : y * reduce ( lambda x , y : x * y !=0 ,
map ( lambda x , y = y : y %x , range (2 , int ( pow (y ,0.5)+1))) ,1) , range (2 ,1000)))
# F i b o n a c c i : 10 p r i m e i r o s numeros
print map ( lambda x , f = lambda x , f :( x <=1) or ( f (x -1 , f )+ f (x -2 , f )): f (x , f ) ,
range (10))
# C o n j u n t o de M a n d e l b r o t
print ( lambda Ru , Ro , Iu , Io , IM , Sx , Sy : reduce ( lambda x , y : x +y , map ( lambda y ,
Iu = Iu , Io = Io , Ru = Ru , Ro = Ro , Sy = Sy , L = lambda yc , Iu = Iu , Io = Io , Ru = Ru , Ro = Ro , i = IM ,
Sx = Sx , Sy = Sy : reduce ( lambda x , y : x +y , map ( lambda x , xc = Ru , yc = yc , Ru = Ru , Ro = Ro ,
i =i , Sx = Sx , F = lambda xc , yc ,x ,y ,k , f = lambda xc , yc ,x ,y ,k , f :( k <=0) or ( x * x + y * y
>=4.0) or 1+ f ( xc , yc , x *x - y * y + xc ,2.0* x * y + yc ,k -1 , f ): f ( xc , yc ,x ,y ,k , f ): chr (
64+ F ( Ru + x *( Ro - Ru )/ Sx , yc ,0 ,0 , i )) , range ( Sx ))): L ( Iu + y *( Io - Iu )/ Sy ) , range ( Sy
))))( -2.1 , 0.7 , -1.2 , 1.2 , 30 , 80 , 24)
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
25. Bˆnus 1: 11 - Python ´ boa como primeira linguagem
o e
aprenda a programar com Python
1 Experiˆncia de ensino desde 2004
e
2 V´rios iniciativas no Brasil e no mundo
a
3 MIT copiou nossa id´ia :)
e
4 Faz bem ` auto-estima do iniciante
a
5 Uso pode ser extrapolado para outras mat´rias
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
26. Bˆnus 2: 12 - Existe uma comunidade forte
o
vocˆ tem com quem contar
e
1 Lista python-brasil: +3650 membros, 500 mensagens/mˆs.
e
2 Associa¸˜o Python Brasil: amadurecimento da comunidade
ca
3 PythonBrasil[7]: S˜o Paulo, 400+ participantes
a
4 FISL, Latinoware: trilhas de Python
5 Grupos de Usu´rios, PythOn Campus, #horaextra
a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
28. Dorneles Trem´a: 1979 - 2011
e
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?
29. 1 Estes slides: slideshare.com/marrcandre
2 google*: marcoandre@gmail.com
3 twitter: @marrcandre
4 blog: marrcandre.blogspot.com
Para mais detalhes:
1 Python, a arma secreta do Google:
slideshare.net/ramalho/python-a-arma-secreta-do-google
2 Python: cabe no seu bolso, no seu micro, no seu c´rebro:
e
slideshare.net/rodsenra/unicampago2010pdf
random.choice([’pergunta’, ’d´vida’, ’discuss˜o’])
u a
Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
e Por que Python?