SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Programação em



       Rodrigo Hübner




              
Por que usamos python...

     Conceitos fundamentais são fáceis de aprender;
     O mesmo código roda em plataformas Linux, Windows e 
    MAC sem alterações;
     Possui uma sintaxe clara e de fácil aprendizado;
     Suporte a uma diversidade muito grande de bibliotecas;
     Tipagem forte e dinâmica;
     Tipos pré definidos são poderosos;
     É livre!

                             E por aí vai...

                                    
Aonde a cobra anda?




    ● Governo Brasileiro (Website)
    ● CIA (Website)




                                          OLPC – One Laptop per Child




                Quer mais? http://pythonology.org/success
                                      
Interação com outras linguagens

                  Cpython
                   Jython
                 IronPython
              Python for Delphi
               Python for .NET
               Lunatic Python
                    PyPy




                       
SHOW ME THE CODE!




             
Aspectos Iniciais...


    Tipos já conhecidos:
    ● Inteiros, String, Reais...




    Tipos mais poderosos:

    ● Listas:
    Ex: lista = [“Fulano”, “Ciclano”, 123, 3.14]

    ● Tuplas:
    Ex:  tupla = (“Fulano”, “Ciclano”, 123, 3.14)

    ● Dicionários:
    Ex: dict = {1: “Eu”, 2: “Você”, 3: “Eles”}



                                              
Aspectos Iniciais...

    Uso do interpretador interativo

    for numero in range (5):
         print numero
    0
    1
    2
    3                     Ajuda! dos métodos primitivos:
    4                     ● dir(), help(), type()




                                               Projetos Interessantes:
                                               ● Ipython
                                               ● Reinteract




                                           
Aspectos Iniciais...

Exemplo “iniciante”:

     01   # ­*­ coding: utf­8 ­*­
     02                                      Código que simula um diálogo entre duas
     03   import threading                          pessoas usando “thread”
     04   import time
     05
     06   def conversa(*args):
     07        for frase in args:
     08              print frase
     09              time.sleep(2)
     10
     11   pessoa1 = ("Fulano: E aí Ciclano", "Fulano: programo em Python!")
     12   pessoa2 = ("Ciclano: E aí Fulano, programa e que?", "Ciclano: Bom garoto!!! :)")
     13
     14   threading.Thread (target=conversa, args=pessoa1).start()
     15   time.sleep(1)
     16   threading.Thread (target=conversa, args=pessoa2).start()

                                              
Aspectos mais interessantes!

    Um laço for simplesmente...

    dados = ['Flisol', 'Rodrigo', 'Maringa']       for item in range(5):
    for itens in dados:                                  print item**2,
          print itens
                                                   0 1 4 9 16
    Flisol
    Maringa
    Rodrigo
                             +
     Um pouco de conceitos matemáticos...

     A = {x² : x Є {0 ... 9}}
     B = (1, 2, 4, 8, ... 2¹²)
                                                   =            List Comprehensions!
     C = {x | x Є A e x é par}


                                                
Aspectos mais interessantes!

    List Comprehensions

    ● A = {x² : x Є {0 ... 9}}

    a = [x**2 for x in range(10)]
    a
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

    ● B = (1, 2, 4, 8, ... 2¹²)

    [2**i for i in range(13)]
    [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096]


    ● C = {x | x Є A e x é par}
    [x for x in a if x % 2 == 0]
    [0, 4, 16, 36, 64]



                                                  
Aspectos mais interessantes!


Função de uma linha: lambda()          +    Listas (ou List Comprehensions)   =   Map



     frase = 'O rato roeu a roupa do rei de roma'
     palavras = frase.split()
     palavras

     jaspion = map(lambda w: [w.upper(), w.lower(), len(w)], palavras)
     for i in jaspion:
           print i




                                                     
Aspectos mais interessantes!


    Iteradores e Geradores


                       def  sequencia(numero):
                            i = numero
                            while True:
                                 i += 1
                                 yield i

                       valores = sequencia(10)
                       valores.next()
                       11
                       valores.next()
                       12
                       ...




                                          
Orientação a Objetos

Exemplo simples:
                                                 Uso:
