SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Downloaden Sie, um offline zu lesen
Conhecendo Python e
Por que ele importa?
            Marcel Pinheiro Caraciolo
                     X Encontro do PUG-PE




                                            1
Quem é o palestrante ?
• Marcel Pinheiro Caraciolo - @marcelcaraciolo
 •     Atualmente:       Diretor de Pesquisa e Desenvolvimento (P&D) da Orygens

 •                        Mestrando em ciência da computação pela UFPE

 •     Engenheiro da Computação pela POLI/UPE. (2008)

       Experiência com computação móvel e inteligente:

         •    Blog Mobidéia: (http://www.mobideia.com) - Mobile

         •    Blog A.I. in motion (http://aimotion.blogspot.com) - I.A.

         •    Experiência com Python há mais de 2 anos. (Contribuições em
              frameworks I.A / mobile na comunidade open-source).

     Membro e Moderador do Grupo de Usuários de Python de Pernambuco (PUG-PE)

                                                                       X Encontro do PUG-PE




                                                                                              2
O que é python ?


     ‘Cobra’ em inglês ?

        Sim, também!



                           X Encontro do PUG-PE




                                                  3
O que é python ?
Linguagem criada por Guido van Rossum em 1991
           !
             !"#$%&'$!()*"+,
Nome inspirado no seriado Monty Python
            !   -"+)($!()*"+.

            !   /0)1$2#"3&)454313'$6'7)&3"7$
                348'9$:;<=>$9147$%&'$?@?AA$'$
                B151C

            !   D'E4F404313'$3'$GH34E"

            !   IJG40$12#'+34813"

            !   I1G409'+)'$'>)'+7K5'0$
                6?@?AAL$B151C

            !   M2'+$N"&#G'

            !   -13&#1L$3'73'$<OO<$6<P$         X Encontro do PUG-PE
                1+"7C

                                                                       4
O que é python ?




                   X Encontro do PUG-PE




                                          5
O que é python ?

É fácil




                    X Encontro do PUG-PE




                                           5
Python é simples e legível
Semelhança ao pseudo-código




                              X Encontro do PUG-PE




                                                     6
Hello World Classíco
... ‘hello world’ - Python vs { Java, C, PHP e Pascal }




                                                  X Encontro do PUG-PE




                                                                         7
Hello World Classíco
.... Em Python ....




                      print “Hello World”




                                            X Encontro do PUG-PE




                                                                   8
O que é python ?

É fácil




                    X Encontro do PUG-PE




                                           9
O que é python ?

É fácil

          É poderoso




                       X Encontro do PUG-PE




                                              9
Canivete suíço
Tipagem dinâmica

Biblioteca padrão completa

Multi-paradigma

Multi-plataforma

Facilmente extensível

Free Software (GPL)

                             X Encontro do PUG-PE




                                                    10
...E já vem com acessórios
import urllib2
from BeautifulSoup import BeautifulSoup

url = "http://www.google.com"

request = urllib2.Request(url)
response = urllib2.urlopen(request)
document = response.read()
soup = BeautifulSoup(document)
#normaliza o documento para que o mesmo seja acessível via objetos

links = soup.findAll('a')
# retorna uma lista com todos os links do documento

for link in links:
    print link['href']


                                                        X Encontro do PUG-PE




                                                                               11
...E já vem com acessórios
Persistência de Objetos

Banco de Dados

Geração de Pdfs

Protocolos de Rede

Criptografia

etc.

                          X Encontro do PUG-PE




                                                 12
O que é python ?

É fácil

          É poderoso




                       X Encontro do PUG-PE




                                              13
O que é python ?

É fácil

          É poderoso


                    É divertido

                       X Encontro do PUG-PE




                                              13
Fácil e poderoso!

lista = ['laranja', 'banana', 'uva']
lista.sort()
 
for item in lista:
    print item.capitalize()




                                       X Encontro do PUG-PE




                                                              14
Hun, sei o que é Python!


    ...E agora como eu começo ?




                            X Encontro do PUG-PE




                                                   15
E como eu começo ?!
Interpretador Python disponível para diversas plataformas.




              http://www.python.org/download

                  http://www.python.org/
                                            X Encontro do PUG-PE




                                                                   16
E como eu começo ?!




                  X Encontro do PUG-PE


                                         17
E como eu começo ?!




  Diversos editores com suporte para
     desenvolvimento em Python
                            X Encontro do PUG-PE


                                                   18
E como eu começo ?!




  Diversos editores com suporte para
     desenvolvimento em Python
                            X Encontro do PUG-PE


                                                   18
... e por que Python ?




                         X Encontro do PUG-PE


                                                19
... e por que Python ?


       8 motivos !




                         X Encontro do PUG-PE


                                                19
... e por que Python ?


       1. Python é fácil e divertido




                                X Encontro do PUG-PE


                                                       20
Python é legal!
Com alguns comandos e eu posso copiar, ler e escrever
                    arquivos!

list_of_infiles = [‘file1.txt’, ‘file2.txt’, ‘file3.txt’]
for file in list_of_infiles:
    file = open(file, ‘r’).read().replace(‘;’,’t’)
    out = open(‘fileOut.txt’,‘a’).write(file)
    out.close()
    file.close()




                                                        X Encontro do PUG-PE


                                                                               21
... e por que Python ?



         2. Python é poderoso




                           X Encontro do PUG-PE


                                                  22
Python é multi-paradigma
•    Programação Estruturada

    def partition(list, l, e, g):
        if list == []:
            return (l, e, g)
        else:
            head = list[0]
            if head < e[0]:
                return partition(list[1:], l + [head], e, g)
            elif head > e[0]:
                return partition(list[1:], l, e, g + [head])
            else:
                return partition(list[1:], l, e + [head], g)




                                                         X Encontro do PUG-PE


                                                                                23
Python é multi-paradigma
•   Programação orientada a objetos
    class Quicksort(object):

       def __init__(self,list):
           self.list = list

       def partition(self,list,l, e, g):
           if self.list == []:
               return (l, e, g)
           else:
               head = self.list[0]
               if head < e[0]:
                     return partition(self.list[1:], l + [head], e, g)
               elif head > e[0]:
                     return partition(self.list[1:], l, e, g + [head])
               else:
                     return partition(self.list[1:], l, e + [head], g)




                                                         X Encontro do PUG-PE


                                                                                24
Python é multi-paradigma
•   Programação funcional

def qsort(L):
    if len(L) <= 1: return L
    return qsort( [ lt for lt in L[1:] if lt < L[0] ] ) +    [ L[0] ]         + 
           qsort( [ ge for ge in L[1:] if ge >= L[0] ] )




                                                       X Encontro do PUG-PE


                                                                                    25
Python é multi-paradigma
•   Programação pythônica




               list.sort()




                             X Encontro do PUG-PE


                                                    26
Python é multi-plataforma


 Linux, Unix, Windows, Mac OS...

 Até aqui nada surpreendente, certo ?




                                   X Encontro do PUG-PE


                                                          27
Python é multi-plataforma
•   Python em dispositivos móveis
    •   Python for Symbian (PyS60), PySide (Maemo), ASE (Android)




                                                   X Encontro do PUG-PE


                                                                          28
Python é multi-plataforma

•   PyMT
    •   Python Multi Touch

    •   Especialmente criado para
        ambientes multi-touch




    http://pymt.eu/

                                    X Encontro do PUG-PE


                                                           29
Python é multi-plataforma


•   E até no Iphone!!
    •   Django portado para
        Iphone




           http://www.webmonkey.com/2007/08/running_django_on_the_iphone/

                          http://leepa.github.com/django-iphone-push/

                         http://code.google.com/p/django-mobileadmin/


                                                                            X Encontro do PUG-PE


                                                                                                   30
E tem vários acessórios!




                                       NetworkX
         http://pypi.python.org/pypi




                                       X Encontro do PUG-PE


                                                              31
... e por que Python ?



    3. Python é utilizado ao redor do mundo




                                X Encontro do PUG-PE


                                                       32
Python é utilizado lá fora




                    II Encontro X Encontro do Pernambuco
                                Livre - Recife - PUG-PE



                                                           33
... e aqui no Brasil também!




                     X Encontro do PUG-PE


                                            34
Python entre as 10 + !




     http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
                                                                   X Encontro do PUG-PE


                                                                                          35
Depoimentos sobre Python
Google:
"Python tem tido um papel importante dentro do Google desde o início, e
 continua sendo à medida que nosso sistema cresce e evolui. Hoje vários
 engenheiros do Google usam Python, e nós estamos procurando mais
 pessoas com habilidades nesta linguagem.”
  - Peter Norvig, Diretor de Qualidade de Pesquisa, Google Inc.


Industrial Light & Magic:

“Python desempenha um papel fundamental em nosso esquema de
  produção. Sem ele um projeto do tamanho do filme Star Wars: Episode
  II seria impossível sair do papel. Desde renderização de personagens a
 processamento em lote na composição da trilha, Python integra tudo
 facilmente.”
   - Tommy Burnette, Diretor Técnico Senior, Industrial Light&Magic Inc.

                                                       X Encontro do PUG-PE


                                                                              36
Depoimentos sobre Python
Mameluco - Projeto Social Cats
  “Nós da Mameluco escolhemos Python desde o início do nosso primeiro projeto, o website CATS. [..]
 Conseguimos instalar a plataforma de desenvolvimento, configurá-lo no IDE Eclipse e escrever um ‘Hello
 World’ em questão de minutos. [...] Durante o desenvolvimento do CATS, trabalhei muito com JavaEE em
outro projeto. A dificuldade de configuração, necessidade de ler centenas de páginas e pouca expressividade
  me fizeram abandonar Java como Primeira linguagem. Foi Python mesmo que encontrei a maneira mais
     natural de programar servidores, clientes HTTP e serviços REST.” Flávio Juvenal - CTO - Mameluco

Orygens:
“Escolhemos Python nos nossos projetos por ser uma linguagem madura e de fácil aprendizado e com uma
 comunidade ativa de usuários. Além de atender nossas necessidades, até nosso designer está aprendendo
desenvolver em Python/Django e está achando muito simples. Nós prentendemos usá-lo em vários outros
  projetos da Orygens [...]. Além da simplicação do desenvolvimento web, [...] reduziu a complexidade e
                 tempo em um novo projeto”. Rafael Carício - CTO - http://atepassar.com

Instituto Nokia de Tecnologia:
[...] “Desenvolvemos bindings de Qt(C++) para Python: PySide. Python me chamou atenção por ser usado
na maioria dos projetos open source dos quais sou usuário. Aprender Python foi muito rápido e o código é
 muito agradável de ler.[...] Recomendaria Python a qualquer um, [...] creio que só não recomendaria para
       quem gosta de declarar os tipos e suas variáveis previamente.” Marcelo Lira, Desenvolvedor, INDT

                                                                                  X Encontro do PUG-PE


                                                                                                            37
PyGame e Jogos




   http://www.pygame.org/news.html
                              X Encontro do PUG-PE


                                                     38
Aplicativos Desktop




http://svn.softwarepublico.gov.br/trac/invesalius

                                      X Encontro do PUG-PE


                                                             39
Aplicativos Desktop




      http://www.blender.org/

                                X Encontro do PUG-PE


                                                       40
Aplicativos Desktop




http://www.stoq.com.br/   http://taskcoach.org/


                                    X Encontro do PUG-PE


                                                           41
Aplicativos Desktop




      Python + Qt + Qml
                          X Encontro do PUG-PE


                                                 42
... e por que Python ?



 4. Python é utilizado na web ao redor do mundo




                                X Encontro do PUG-PE


                                                       43
Web lá fora!



   http://pt.reddit.com/
                           http://www.nationalgeographic.com/




                                  http://sourceforge.net/
 http://www.youtube.com/                X Encontro do PUG-PE

                                                                44
Web aqui dentro!




http://www.receita.fazenda.gov.br/                      http://atepassar.com/



 http://www.brasil.gov.br/, http://www.vericia.com/, http://www.dapress.com.br/,
                              http://filmow.com , etc.




                                                              X Encontro do PUG-PE


                                                                                     45
... e por que Python ?



 5. Há empregos para desenvolvedores Python




                               X Encontro do PUG-PE


                                                      46
Por aqui...




              X Encontro do PUG-PE


                                     47
Por aqui...




http://empregos.trovitbrasil.com.br/python, listas de discussão, ...

                                                                       X Encontro do PUG-PE


                                                                                              48
Por lá...




       http://www.python.org/community/jobs/

                                               X Encontro do PUG-PE


                                                                      49
Por lá...
                 Número de ofertas de emprego

                                                        60
       49                     56
                                                        45
                  37
                                                     30

                                          19
                                                    15
     Nov-2010
                Dec-2010                            0
                           Jan-2011
                                      Feb-2011

            http://www.python.org/community/jobs/



                                                    X Encontro do PUG-PE


                                                                           50
Até em casa!




  http://www.freelancer.com/projects/

                                 X Encontro do PUG-PE


                                                        51
... e por que Python ?



   6. Conversa bem com outras linguagens




                               X Encontro do PUG-PE


                                                      52
Python e C/C++
static PyObject *my_callback = NULL;

static PyObject *
my_set_callback(PyObject *dummy, PyObject *args)
{
    PyObject *result = NULL;
    PyObject *temp;

    if (PyArg_ParseTuple(args, "O:set_callback", &temp)) {
        if (!PyCallable_Check(temp)) {
                                                                              Você pode extender
        }
            PyErr_SetString(PyExc_TypeError, "parameter must be callable");
            return NULL;                                                      Python ou usá-lo em
        Py_XINCREF(temp);         /* Add a reference to new callback */
        Py_XDECREF(my_callback); /* Dispose of previous callback */
        my_callback = temp;       /* Remember new callback */
                                                                                códigos C/C++
        /* Boilerplate to return "None" */
        Py_INCREF(Py_None);
        result = Py_None;
    }
    return result;
}




      http://docs.python.org/extending/extending.html

                                                                                 X Encontro do PUG-PE


                                                                                                        53
Python e Java
import javax.swing as sshwing
firstNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)
scndNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”)
sum = int(firstNum) +   int(scndNum)
sshwing.JOptionPane.showMessageDialog(None, “The sum of your integers is %d “        % sum)




                                                               http://www.jython.org/




                                                              X Encontro do PUG-PE


                                                                                              54
