SlideShare a Scribd company logo
1 of 26
Download to read offline
Por que Python?
10 raz˜oes para aprender Python
Marco Andr´e Lopes Mendes <marcoandre@gmail.com>
21 de outubro de 2010
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
Uma breve introdu¸c˜ao
desse que vos fala
1 Mestre em Ciˆencia da Computa¸c˜ao pela UFSC
2 Professor desde 1995
1 Usu´ario Unix desde 1992 e Linux desde 1999
2 Entusiasta de software de c´odigo aberto
1 Membro da comunidade Python desde 2004
2 Membro-fundador da Associa¸c˜ao Python Brasil (APyB)
3 Membro da diretoria da APyB
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
Uma breve introdu¸c˜ao
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´ıvel (VHLL)
4 Sintaxe simples e f´acil de ser assimilada
5 Orientada `a objetos, estruturada e funcional
6 Tipagem forte e dinˆamica
7 Multiplataforma
8 Interpretada
9 Ambiente interativo
10 Licen¸ca compat´ıvel com a GPL
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
1 - Python ´e legal
arquivo = open("emails.txt")
dominios = {}
for contato in arquivo:
resto , dominio = contato.split("@")
dominio = dominio.replace("rn", "")
if dominio in dominios:
dominios[dominio] += 1
else:
dominios[dominio] = 1
arquivo.close ()
arquivo = open("dominios.txt", "w")
for dominio in dominios.keys ():
registro = "%s;%sn" %( dominio , dominios[dominio ])
arquivo.write(registro)
arquivo.close ()
1 Simples
2 Leg´ıvel
3 Clara
4 Simplificada
5 Sofisticada
6 Poderosa
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
2 - Python j´a vem com os acess´orios
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
3 - Python ´e utilizado l´a fora
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
3 - Python ´e utilizado l´a fora
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
4 - Python ´e utilizado aqui dentro
LZT: AutoSystem
Async: Stoq
Instituto Nokia de Tecnologia
InVesalius
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
5 - Python ´e utilizado na web ao redor do mundo
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
5 - Python ´e utilizado na web ao redor do mundo
Diversos frameworks
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
6 - Python ´e utilizado na web aqui no Brasil
globo.com
uiner.com
vericia.com
brasil.gov.br
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
6 - Python ´e utilizado na web aqui no Brasil
ucs.br
serpro.gov.br
certsign.com.br
atepassar.com.br
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
7 - Tem emprego para programadores Python
python.org/community/jobs
twitter.com/python_jobs
empregos.trovitbrasil.com.br/python
google.com.br/intl/en/jobs/
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
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 ){
Py_SetProgramName (argv [0]);
Py_Initialize ();
initspam ();
return 1; }
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
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 . showMessageDialog (None , "Soma: %d " % soma)
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
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 OnMsgButtonClick (self , *args ):
MessageBox.Show(self.txtMessage.Text ,"Message")
Application.Run(FormV3 ())
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
8 - Python conversa com as outras linguagens
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
9 - Python ´e multiplataforma
At´e aqui, nada de surpreendente, certo?
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
9 - Python ´e multiplataforma
XO/OLPC
Grande parte do projeto ´e desenvolvida em Python, incluindo:
1 A interface gr´afica Sugar
2 V´arias aplica¸c˜oes e jogos
3 O sistema de arquivos
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
9 - Python ´e multiplataforma
Dispositivos m´oveis
Maemo
Android
Iphone
Symbian
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
10 - Python ´e multiparadigma
Programa¸c˜ao Estruturada
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´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
10 - Python ´e multiparadigma
Programa¸c˜ao Orientada a Objetos
class Fracao(object ):
def __mdc(self , m, n):
if m % n == 0:
return n
else:
return self.__mdc(n, m%n)
def __init__(self , numerador , denominador =1):
g = self.__mdc(numerador , denominador )
self.numerador = numerador / g
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__
python -i poo -fracoes.py
>>> a = Fracao (5 ,7)
>>> b = Fracao (3 ,4)
>> r1 = a * b
>>> print r1
15/28
>>> c = Fracao (3 ,5)
>> r2 = a * c
>>> print r2
3/7
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
10 - Python ´e multiparadigma
Programa¸c˜ao Funcional
# 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)))
# Fibonacci : 10 primeiros 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))
# Conjunto de Mandelbrot
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´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
Bˆonus 1: 11 - Python ´e boa como primeira linguagem
aprenda a programar com Python
1 Experiˆencia de ensino desde 2004
2 V´arios iniciativas no Brasil e no mundo
3 MIT copiou nossa id´eia :)
4 Faz bem `a auto-estima do iniciante
5 Uso pode ser extrapolado para outras mat´erias
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
Bˆonus 2: 12 - Existe uma comunidade forte
vocˆe tem com quem contar
1 Lista python-brasil: 3241 membros, 500 mensagens/mˆes.
2 Associa¸c˜ao Python Brasil: amadurecimento da comunidade
3 PythonBrasil[6]: na UFPR, em Curitiba/PR
4 FISL, Latinoware: trilhas de Python
5 Grupos de Usu´arios, PythOn Campus, #horaextra
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
1 Estes slides: slideshare.com/marrcandre
2 google*: marcoandre@gmail.com
3 twitter: @marrcandre
4 blog: marrcandre.blogspot.com
random.choice([’pergunta’, ’d´uvida’, ’discuss˜ao’])
Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?