class Pessoa(object):
                                                 pessoa = Pessoa(“Fulano”, “2222 – 8754”)
     def __init__ (self, nome, telefone):        pessoa.escreve()
          self.nome = nome                       Fulano
          self.telefone = telefone               2222 – 8754

     def escreve(self):
          print “Nome: ”+self.nome
          print “Telefone: ”+self.telefone




                    Em python e possível implementa herança multipla!




                                              
Desenvolvimento para todos os gostos!!!


       WEB                Desktop           Processamento
      Django;              Tkinter;        Imagens / scripts
    Zope / Plone;          PyGTK;                 PIL;
       Pylons;              PyQT;            PythonMagick;
    Turbo Gears;          wxPython;          GIMP­Python;
    mod_python;               ...                  ...
         ...

      Ciência               BD               Diversão
       Scipy;              ZOBD;              PyGame
     BioPython;            gadfly;            Blender
      AstroPy;            Postgres;              ...
      NumPy;              MySQL;
         ...                 ...


                                   
Uso de banco de dados: PostgreSQL

    # Importa o módulo do PostegreSQL
    import PgSQL

    # Faz conexão com o banco de dados
    db = PgSQL.connect(host='host', database='bd', 
                       user='usuario',password='senha')

    # Cria um cursor
    cursor = db.cursor()

    # Executa o SQL
    cursor.execute("SELECT * FROM tabela")

    # Recebe um conjunto de resultado em forma de “tupla”
    result = cursor.fetchall()

    # Navega pelos resultados armazenados na tupla
    for record in result:
          print record[0] , "­­>", record[1]



                                             
PERGUNTAS?




          Rodrigo Hübner
    E­mail: rhubner@gmail.com
     http://rodrigohubner.com

                
Referencias Bibliográficas

    http://pythonbrasil.com.br
    http://www.reinteract.org
    http://ipython.scipy.org
    http://djangoproject.org

    Livros:
         Learning to Python
         Beginning Game Development with Python and Pygame
         Dive into Python

    Canal IRC:
       #python­br (serv. FreeNode)

    Lista de Discussão:
         python­brasil (yahoo grupos)
         grupy­pr (google grupos)



                                          

Weitere ähnliche Inhalte

Was ist angesagt?

Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfMarcelo Silva
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Matemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à DisciplinaMatemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à DisciplinaRanilson Paiva
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaDelacyr Ferreira
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Seminário redes bayesianas
Seminário redes bayesianasSeminário redes bayesianas
Seminário redes bayesianasiaudesc
 
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
 
Lista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e AutômatosLista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e AutômatosTárcio Sales
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Júlia Fernandes Alves
 
Aula 7 inducao matematica-primeiroprincipio
Aula 7   inducao matematica-primeiroprincipioAula 7   inducao matematica-primeiroprincipio
Aula 7 inducao matematica-primeiroprincipiowab030
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Caderno de exercícios Sistemas digitais - Portas lógicas
Caderno de exercícios  Sistemas digitais - Portas lógicasCaderno de exercícios  Sistemas digitais - Portas lógicas
Caderno de exercícios Sistemas digitais - Portas lógicasCarlos Pereira
 

Was ist angesagt? (20)

Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Aula 06 - Sistema Binário
Aula 06 - Sistema BinárioAula 06 - Sistema Binário
Aula 06 - Sistema Binário
 
Matemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à DisciplinaMatemática Discreta - Introdução à Disciplina
Matemática Discreta - Introdução à Disciplina
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução Finita
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Aula de LOGARITMOS
Aula de LOGARITMOSAula de LOGARITMOS
Aula de LOGARITMOS
 
Seminário redes bayesianas
Seminário redes bayesianasSeminário redes bayesianas
Seminário redes bayesianas
 
Cabos de rede
Cabos de redeCabos de rede
Cabos de rede
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
Lista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e AutômatosLista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e Autômatos
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
 
Sistema binario
Sistema binarioSistema binario
Sistema binario
 
Aula 7 inducao matematica-primeiroprincipio
Aula 7   inducao matematica-primeiroprincipioAula 7   inducao matematica-primeiroprincipio
Aula 7 inducao matematica-primeiroprincipio
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Caderno de exercícios Sistemas digitais - Portas lógicas
Caderno de exercícios  Sistemas digitais - Portas lógicasCaderno de exercícios  Sistemas digitais - Portas lógicas
Caderno de exercícios Sistemas digitais - Portas lógicas
 