Python e .Net
import sys
sys.path.append(r’C:Python25Lib’)
import clr
clr.AddReference(“System.Windows.Forms”)
from System.Windows.Forms import Application,Form
class Hello World(Form):
  def __init__(self):
    self.Text = ʻHello Worldʼ
    self.Name = ʻHello Worldʼ

form = HelloWorld(Form)
Application.Run(Form




                               http://ironpython.net/


                                                        X Encontro do PUG-PE


                                                                               55
Python e muito mais!
        PyMat - Matlab




http://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html      http://rpy.sourceforge.net/




                http://code.google.com/p/pyswip/

                                                                http://appscript.sourceforge.net/

                                                                          X Encontro do PUG-PE


                                                                                                    56
Interpretada, e o desempenho?
                     “Não fique apenas com o conhecimento que você tem do código.”

         Módulos para Python escritos em C. (Extensões): Ex: PyRex

         PyPy: Implementação da linguagem Python em Python (Otimizando a linguagem).
                                                                                                                                       http://pypy.org
      Psyco: Compilador para Python que gera código nativo da máquina (2x - 100x)
                                                                                                                        http://psyco.sourceforge.net/
200

150

100                                                                                                                       Lines of code
                                                                                                                          Time per iteration (ms)
 50

  0
        Sun JDK 1.6.0              C++ 4.13               Python + Psyco Python 2.5.1
              http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/

                                                                                                                     X Encontro do PUG-PE


                                                                                                                                                         57
... e por que Python ?



7. Uma boa linguagem para quem está começando!




                                X Encontro do PUG-PE


                                                       58
Aprendar programar com Python




http://ark4n.wordpress.com/python/                      http://www.aprendendodjango.com/




http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-00Fall-2008/CourseHome/index.htm

                                                                          X Encontro do PUG-PE


                                                                                                      59
Aprendar programar com Python
  Universidade Federal Rural de Pernambuco já adota Python

        Bacharelado em Sistemas de Informação
         Licenciatura em Física
         Licenciatura em Computação


[...] O curso BSI-UFRPE tem como Python a LP oficial do curso! Todas as disciplinas que envolvem programação
    [...], usam Python! Recentemente tenho experimentado usar algo que é fantástico em Python para ensinar a
     programar: Python é híbrida. [...] O resultado desta experiência está sendo organizado em um texto [...], e
 pretendo transformá-lo até o fim do ano em um livro, cujo título provisório é ‘Python como Primeira LP: Uma
           abordagem Imperativa, Funcional e Orientada a Objetos”. Prof. PHD Wilson Rosa - Pesquisador UFRPE




                                                                                  X Encontro do PUG-PE


                                                                                                                   60
... e por que Python ?



8. Uma comunidade forte com que você pode contar!




                                 X Encontro do PUG-PE


                                                        61
24 hrs ao seu dispor!




  http://br.groups.yahoo.com/group/python-brasil/

                                           X Encontro do PUG-PE


                                                                  62
PUG - PE




  Grupo de usuários de Python de
               Pernambuco
http://groups.google.com/group/pug-pe?hl=pt-BR
                                  X Encontro do PUG-PE


                                                         63
Razão bônus!



 9. Permite expor suas idéias de forma rápida!




                                 X Encontro do PUG-PE


                                                        64
TransitoRecife (Web)
Monitorando o trânsito de algumas vias do Recife




                                    X Encontro do PUG-PE


                                                           65
TransitoRecife (Web)
Monitorando o trânsito de algumas vias do Recife




                                    X Encontro do PUG-PE


                                                           65
TransitoRecife (Web)
Monitorando o trânsito de algumas vias do Recife




             http://twitter.com/transitoRE

                                    X Encontro do PUG-PE


                                                           65
TransitoRecife (Web)
Monitorando o trânsito de algumas vias do Recife




             http://twitter.com/transitoRE

                                    X Encontro do PUG-PE


                                                           65
TransitoRecife (Web)
Monitorando o trânsito de algumas vias do Recife




             http://twitter.com/transitoRE
                  Apenas 65 linhas de código!
                                    X Encontro do PUG-PE


                                                           65
TransitoRecife (Celular)
       ... E também via celular!




     TransitoRecife no Nokia E63


                                   66
TransitoRecife (Celular)
       ... E também via celular!




     TransitoRecife no Nokia E63


                                   66
TransitoRecife (Celular)
       ... E também via celular!




     TransitoRecife no Nokia E63


                                   66
TransitoRecife (Celular)
       ... E também via celular!




     TransitoRecife no Nokia E63


                                   66
Referências
http://www.slideshare.net/marcoandre/porque-python-fisl-90 (Marcos André - FISL 9)

http://www.slideshare.net/flavioribeiro/introduo-a-linguagem-de-programao-python-presentation

http://www.python.org/


http://www.pythonbrasil.org.br/

http://ark4n.wordpress.com/python/

E-mails, Listas, Fóruns, conversas no Google Talk, etc.




                                                                   X Encontro do PUG-PE


                                                                                               67
Chegamos ao fim !!




Hora da random.choice([pergunta, dúvida, discussão]) !!


                                       X Encontro do PUG-PE


                                                              68
Conhecendo Python e
Por que ele importa?
      Marcel Pinheiro Caraciolo
     email: caraciol@gmail.com
      twitter: marcelcaraciolo
                                  X Encontro do PUG-PE


                                                         69

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
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
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programaçãoSimples Consultoria
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
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
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
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, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem PythonAlex Tercete
 

Was ist angesagt? (20)

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
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
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 como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programação
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
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
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Como tornar-se um programador Python melhor
Como tornar-se um programador Python melhorComo tornar-se um programador Python melhor
Como tornar-se um programador Python melhor
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Minicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídasMinicurso: Python e suas baterias incluídas
Minicurso: Python e suas baterias incluídas
 

Andere mochten auch

Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamenteRodrigo Amaral
 
O CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comO CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comAlexandre Saboia Fuziyama
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013Marco Mendes
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvaspugpe
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com PythonHugo Serrano
 
Python na formacao_de_jovens
Python na formacao_de_jovensPython na formacao_de_jovens
Python na formacao_de_jovensMarcos Egito
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Pythonpugpe
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Pythonpugpe
 
Clustering com numpy e cython
Clustering com numpy e cythonClustering com numpy e cython
Clustering com numpy e cythonAnderson Dantas
 
Apresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEApresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEMarcel Caraciolo
 
(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xvraonyaraujo
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDRafael Carício
 
Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebNielson Santana
 
Porque foi bom aprender com Python
Porque foi bom aprender com PythonPorque foi bom aprender com Python
Porque foi bom aprender com PythonFernando Rocha
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Developmentpugpe
 

Andere mochten auch (20)

Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
python.ppt
python.pptpython.ppt
python.ppt
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 
O CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.comO CartolaFC e o processo de desenvolvimento na globo.com
O CartolaFC e o processo de desenvolvimento na globo.com
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Por que python? fisl 14 - 2013
Por que python?   fisl 14 - 2013Por que python?   fisl 14 - 2013
Por que python? fisl 14 - 2013
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvas
 
Pug
PugPug
Pug
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com Python
 
Python na formacao_de_jovens
Python na formacao_de_jovensPython na formacao_de_jovens
Python na formacao_de_jovens
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Python
 
Clustering com numpy e cython
Clustering com numpy e cythonClustering com numpy e cython
Clustering com numpy e cython
 
Apresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEApresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PE
 
(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDD
 
Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para Web
 
Porque foi bom aprender com Python
Porque foi bom aprender com PythonPorque foi bom aprender com Python
Porque foi bom aprender com Python
 
Arduino e python
Arduino e pythonArduino e python
Arduino e python
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Development
 

Ähnlich wie Conhencendo Python e por que ela importa?

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
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Juliano Atanazio
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?Igor Leroy
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMarcel Caraciolo
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/DjangoÁtila Bezerra
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonMarinho Brandão
 
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
 
Python e tipagem estática
Python e tipagem estáticaPython e tipagem estática
Python e tipagem estáticaVinta Software
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução PythonGleison Rodrigues
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
PL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQLPL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQLJuliano Atanazio
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! dJoelmir Ribacki
 

Ähnlich wie Conhencendo Python e por que ela importa? (20)

Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Python-Fenalivre-Imed
Python-Fenalivre-ImedPython-Fenalivre-Imed
Python-Fenalivre-Imed
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python
PythonPython
Python
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?
 
Empreendendo com Python
Empreendendo com PythonEmpreendendo com Python
Empreendendo com Python
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
 
O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com Python
 
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 ?
 
Python e tipagem estática
Python e tipagem estáticaPython e tipagem estática
Python e tipagem estática
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
PL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQLPL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQL
 
Porque python é legal! d
Porque python é legal!  dPorque python é legal!  d
Porque python é legal! d
 
Python brasil[6]
Python brasil[6]Python brasil[6]
Python brasil[6]
 

Mehr von Marcel Caraciolo

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonMarcel Caraciolo
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)Marcel Caraciolo
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...Marcel Caraciolo
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Marcel Caraciolo
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratórioMarcel Caraciolo
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.Marcel Caraciolo
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Marcel Caraciolo
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Marcel Caraciolo
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Marcel Caraciolo
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python ScriptsMarcel Caraciolo
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...Marcel Caraciolo
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Marcel Caraciolo
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonMarcel Caraciolo
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programaçãoMarcel Caraciolo
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceMarcel Caraciolo
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilMarcel Caraciolo
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Marcel Caraciolo
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosMarcel Caraciolo
 
Arquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursosArquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursosMarcel Caraciolo
 

Mehr von Marcel Caraciolo (20)

Como interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com PythonComo interpretar seu próprio genoma com Python
Como interpretar seu próprio genoma com Python
 
Joblib: Lightweight pipelining for parallel jobs (v2)
Joblib:  Lightweight pipelining for parallel jobs (v2)Joblib:  Lightweight pipelining for parallel jobs (v2)
Joblib: Lightweight pipelining for parallel jobs (v2)
 
Construindo softwares de bioinformática para análises clínicas : Desafios e...
Construindo softwares  de bioinformática  para análises clínicas : Desafios e...Construindo softwares  de bioinformática  para análises clínicas : Desafios e...
Construindo softwares de bioinformática para análises clínicas : Desafios e...
 
Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2Como Python ajudou a automatizar o nosso laboratório v.2
Como Python ajudou a automatizar o nosso laboratório v.2
 
Como Python pode ajudar na automação do seu laboratório
Como Python pode ajudar na automação do  seu laboratórioComo Python pode ajudar na automação do  seu laboratório
Como Python pode ajudar na automação do seu laboratório
 
Python on Science ? Yes, We can.
Python on Science ?   Yes, We can.Python on Science ?   Yes, We can.
Python on Science ? Yes, We can.
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)Recommender Systems with Ruby (adding machine learning, statistics, etc)
Recommender Systems with Ruby (adding machine learning, statistics, etc)
 
Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?Opensource - Como começar e dá dinheiro ?
Opensource - Como começar e dá dinheiro ?
 
Big Data com Python
Big Data com PythonBig Data com Python
Big Data com Python
 
Benchy, python framework for performance benchmarking of Python Scripts
Benchy, python framework for performance benchmarking  of Python ScriptsBenchy, python framework for performance benchmarking  of Python Scripts
Benchy, python framework for performance benchmarking of Python Scripts
 
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
GeoMapper, Python Script for Visualizing Data on Social Networks with Geo-loc...
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
 
Construindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduceConstruindo Soluções Científicas com Big Data & MapReduce
Construindo Soluções Científicas com Big Data & MapReduce
 
Como Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no BrasilComo Python está mudando a forma de aprendizagem à distância no Brasil
Como Python está mudando a forma de aprendizagem à distância no Brasil
 
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?Novas Tendências para a Educação a Distância: Como reinventar a educação ?
Novas Tendências para a Educação a Distância: Como reinventar a educação ?
 
Aula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursosAula WebCrawlers com Regex - PyCursos
Aula WebCrawlers com Regex - PyCursos
 
Arquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursosArquivos Zip com Python - Aula PyCursos
Arquivos Zip com Python - Aula PyCursos
 

Conhencendo Python e por que ela importa?

  • 1. Conhecendo Python e Por que ele importa? Marcel Pinheiro Caraciolo X Encontro do PUG-PE 1
  • 2. Quem é o palestrante ? • Marcel Pinheiro Caraciolo - @marcelcaraciolo • Atualmente: Diretor de Pesquisa e Desenvolvimento (P&D) da Orygens • Mestrando em ciência da computação pela UFPE • Engenheiro da Computação pela POLI/UPE. (2008) Experiência com computação móvel e inteligente: • Blog Mobidéia: (http://www.mobideia.com) - Mobile • Blog A.I. in motion (http://aimotion.blogspot.com) - I.A. • Experiência com Python há mais de 2 anos. (Contribuições em frameworks I.A / mobile na comunidade open-source). Membro e Moderador do Grupo de Usuários de Python de Pernambuco (PUG-PE) X Encontro do PUG-PE 2
  • 3. O que é python ? ‘Cobra’ em inglês ? Sim, também! X Encontro do PUG-PE 3
  • 4. O que é python ? Linguagem criada por Guido van Rossum em 1991 ! !"#$%&'$!()*"+, Nome inspirado no seriado Monty Python ! -"+)($!()*"+. ! /0)1$2#"3&)454313'$6'7)&3"7$ 348'9$:;<=>$9147$%&'$?@?AA$'$ B151C ! D'E4F404313'$3'$GH34E" ! IJG40$12#'+34813" ! I1G409'+)'$'>)'+7K5'0$ 6?@?AAL$B151C ! M2'+$N"&#G' ! -13&#1L$3'73'$<OO<$6<P$ X Encontro do PUG-PE 1+"7C 4
  • 5. O que é python ? X Encontro do PUG-PE 5
  • 6. O que é python ? É fácil X Encontro do PUG-PE 5
  • 7. Python é simples e legível Semelhança ao pseudo-código X Encontro do PUG-PE 6
  • 8. Hello World Classíco ... ‘hello world’ - Python vs { Java, C, PHP e Pascal } X Encontro do PUG-PE 7
  • 9. Hello World Classíco .... Em Python .... print “Hello World” X Encontro do PUG-PE 8
  • 10. O que é python ? É fácil X Encontro do PUG-PE 9
  • 11. O que é python ? É fácil É poderoso X Encontro do PUG-PE 9
  • 12. Canivete suíço Tipagem dinâmica Biblioteca padrão completa Multi-paradigma Multi-plataforma Facilmente extensível Free Software (GPL) X Encontro do PUG-PE 10
  • 13. ...E já vem com acessórios import urllib2 from BeautifulSoup import BeautifulSoup url = "http://www.google.com" request = urllib2.Request(url) response = urllib2.urlopen(request) document = response.read() soup = BeautifulSoup(document) #normaliza o documento para que o mesmo seja acessível via objetos links = soup.findAll('a') # retorna uma lista com todos os links do documento for link in links: print link['href'] X Encontro do PUG-PE 11
  • 14. ...E já vem com acessórios Persistência de Objetos Banco de Dados Geração de Pdfs Protocolos de Rede Criptografia etc. X Encontro do PUG-PE 12
  • 15. O que é python ? É fácil É poderoso X Encontro do PUG-PE 13
  • 16. O que é python ? É fácil É poderoso É divertido X Encontro do PUG-PE 13
  • 18. Hun, sei o que é Python! ...E agora como eu começo ? X Encontro do PUG-PE 15
  • 19. E como eu começo ?! Interpretador Python disponível para diversas plataformas. http://www.python.org/download http://www.python.org/ X Encontro do PUG-PE 16
  • 20. E como eu começo ?! X Encontro do PUG-PE 17
  • 21. E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
  • 22. E como eu começo ?! Diversos editores com suporte para desenvolvimento em Python X Encontro do PUG-PE 18
  • 23. ... e por que Python ? X Encontro do PUG-PE 19
  • 24. ... e por que Python ? 8 motivos ! X Encontro do PUG-PE 19
  • 25. ... e por que Python ? 1. Python é fácil e divertido X Encontro do PUG-PE 20
  • 26. Python é legal! Com alguns comandos e eu posso copiar, ler e escrever arquivos! list_of_infiles = [‘file1.txt’, ‘file2.txt’, ‘file3.txt’] for file in list_of_infiles: file = open(file, ‘r’).read().replace(‘;’,’t’) out = open(‘fileOut.txt’,‘a’).write(file) out.close() file.close() X Encontro do PUG-PE 21
  • 27. ... e por que Python ? 2. Python é poderoso X Encontro do PUG-PE 22
  • 28. Python é multi-paradigma • Programação Estruturada def partition(list, l, e, g): if list == []: return (l, e, g) else: head = list[0] if head < e[0]: return partition(list[1:], l + [head], e, g) elif head > e[0]: return partition(list[1:], l, e, g + [head]) else: return partition(list[1:], l, e + [head], g) X Encontro do PUG-PE 23
  • 29. Python é multi-paradigma • Programação orientada a objetos class Quicksort(object): def __init__(self,list): self.list = list def partition(self,list,l, e, g): if self.list == []: return (l, e, g) else: head = self.list[0] if head < e[0]: return partition(self.list[1:], l + [head], e, g) elif head > e[0]: return partition(self.list[1:], l, e, g + [head]) else: return partition(self.list[1:], l, e + [head], g) X Encontro do PUG-PE 24
  • 30. Python é multi-paradigma • Programação funcional def qsort(L): if len(L) <= 1: return L return qsort( [ lt for lt in L[1:] if lt < L[0] ] ) + [ L[0] ] + qsort( [ ge for ge in L[1:] if ge >= L[0] ] ) X Encontro do PUG-PE 25
  • 31. Python é multi-paradigma • Programação pythônica list.sort() X Encontro do PUG-PE 26
  • 32. Python é multi-plataforma Linux, Unix, Windows, Mac OS... Até aqui nada surpreendente, certo ? X Encontro do PUG-PE 27
  • 33. Python é multi-plataforma • Python em dispositivos móveis • Python for Symbian (PyS60), PySide (Maemo), ASE (Android) X Encontro do PUG-PE 28
  • 34. Python é multi-plataforma • PyMT • Python Multi Touch • Especialmente criado para ambientes multi-touch http://pymt.eu/ X Encontro do PUG-PE 29
  • 35. Python é multi-plataforma • E até no Iphone!! • Django portado para Iphone http://www.webmonkey.com/2007/08/running_django_on_the_iphone/ http://leepa.github.com/django-iphone-push/ http://code.google.com/p/django-mobileadmin/ X Encontro do PUG-PE 30
  • 36. E tem vários acessórios! NetworkX http://pypi.python.org/pypi X Encontro do PUG-PE 31
  • 37. ... e por que Python ? 3. Python é utilizado ao redor do mundo X Encontro do PUG-PE 32
  • 38. Python é utilizado lá fora II Encontro X Encontro do Pernambuco Livre - Recife - PUG-PE 33
  • 39. ... e aqui no Brasil também! X Encontro do PUG-PE 34
  • 40. Python entre as 10 + ! http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html X Encontro do PUG-PE 35
  • 41. Depoimentos sobre Python Google: "Python tem tido um papel importante dentro do Google desde o início, e continua sendo à medida que nosso sistema cresce e evolui. Hoje vários engenheiros do Google usam Python, e nós estamos procurando mais pessoas com habilidades nesta linguagem.” - Peter Norvig, Diretor de Qualidade de Pesquisa, Google Inc. Industrial Light & Magic: “Python desempenha um papel fundamental em nosso esquema de produção. Sem ele um projeto do tamanho do filme Star Wars: Episode II seria impossível sair do papel. Desde renderização de personagens a processamento em lote na composição da trilha, Python integra tudo facilmente.” - Tommy Burnette, Diretor Técnico Senior, Industrial Light&Magic Inc. X Encontro do PUG-PE 36
  • 42. Depoimentos sobre Python Mameluco - Projeto Social Cats “Nós da Mameluco escolhemos Python desde o início do nosso primeiro projeto, o website CATS. [..] Conseguimos instalar a plataforma de desenvolvimento, configurá-lo no IDE Eclipse e escrever um ‘Hello World’ em questão de minutos. [...] Durante o desenvolvimento do CATS, trabalhei muito com JavaEE em outro projeto. A dificuldade de configuração, necessidade de ler centenas de páginas e pouca expressividade me fizeram abandonar Java como Primeira linguagem. Foi Python mesmo que encontrei a maneira mais natural de programar servidores, clientes HTTP e serviços REST.” Flávio Juvenal - CTO - Mameluco Orygens: “Escolhemos Python nos nossos projetos por ser uma linguagem madura e de fácil aprendizado e com uma comunidade ativa de usuários. Além de atender nossas necessidades, até nosso designer está aprendendo desenvolver em Python/Django e está achando muito simples. Nós prentendemos usá-lo em vários outros projetos da Orygens [...]. Além da simplicação do desenvolvimento web, [...] reduziu a complexidade e tempo em um novo projeto”. Rafael Carício - CTO - http://atepassar.com Instituto Nokia de Tecnologia: [...] “Desenvolvemos bindings de Qt(C++) para Python: PySide. Python me chamou atenção por ser usado na maioria dos projetos open source dos quais sou usuário. Aprender Python foi muito rápido e o código é muito agradável de ler.[...] Recomendaria Python a qualquer um, [...] creio que só não recomendaria para quem gosta de declarar os tipos e suas variáveis previamente.” Marcelo Lira, Desenvolvedor, INDT X Encontro do PUG-PE 37
  • 43. PyGame e Jogos http://www.pygame.org/news.html X Encontro do PUG-PE 38
  • 45. Aplicativos Desktop http://www.blender.org/ X Encontro do PUG-PE 40
  • 46. Aplicativos Desktop http://www.stoq.com.br/ http://taskcoach.org/ X Encontro do PUG-PE 41
  • 47. Aplicativos Desktop Python + Qt + Qml X Encontro do PUG-PE 42
  • 48. ... e por que Python ? 4. Python é utilizado na web ao redor do mundo X Encontro do PUG-PE 43
  • 49. Web lá fora! http://pt.reddit.com/ http://www.nationalgeographic.com/ http://sourceforge.net/ http://www.youtube.com/ X Encontro do PUG-PE 44
  • 50. Web aqui dentro! http://www.receita.fazenda.gov.br/ http://atepassar.com/ http://www.brasil.gov.br/, http://www.vericia.com/, http://www.dapress.com.br/, http://filmow.com , etc. X Encontro do PUG-PE 45
  • 51. ... e por que Python ? 5. Há empregos para desenvolvedores Python X Encontro do PUG-PE 46
  • 52. Por aqui... X Encontro do PUG-PE 47
  • 53. Por aqui... http://empregos.trovitbrasil.com.br/python, listas de discussão, ... X Encontro do PUG-PE 48
  • 54. Por lá... http://www.python.org/community/jobs/ X Encontro do PUG-PE 49
  • 55. Por lá... Número de ofertas de emprego 60 49 56 45 37 30 19 15 Nov-2010 Dec-2010 0 Jan-2011 Feb-2011 http://www.python.org/community/jobs/ X Encontro do PUG-PE 50
  • 56. Até em casa! http://www.freelancer.com/projects/ X Encontro do PUG-PE 51
  • 57. ... e por que Python ? 6. Conversa bem com outras linguagens X Encontro do PUG-PE 52
  • 58. Python e C/C++ static PyObject *my_callback = NULL; static PyObject * my_set_callback(PyObject *dummy, PyObject *args) { PyObject *result = NULL; PyObject *temp; if (PyArg_ParseTuple(args, "O:set_callback", &temp)) { if (!PyCallable_Check(temp)) { Você pode extender } PyErr_SetString(PyExc_TypeError, "parameter must be callable"); return NULL; Python ou usá-lo em Py_XINCREF(temp); /* Add a reference to new callback */ Py_XDECREF(my_callback); /* Dispose of previous callback */ my_callback = temp; /* Remember new callback */ códigos C/C++ /* Boilerplate to return "None" */ Py_INCREF(Py_None); result = Py_None; } return result; } http://docs.python.org/extending/extending.html X Encontro do PUG-PE 53
  • 59. Python e Java import javax.swing as sshwing firstNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”) scndNum = sshwing.JOptionPane.showInputDialog(“Enter an integer:”) sum = int(firstNum) +   int(scndNum) sshwing.JOptionPane.showMessageDialog(None, “The sum of your integers is %d “ % sum) http://www.jython.org/ X Encontro do PUG-PE 54
  • 60. Python e .Net import sys sys.path.append(r’C:Python25Lib’) import clr clr.AddReference(“System.Windows.Forms”) from System.Windows.Forms import Application,Form class Hello World(Form): def __init__(self): self.Text = ʻHello Worldʼ self.Name = ʻHello Worldʼ form = HelloWorld(Form) Application.Run(Form http://ironpython.net/ X Encontro do PUG-PE 55
  • 61. Python e muito mais! PyMat - Matlab http://claymore.engineer.gvsu.edu/~steriana/Python/pymat.html http://rpy.sourceforge.net/ http://code.google.com/p/pyswip/ http://appscript.sourceforge.net/ X Encontro do PUG-PE 56
  • 62. Interpretada, e o desempenho? “Não fique apenas com o conhecimento que você tem do código.” Módulos para Python escritos em C. (Extensões): Ex: PyRex PyPy: Implementação da linguagem Python em Python (Otimizando a linguagem). http://pypy.org Psyco: Compilador para Python que gera código nativo da máquina (2x - 100x) http://psyco.sourceforge.net/ 200 150 100 Lines of code Time per iteration (ms) 50 0 Sun JDK 1.6.0 C++ 4.13 Python + Psyco Python 2.5.1 http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ X Encontro do PUG-PE 57
  • 63. ... e por que Python ? 7. Uma boa linguagem para quem está começando! X Encontro do PUG-PE 58
  • 64. Aprendar programar com Python http://ark4n.wordpress.com/python/ http://www.aprendendodjango.com/ http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-00Fall-2008/CourseHome/index.htm X Encontro do PUG-PE 59
  • 65. Aprendar programar com Python Universidade Federal Rural de Pernambuco já adota Python Bacharelado em Sistemas de Informação Licenciatura em Física Licenciatura em Computação [...] O curso BSI-UFRPE tem como Python a LP oficial do curso! Todas as disciplinas que envolvem programação [...], usam Python! Recentemente tenho experimentado usar algo que é fantástico em Python para ensinar a programar: Python é híbrida. [...] O resultado desta experiência está sendo organizado em um texto [...], e pretendo transformá-lo até o fim do ano em um livro, cujo título provisório é ‘Python como Primeira LP: Uma abordagem Imperativa, Funcional e Orientada a Objetos”. Prof. PHD Wilson Rosa - Pesquisador UFRPE X Encontro do PUG-PE 60
  • 66. ... e por que Python ? 8. Uma comunidade forte com que você pode contar! X Encontro do PUG-PE 61
  • 67. 24 hrs ao seu dispor! http://br.groups.yahoo.com/group/python-brasil/ X Encontro do PUG-PE 62
  • 68. PUG - PE Grupo de usuários de Python de Pernambuco http://groups.google.com/group/pug-pe?hl=pt-BR X Encontro do PUG-PE 63
  • 69. Razão bônus! 9. Permite expor suas idéias de forma rápida! X Encontro do PUG-PE 64
  • 70. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
  • 71. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife X Encontro do PUG-PE 65
  • 72. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
  • 73. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE X Encontro do PUG-PE 65
  • 74. TransitoRecife (Web) Monitorando o trânsito de algumas vias do Recife http://twitter.com/transitoRE Apenas 65 linhas de código! X Encontro do PUG-PE 65
  • 75. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 76. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 77. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 78. TransitoRecife (Celular) ... E também via celular! TransitoRecife no Nokia E63 66
  • 79. Referências http://www.slideshare.net/marcoandre/porque-python-fisl-90 (Marcos André - FISL 9) http://www.slideshare.net/flavioribeiro/introduo-a-linguagem-de-programao-python-presentation http://www.python.org/ http://www.pythonbrasil.org.br/ http://ark4n.wordpress.com/python/ E-mails, Listas, Fóruns, conversas no Google Talk, etc. X Encontro do PUG-PE 67
  • 80. Chegamos ao fim !! Hora da random.choice([pergunta, dúvida, discussão]) !! X Encontro do PUG-PE 68
  • 81. Conhecendo Python e Por que ele importa? Marcel Pinheiro Caraciolo email: caraciol@gmail.com twitter: marcelcaraciolo X Encontro do PUG-PE 69

Hinweis der Redaktion