More Related Content

What's hot

Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Marco Mendes
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Pythonantonio sérgio nogueira
 
Por que Python - PyConBrasil 2008
Por que Python - PyConBrasil 2008Por que Python - PyConBrasil 2008
Por que Python - PyConBrasil 2008Marco Mendes
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o pythonRodrigo Lira
 
Apresentação Python Poli
Apresentação Python PoliApresentação Python Poli
Apresentação Python PoliRodrigo Lira
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?Igor Leroy
 

What's hot (20)

Por que Python - Latinoware 2008
Por que Python - Latinoware 2008Por que Python - Latinoware 2008
Por que Python - Latinoware 2008
 
Porque Python?
Porque Python?Porque Python?
Porque Python?
 
Python Zope Plone - Fiocruz
Python Zope Plone - FiocruzPython Zope Plone - Fiocruz
Python Zope Plone - Fiocruz
 
Python Zope Plone - Tchelinux
Python Zope Plone - TchelinuxPython Zope Plone - Tchelinux
Python Zope Plone - Tchelinux
 
Python-Fenalivre-Imed
Python-Fenalivre-ImedPython-Fenalivre-Imed
Python-Fenalivre-Imed
 
Python Zope Plone PloneConf 2013
Python Zope Plone PloneConf 2013Python Zope Plone PloneConf 2013
Python Zope Plone PloneConf 2013
 
Python Zope Plone - Ftec
Python Zope Plone - FtecPython Zope Plone - Ftec
Python Zope Plone - Ftec
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Python
 
Por que Python - PyConBrasil 2008
Por que Python - PyConBrasil 2008Por que Python - PyConBrasil 2008
Por que Python - PyConBrasil 2008
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Apresentação Python Poli
Apresentação Python PoliApresentação Python Poli
Apresentação Python Poli
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Python Poli 2010
Python Poli 2010Python Poli 2010
Python Poli 2010
 

Viewers also liked

Porque Python? FISL11
Porque Python? FISL11Porque Python? FISL11
Porque Python? FISL11Marco Mendes
 
Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Marco Mendes
 
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010Marco Mendes
 
Versões do Ubuntu
Versões do UbuntuVersões do Ubuntu
Versões do UbuntuMarco Mendes
 
Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2Marco Mendes
 
Porque Python - FISL 9.0
Porque Python - FISL 9.0Porque Python - FISL 9.0
Porque Python - FISL 9.0Marco Mendes
 
Software Codigo Aberto Desktop
Software Codigo Aberto DesktopSoftware Codigo Aberto Desktop
Software Codigo Aberto DesktopMarco Mendes
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
 
Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011Marco Mendes
 
Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1Marco Mendes
 
Educação Continuada
Educação ContinuadaEducação Continuada
Educação ContinuadaMarco Mendes
 
Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Marco Mendes
 
Configurando o Geany para Python - 03/2012
Configurando o Geany para Python - 03/2012Configurando o Geany para Python - 03/2012
Configurando o Geany para Python - 03/2012Marco Mendes
 
Configurando o geany_para_python
Configurando o geany_para_pythonConfigurando o geany_para_python
Configurando o geany_para_pythonMarco Mendes
 
Educação continuada
Educação continuadaEducação continuada
Educação continuadaMarco Mendes
 
Resumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaResumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaMarco Mendes
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da InformaçãoMarco Mendes
 

Viewers also liked (17)

Porque Python? FISL11
Porque Python? FISL11Porque Python? FISL11
Porque Python? FISL11
 
Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2Calculadora IP com libglade - PyconBrasil 2
Calculadora IP com libglade - PyconBrasil 2
 
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
 
Versões do Ubuntu
Versões do UbuntuVersões do Ubuntu
Versões do Ubuntu
 
Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2Uso de POO com Python - PyconBrasil 2
Uso de POO com Python - PyconBrasil 2
 
Porque Python - FISL 9.0
Porque Python - FISL 9.0Porque Python - FISL 9.0
Porque Python - FISL 9.0
 
Software Codigo Aberto Desktop
Software Codigo Aberto DesktopSoftware Codigo Aberto Desktop
Software Codigo Aberto Desktop
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011Python na Ciência da Computação - FLISOL 2011
Python na Ciência da Computação - FLISOL 2011
 
Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1Python no Ensino Superior - PyconBrasil 1
Python no Ensino Superior - PyconBrasil 1
 
Educação Continuada
Educação ContinuadaEducação Continuada
Educação Continuada
 
Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009
 
Configurando o Geany para Python - 03/2012
Configurando o Geany para Python - 03/2012Configurando o Geany para Python - 03/2012
Configurando o Geany para Python - 03/2012
 
Configurando o geany_para_python
Configurando o geany_para_pythonConfigurando o geany_para_python
Configurando o geany_para_python
 
Educação continuada
Educação continuadaEducação continuada
Educação continuada
 
Resumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha CríticaResumo, Resenha e Resenha Crítica
Resumo, Resenha e Resenha Crítica
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da Informação
 

Similar to 10 Razões Python

Por que Python?
Por que Python?Por que Python?
Por que Python?gsroma
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoandreluizlugon
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar pythonLourenço Junior
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em PythonRober Guerra
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoUbirajara Cavaco
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Marcel Caraciolo
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoWeldir Fernando Dias
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoFelipeDi
 
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
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Sidney Roberto
 
Algoritmos e programacao_em_python
Algoritmos e programacao_em_pythonAlgoritmos e programacao_em_python
Algoritmos e programacao_em_pythonArtur Santos
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! dJoelmir Ribacki
 

Similar to 10 Razões Python (20)

Por que Python?
Por que Python?Por que Python?
Por que Python?
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Apresentacao sfd-poa
Apresentacao sfd-poaApresentacao sfd-poa
Apresentacao sfd-poa
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?Python e 10 motivos por que devo conhece-la ?
Python e 10 motivos por que devo conhece-la ?
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
AulaPython.pdf
AulaPython.pdfAulaPython.pdf
AulaPython.pdf
 
Apostila_IC.pdf
Apostila_IC.pdfApostila_IC.pdf
Apostila_IC.pdf
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
 
Python: Por Onde Começar e Aplicações
Python: Por Onde Começar e AplicaçõesPython: Por Onde Começar e Aplicações
Python: Por Onde Começar e Aplicações
 
Algoritmos e programacao_em_python
Algoritmos e programacao_em_pythonAlgoritmos e programacao_em_python
Algoritmos e programacao_em_python
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 