Andere mochten auch

Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programaçãoGivanaldo Rocha
 
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
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Djangofabiocerqueira
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreÁlvaro Justen
 
Python no Celular
Python no CelularPython no Celular
Python no Celulariuridiniz
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaÁlvaro Justen
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoÁlvaro Justen
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantesrichardsonlima
 
Installing Python on Windows OS
Installing Python on Windows OSInstalling Python on Windows OS
Installing Python on Windows OSWei-Wen Hsu
 
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicospython: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicosAdriano Petrich
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoBernardo Fontes
 
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
 
Testes pythonicos com pytest
Testes pythonicos com pytestTestes pythonicos com pytest
Testes pythonicos com pytestviniciusban
 

Andere mochten auch (17)

Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programação
 
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
 
REST com Python
REST com PythonREST com Python
REST com Python
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Django
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware Livre
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira Pythônica
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Installing Python on Windows OS
Installing Python on Windows OSInstalling Python on Windows OS
Installing Python on Windows OS
 
python: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicospython: Listas, deques, Dicionarios e outros monstros mitologicos
python: Listas, deques, Dicionarios e outros monstros mitologicos
 
Django: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazoDjango: um framework web para perfeccionistas com prazo
Django: um framework web para perfeccionistas com prazo
 
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
 
Testes pythonicos com pytest
Testes pythonicos com pytestTestes pythonicos com pytest
Testes pythonicos com pytest
 

Ähnlich wie Por que usar Python: conceitos fundamentais, bibliotecas, aplicações e projetos

Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It YourselfBruno Nascimento
 
Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação pythonCleyton Fábio
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?Felipe Volpone
 
Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009Marco Mendes
 
Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Marco Mendes
 
Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Marco Mendes
 
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 Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Marco Mendes
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
Por que Python?
Por que Python?Por que Python?
Por que Python?gsroma
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonrodrigopex
 
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
 
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
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaÁlvaro Justen
 

Ähnlich wie Por que usar Python: conceitos fundamentais, bibliotecas, aplicações e projetos (20)

Python
PythonPython
Python
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It Yourself
 
Aula python
Aula pythonAula python
Aula python
 
Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação python
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?
 
Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009Por que Python? - FISL 10 - 2009
Por que Python? - FISL 10 - 2009
 
Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009
 
Por que Python? - FURB - 2009
Por que Python? - FURB - 2009Por que Python? - FURB - 2009
Por que Python? - FURB - 2009
 
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 Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009Por que Python? - PythonBrasil[5] - 2009
Por que Python? - PythonBrasil[5] - 2009
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Por que Python?
Por que Python?Por que Python?
Por que Python?
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
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
 
Porque Python?
Porque Python?Porque Python?
Porque Python?
 
Introdução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtivaIntrodução a linguagem Python: simples e produtiva
Introdução a linguagem Python: simples e produtiva
 