10 Razões Python

  • 1. Por que Python? 10 raz˜oes para aprender Python Marco Andr´e Lopes Mendes <marcoandre@gmail.com> 21 de outubro de 2010 Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 2. Uma breve introdu¸c˜ao desse que vos fala 1 Mestre em Ciˆencia da Computa¸c˜ao pela UFSC 2 Professor desde 1995 1 Usu´ario Unix desde 1992 e Linux desde 1999 2 Entusiasta de software de c´odigo aberto 1 Membro da comunidade Python desde 2004 2 Membro-fundador da Associa¸c˜ao Python Brasil (APyB) 3 Membro da diretoria da APyB Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 3. Uma breve introdu¸c˜ao 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´ıvel (VHLL) 4 Sintaxe simples e f´acil de ser assimilada 5 Orientada `a objetos, estruturada e funcional 6 Tipagem forte e dinˆamica 7 Multiplataforma 8 Interpretada 9 Ambiente interativo 10 Licen¸ca compat´ıvel com a GPL Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 4. 1 - Python ´e legal arquivo = open("emails.txt") dominios = {} for contato in arquivo: resto , dominio = contato.split("@") dominio = dominio.replace("rn", "") if dominio in dominios: dominios[dominio] += 1 else: dominios[dominio] = 1 arquivo.close () arquivo = open("dominios.txt", "w") for dominio in dominios.keys (): registro = "%s;%sn" %( dominio , dominios[dominio ]) arquivo.write(registro) arquivo.close () 1 Simples 2 Leg´ıvel 3 Clara 4 Simplificada 5 Sofisticada 6 Poderosa Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 5. 2 - Python j´a vem com os acess´orios Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 6. 3 - Python ´e utilizado l´a fora Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 7. 3 - Python ´e utilizado l´a fora Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 8. 4 - Python ´e utilizado aqui dentro LZT: AutoSystem Async: Stoq Instituto Nokia de Tecnologia InVesalius Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 9. 5 - Python ´e utilizado na web ao redor do mundo Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 10. 5 - Python ´e utilizado na web ao redor do mundo Diversos frameworks Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 11. 6 - Python ´e utilizado na web aqui no Brasil globo.com uiner.com vericia.com brasil.gov.br Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 12. 6 - Python ´e utilizado na web aqui no Brasil ucs.br serpro.gov.br certsign.com.br atepassar.com.br Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 13. 7 - Tem emprego para programadores Python python.org/community/jobs twitter.com/python_jobs empregos.trovitbrasil.com.br/python google.com.br/intl/en/jobs/ Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 14. 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 ){ Py_SetProgramName (argv [0]); Py_Initialize (); initspam (); return 1; } Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 15. 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 . showMessageDialog (None , "Soma: %d " % soma) Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 16. 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 OnMsgButtonClick (self , *args ): MessageBox.Show(self.txtMessage.Text ,"Message") Application.Run(FormV3 ()) Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 17. 8 - Python conversa com as outras linguagens Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 18. 9 - Python ´e multiplataforma At´e aqui, nada de surpreendente, certo? Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 19. 9 - Python ´e multiplataforma XO/OLPC Grande parte do projeto ´e desenvolvida em Python, incluindo: 1 A interface gr´afica Sugar 2 V´arias aplica¸c˜oes e jogos 3 O sistema de arquivos Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 20. 9 - Python ´e multiplataforma Dispositivos m´oveis Maemo Android Iphone Symbian Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 21. 10 - Python ´e multiparadigma Programa¸c˜ao Estruturada 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´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 22. 10 - Python ´e multiparadigma Programa¸c˜ao Orientada a Objetos class Fracao(object ): def __mdc(self , m, n): if m % n == 0: return n else: return self.__mdc(n, m%n) def __init__(self , numerador , denominador =1): g = self.__mdc(numerador , denominador ) self.numerador = numerador / g 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__ python -i poo -fracoes.py >>> a = Fracao (5 ,7) >>> b = Fracao (3 ,4) >> r1 = a * b >>> print r1 15/28 >>> c = Fracao (3 ,5) >> r2 = a * c >>> print r2 3/7 Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 23. 10 - Python ´e multiparadigma Programa¸c˜ao Funcional # 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))) # Fibonacci : 10 primeiros 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)) # Conjunto de Mandelbrot 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´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 24. Bˆonus 1: 11 - Python ´e boa como primeira linguagem aprenda a programar com Python 1 Experiˆencia de ensino desde 2004 2 V´arios iniciativas no Brasil e no mundo 3 MIT copiou nossa id´eia :) 4 Faz bem `a auto-estima do iniciante 5 Uso pode ser extrapolado para outras mat´erias Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 25. Bˆonus 2: 12 - Existe uma comunidade forte vocˆe tem com quem contar 1 Lista python-brasil: 3241 membros, 500 mensagens/mˆes. 2 Associa¸c˜ao Python Brasil: amadurecimento da comunidade 3 PythonBrasil[6]: na UFPR, em Curitiba/PR 4 FISL, Latinoware: trilhas de Python 5 Grupos de Usu´arios, PythOn Campus, #horaextra Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?
  • 26. 1 Estes slides: slideshare.com/marrcandre 2 google*: marcoandre@gmail.com 3 twitter: @marrcandre 4 blog: marrcandre.blogspot.com random.choice([’pergunta’, ’d´uvida’, ’discuss˜ao’]) Marco Andr´e Lopes Mendes <marcoandre@gmail.com> Por que Python?