Por que usar Python: conceitos fundamentais, bibliotecas, aplicações e projetos

  • 1. Programação em Rodrigo Hübner    
  • 2. Por que usamos python...  Conceitos fundamentais são fáceis de aprender;  O mesmo código roda em plataformas Linux, Windows e  MAC sem alterações;  Possui uma sintaxe clara e de fácil aprendizado;  Suporte a uma diversidade muito grande de bibliotecas;  Tipagem forte e dinâmica;  Tipos pré definidos são poderosos;  É livre! E por aí vai...    
  • 3. Aonde a cobra anda? ● Governo Brasileiro (Website) ● CIA (Website) OLPC – One Laptop per Child Quer mais? http://pythonology.org/success    
  • 4. Interação com outras linguagens  Cpython  Jython  IronPython  Python for Delphi  Python for .NET  Lunatic Python  PyPy    
  • 5. SHOW ME THE CODE!    
  • 6. Aspectos Iniciais... Tipos já conhecidos: ● Inteiros, String, Reais... Tipos mais poderosos: ● Listas: Ex: lista = [“Fulano”, “Ciclano”, 123, 3.14] ● Tuplas: Ex:  tupla = (“Fulano”, “Ciclano”, 123, 3.14) ● Dicionários: Ex: dict = {1: “Eu”, 2: “Você”, 3: “Eles”}    
  • 7. Aspectos Iniciais... Uso do interpretador interativo for numero in range (5): print numero 0 1 2 3 Ajuda! dos métodos primitivos: 4 ● dir(), help(), type() Projetos Interessantes: ● Ipython ● Reinteract    
  • 8. Aspectos Iniciais... Exemplo “iniciante”: 01 # ­*­ coding: utf­8 ­*­ 02 Código que simula um diálogo entre duas 03 import threading pessoas usando “thread” 04 import time 05 06 def conversa(*args): 07 for frase in args: 08 print frase 09 time.sleep(2) 10 11 pessoa1 = ("Fulano: E aí Ciclano", "Fulano: programo em Python!") 12 pessoa2 = ("Ciclano: E aí Fulano, programa e que?", "Ciclano: Bom garoto!!! :)") 13 14 threading.Thread (target=conversa, args=pessoa1).start() 15 time.sleep(1) 16 threading.Thread (target=conversa, args=pessoa2).start()    
  • 9. Aspectos mais interessantes! Um laço for simplesmente... dados = ['Flisol', 'Rodrigo', 'Maringa'] for item in range(5): for itens in dados: print item**2, print itens 0 1 4 9 16 Flisol Maringa Rodrigo + Um pouco de conceitos matemáticos... A = {x² : x Є {0 ... 9}} B = (1, 2, 4, 8, ... 2¹²) = List Comprehensions! C = {x | x Є A e x é par}    
  • 10. Aspectos mais interessantes! List Comprehensions ● A = {x² : x Є {0 ... 9}} a = [x**2 for x in range(10)] a [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] ● B = (1, 2, 4, 8, ... 2¹²) [2**i for i in range(13)] [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096] ● C = {x | x Є A e x é par} [x for x in a if x % 2 == 0] [0, 4, 16, 36, 64]    
  • 11. Aspectos mais interessantes! Função de uma linha: lambda() + Listas (ou List Comprehensions) = Map frase = 'O rato roeu a roupa do rei de roma' palavras = frase.split() palavras jaspion = map(lambda w: [w.upper(), w.lower(), len(w)], palavras) for i in jaspion: print i    
  • 12. Aspectos mais interessantes! Iteradores e Geradores def  sequencia(numero): i = numero while True: i += 1 yield i valores = sequencia(10) valores.next() 11 valores.next() 12 ...    
  • 13. Orientação a Objetos Exemplo simples: Uso: class Pessoa(object): pessoa = Pessoa(“Fulano”, “2222 – 8754”) def __init__ (self, nome, telefone): pessoa.escreve() self.nome = nome Fulano self.telefone = telefone 2222 – 8754 def escreve(self): print “Nome: ”+self.nome print “Telefone: ”+self.telefone Em python e possível implementa herança multipla!    
  • 14. Desenvolvimento para todos os gostos!!! WEB Desktop Processamento Django; Tkinter; Imagens / scripts Zope / Plone; PyGTK; PIL; Pylons; PyQT; PythonMagick; Turbo Gears; wxPython; GIMP­Python; mod_python; ... ... ... Ciência BD Diversão Scipy; ZOBD; PyGame BioPython; gadfly; Blender AstroPy; Postgres; ... NumPy; MySQL; ... ...    
  • 15. Uso de banco de dados: PostgreSQL # Importa o módulo do PostegreSQL import PgSQL # Faz conexão com o banco de dados db = PgSQL.connect(host='host', database='bd',        user='usuario',password='senha') # Cria um cursor cursor = db.cursor() # Executa o SQL cursor.execute("SELECT * FROM tabela") # Recebe um conjunto de resultado em forma de “tupla” result = cursor.fetchall() # Navega pelos resultados armazenados na tupla for record in result: print record[0] , "­­>", record[1]    
  • 16. PERGUNTAS? Rodrigo Hübner E­mail: rhubner@gmail.com http://rodrigohubner.com    
  • 17. Referencias Bibliográficas http://pythonbrasil.com.br http://www.reinteract.org http://ipython.scipy.org http://djangoproject.org Livros: Learning to Python Beginning Game Development with Python and Pygame Dive into Python Canal IRC: #python­br (serv. FreeNode) Lista de Discussão: python­brasil (yahoo grupos) grupy­pr (google grupos)