SlideShare uma empresa Scribd logo
1 de 46
a arma secreta do Google

Luciano Ramalho
luciano@ramgarlic.com
Google em 1998
O que é Python
Linguagem de uso geral
  Web, desktop, redes, computação gráfica e
  científica
Multi-plataforma
  Linux, Windows, Mac, Unix, Nokia S-60...
Amplo suporte de fornecedores de TI
  Google, IBM, Oracle, Microsoft, RedHat, Amazon...
Sintaxe simples e clara mas muito expressiva
  Aprendizagem rápida, produtividade em dias
Linguagem
Expressiva?

  O que isso
   significa
  na prática?




       Linguagem
         COBOL
Java
Java


Python
Python tem sido uma parte
importante do Google desde
o início, e continua sendo à
medida que o sistema cresce
e evolui... estamos procurando
mais pessoas com habilidade
nesta linguagem.




Peter Norvig, Google, Inc.
http://aima.cs.berkeley.edu/code.html
lis.py: interpretador
   Lisp (Scheme) em
113 linhas de Python,
      por Peter Norvig
>>> from lis import repl
>>> repl()
lis.py> (* 7 3)
21
                                    Demo: lis.py
lis.py> (define resposta (* 6 7))
lis.py> resposta
42
lis.py> (define ! (lambda (n) (if (= n 0) 1 (* n (! (- n 1))))))
lis.py> (! 4)
24
lis.py> (! 5)
120
lis.py> (! 197)
10007840558408082122130389497134473659904776124145643156372043719
15587343235626799299914070366966935566947378481954772384977466613
67777918006944650646265409257583733981874437495228286501182991424
47739508657606635346735333579872783783532869428043930552260307311
88238628318646302096556423610922923784067025686796088553504768000
00000000000000000000000000000000000000000000
lis.py> !
<function <lambda> at 0x1004cbd70>
lis.py>
Exemplo: relógio gráfico

import Tkinter
from time import strftime

relogio = Tkinter.Label()

relogio.pack()
relogio['font'] = 'Helvetica 120 bold'
relogio['text'] = strftime('%H:%M:%S')

def tictac():
    agora = strftime('%H:%M:%S')
    if agora != relogio['text']:
        relogio['text'] = agora
    relogio.after(100, tictac)

tictac()
relogio.mainloop()
Exemplo: cliente Twitter
import sys
import urllib
import json

if len(sys.argv) == 2:
    busca = sys.argv[1]
else:
    print 'Informe o texto da busca: {0} "texto"'.format(__file__)
    sys.exit(1)

url = 'http://search.twitter.com/search.json?q='+busca
resposta = urllib.urlopen(url).read()
documento = json.loads(resposta)
resultados = documento['results']
for resultado in resultados:
    print u'{from_user}: {text}n'.format(**resultado)
print '{0} resuldados exibidos'.format(len(resultados))
Exemplo: servidor TCP/IP
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor
from time import asctime

class ServidorHora(Protocol):
    def dataReceived(self, data):
        self.transport.write(asctime())

f = Factory()
f.protocol = ServidorHora

reactor.listenTCP(9999, f)
reactor.run()



Para testar:
$ telnet 127.0.0.1 9999
Quem usa Python?
Áreas de aplicação

desenvolvimento Web
computação gráfica
administração de sistemas
integração de sistemas (glue language)
computação científica
games
YouTube
Globo.com
Mozilla Firefox Add-Ons
Dropbox
Google App Engine
The Foundry, NUKE
Industrial Light & Magic
Autodesk Maya
Invesalius
Civilization IV
Frets on Fire
FBI e CIA
brasil.gov.br
Câmara dos Deputados
Projetos Open Source
Características
 Não obriga a declarar variáveis, mas obriga a inicializar

   >>> a = 10
   >>> c = a + b
   Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
   NameError: name 'b' is not defined


 Tipagem dinâmica forte, obriga conversões explícitas
   >>> a = '9'
   >>> b = 10
   >>> c = a + b
   Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
   TypeError: cannot concatenate 'str' and 'int' objects
Características 2

 Orientada a objetos, mas não obriga a criar classes
 Suporta sobrecarga de operadores e herança múltipla
 Usa exceções, mas não obriga a declarar ou tratar
 Usa namespaces, módulos e pacotes
 Compilada para bytecode, como Java
Implementações
CPython: o interpretador python padrão,
implementando em C
  pré-instalado na maioria dos Linux e no OSX
Jython: implementado em Java, roda sobre a JVM
IronPython: implementado em C#, roda sobre .net CLR
PyPy: implementado em Python, compilação JIT
  melhor desempenho que o CPython em muitos testes
  poderá substituir CPython como interpretador principal
Porque aprender

Linguagem acessível, resultados em pouco tempo
Campos de atuação muito diversificados, em expansão
Dominar novos conceitos e paradigmas
Diversão e realização pessoal
Resumindo: um ótimo investimento em você
diveintopython3.ep.io
Khan Academy
Khan Academy
code.google.com/edu/languages
Onde aprender mais
python.org, python.org.br
pythonbrasil.org.br (slideshare.net #pythonbrasil)
Google Groups: python-brasil

Introdução à Programação com Python, Nilo Menezes

Python e Django, Osvaldo Santana e Thiago Galesi
Curso Gratuito 18/10, 19h-22h (metrô Paraíso):
  Desenvolvimento Web fácil com Python e Django
  Reservas: Globalcode.com.br 11-3145-2230
Agradecimentos
Guido van Rossum, pela linguagem Python
Todo mundo que vem colaborando com Python
Google, por pagar o salário de Guido, Peter, Alex
Martelli e tantos outros pythonistas da pesada
Rodrigo Senra, Marco André, Xiru, Pamela Fox e Peter
Norvig por exemplos, imagens e inspiração
Comunidade Python Brasil, pela troca de idéias,
amizade e arbustos
Agradecimento especial a você que ficou até o fim!

Mais conteúdo relacionado

Mais procurados

Refactoring tutorial
Refactoring tutorialRefactoring tutorial
Refactoring tutorial
Bingu Shim
 
Apostila para hackers iniciantes
Apostila para hackers iniciantesApostila para hackers iniciantes
Apostila para hackers iniciantes
ponto hacker
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
Denis L Presciliano
 

Mais procurados (20)

PyCon2022 - Building Python Extensions
PyCon2022 - Building Python ExtensionsPyCon2022 - Building Python Extensions
PyCon2022 - Building Python Extensions
 
Refactoring tutorial
Refactoring tutorialRefactoring tutorial
Refactoring tutorial
 
JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a Objetos
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Apostila para hackers iniciantes
Apostila para hackers iniciantesApostila para hackers iniciantes
Apostila para hackers iniciantes
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
Seja lider de si mesmo resumo
Seja lider de si mesmo resumoSeja lider de si mesmo resumo
Seja lider de si mesmo resumo
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Коучинг как бизнес-технология
Коучинг как бизнес-технологияКоучинг как бизнес-технология
Коучинг как бизнес-технология
 
Líderes em Ação
Líderes em AçãoLíderes em Ação
Líderes em Ação
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Gestao Do Tempo
Gestao Do Tempo Gestao Do Tempo
Gestao Do Tempo
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Python e tipagem estática
Python e tipagem estáticaPython e tipagem estática
Python e tipagem estática
 
Coaching - Tríade do Tempo
Coaching - Tríade do TempoCoaching - Tríade do Tempo
Coaching - Tríade do Tempo
 
Grafos
GrafosGrafos
Grafos
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 

Destaque

Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
Jonh Edson
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
Janderson Campêlo
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
Victor Marcelino
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de busca
Ricardo Bolanho
 

Destaque (20)

Introduction to Python for Symbian S60
Introduction to Python for Symbian S60Introduction to Python for Symbian S60
Introduction to Python for Symbian S60
 
Python na Web
Python na WebPython na Web
Python na Web
 
Mini-Curso Python para Symbian
Mini-Curso Python para SymbianMini-Curso Python para Symbian
Mini-Curso Python para Symbian
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Desenvolvimento web com Python, Zope e Plone
Desenvolvimento web com Python, Zope e PloneDesenvolvimento web com Python, Zope e Plone
Desenvolvimento web com Python, Zope e Plone
 
Python
PythonPython
Python
 
Preparando-se para a prova da Certificação Zend PHP 5.3
Preparando-se para a prova da Certificação Zend PHP 5.3Preparando-se para a prova da Certificação Zend PHP 5.3
Preparando-se para a prova da Certificação Zend PHP 5.3
 
Python e MongoDB - Ensol
Python e MongoDB - EnsolPython e MongoDB - Ensol
Python e MongoDB - Ensol
 
Introducao python 2010
Introducao python 2010Introducao python 2010
Introducao python 2010
 
Diversidade na Comunidade Python
Diversidade na Comunidade PythonDiversidade na Comunidade Python
Diversidade na Comunidade Python
 
Rumo à Certificação PHP
Rumo à Certificação PHPRumo à Certificação PHP
Rumo à Certificação PHP
 
Desenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2pyDesenvolvimento web ágil com python e web2py
Desenvolvimento web ágil com python e web2py
 
QGIS 2.8: Classificação de Campos com Python
QGIS 2.8: Classificação de Campos com PythonQGIS 2.8: Classificação de Campos com Python
QGIS 2.8: Classificação de Campos com Python
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
 
Análise estática de código Python
Análise estática de código PythonAnálise estática de código Python
Análise estática de código Python
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de busca
 
Ensinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphicsEnsinando a programar através do Python turtle graphics
Ensinando a programar através do Python turtle graphics
 

Semelhante a Python, a arma secreta do Google

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
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
CDS
 

Semelhante a Python, a arma secreta do Google (20)

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
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação 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 ?
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
Minicurso-Python-01.pptx
Minicurso-Python-01.pptxMinicurso-Python-01.pptx
Minicurso-Python-01.pptx
 
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
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 

Mais de Luciano Ramalho

Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritores
Luciano Ramalho
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em Python
Luciano Ramalho
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
Luciano Ramalho
 
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
 

Mais de Luciano Ramalho (20)

Wiki-wiki S/A
Wiki-wiki S/AWiki-wiki S/A
Wiki-wiki S/A
 
Mongodb: agregação
Mongodb: agregaçãoMongodb: agregação
Mongodb: agregação
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Encapsulamento com descritores
Encapsulamento com descritoresEncapsulamento com descritores
Encapsulamento com descritores
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Encapsulamento com Descritores em Python
Encapsulamento com Descritores em PythonEncapsulamento com Descritores em Python
Encapsulamento com Descritores em Python
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
Dojo com Arduino
Dojo com ArduinoDojo com Arduino
Dojo com Arduino
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Open Library no Mongodb
Open Library no MongodbOpen Library no Mongodb
Open Library no Mongodb
 
Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011Jython no JavaOne Latin America 2011
Jython no JavaOne Latin America 2011
 
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)
 
OO em Python sem sotaque
OO em Python sem sotaqueOO em Python sem sotaque
OO em Python sem sotaque
 
Modelos ricos
Modelos ricosModelos ricos
Modelos ricos
 
Ensinando OO com Python
Ensinando OO com PythonEnsinando OO com Python
Ensinando OO com Python
 
Alex Martelli's Python Design Patterns
Alex Martelli's Python Design PatternsAlex Martelli's Python Design Patterns
Alex Martelli's Python Design Patterns
 
Dspace em 5 minutos
Dspace em 5 minutosDspace em 5 minutos
Dspace em 5 minutos
 

Python, a arma secreta do Google

  • 1. a arma secreta do Google Luciano Ramalho luciano@ramgarlic.com
  • 3.
  • 4. O que é Python Linguagem de uso geral Web, desktop, redes, computação gráfica e científica Multi-plataforma Linux, Windows, Mac, Unix, Nokia S-60... Amplo suporte de fornecedores de TI Google, IBM, Oracle, Microsoft, RedHat, Amazon... Sintaxe simples e clara mas muito expressiva Aprendizagem rápida, produtividade em dias
  • 5. Linguagem Expressiva? O que isso significa na prática? Linguagem COBOL
  • 8. Python tem sido uma parte importante do Google desde o início, e continua sendo à medida que o sistema cresce e evolui... estamos procurando mais pessoas com habilidade nesta linguagem. Peter Norvig, Google, Inc.
  • 10. lis.py: interpretador Lisp (Scheme) em 113 linhas de Python, por Peter Norvig
  • 11. >>> from lis import repl >>> repl() lis.py> (* 7 3) 21 Demo: lis.py lis.py> (define resposta (* 6 7)) lis.py> resposta 42 lis.py> (define ! (lambda (n) (if (= n 0) 1 (* n (! (- n 1)))))) lis.py> (! 4) 24 lis.py> (! 5) 120 lis.py> (! 197) 10007840558408082122130389497134473659904776124145643156372043719 15587343235626799299914070366966935566947378481954772384977466613 67777918006944650646265409257583733981874437495228286501182991424 47739508657606635346735333579872783783532869428043930552260307311 88238628318646302096556423610922923784067025686796088553504768000 00000000000000000000000000000000000000000000 lis.py> ! <function <lambda> at 0x1004cbd70> lis.py>
  • 12. Exemplo: relógio gráfico import Tkinter from time import strftime relogio = Tkinter.Label() relogio.pack() relogio['font'] = 'Helvetica 120 bold' relogio['text'] = strftime('%H:%M:%S') def tictac(): agora = strftime('%H:%M:%S') if agora != relogio['text']: relogio['text'] = agora relogio.after(100, tictac) tictac() relogio.mainloop()
  • 13. Exemplo: cliente Twitter import sys import urllib import json if len(sys.argv) == 2: busca = sys.argv[1] else: print 'Informe o texto da busca: {0} "texto"'.format(__file__) sys.exit(1) url = 'http://search.twitter.com/search.json?q='+busca resposta = urllib.urlopen(url).read() documento = json.loads(resposta) resultados = documento['results'] for resultado in resultados: print u'{from_user}: {text}n'.format(**resultado) print '{0} resuldados exibidos'.format(len(resultados))
  • 14. Exemplo: servidor TCP/IP from twisted.internet.protocol import Protocol, Factory from twisted.internet import reactor from time import asctime class ServidorHora(Protocol): def dataReceived(self, data): self.transport.write(asctime()) f = Factory() f.protocol = ServidorHora reactor.listenTCP(9999, f) reactor.run() Para testar: $ telnet 127.0.0.1 9999
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Áreas de aplicação desenvolvimento Web computação gráfica administração de sistemas integração de sistemas (glue language) computação científica games
  • 36. Características Não obriga a declarar variáveis, mas obriga a inicializar >>> a = 10 >>> c = a + b Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'b' is not defined Tipagem dinâmica forte, obriga conversões explícitas >>> a = '9' >>> b = 10 >>> c = a + b Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects
  • 37. Características 2 Orientada a objetos, mas não obriga a criar classes Suporta sobrecarga de operadores e herança múltipla Usa exceções, mas não obriga a declarar ou tratar Usa namespaces, módulos e pacotes Compilada para bytecode, como Java
  • 38. Implementações CPython: o interpretador python padrão, implementando em C pré-instalado na maioria dos Linux e no OSX Jython: implementado em Java, roda sobre a JVM IronPython: implementado em C#, roda sobre .net CLR PyPy: implementado em Python, compilação JIT melhor desempenho que o CPython em muitos testes poderá substituir CPython como interpretador principal
  • 39. Porque aprender Linguagem acessível, resultados em pouco tempo Campos de atuação muito diversificados, em expansão Dominar novos conceitos e paradigmas Diversão e realização pessoal Resumindo: um ótimo investimento em você
  • 40.
  • 45. Onde aprender mais python.org, python.org.br pythonbrasil.org.br (slideshare.net #pythonbrasil) Google Groups: python-brasil Introdução à Programação com Python, Nilo Menezes Python e Django, Osvaldo Santana e Thiago Galesi Curso Gratuito 18/10, 19h-22h (metrô Paraíso): Desenvolvimento Web fácil com Python e Django Reservas: Globalcode.com.br 11-3145-2230
  • 46. Agradecimentos Guido van Rossum, pela linguagem Python Todo mundo que vem colaborando com Python Google, por pagar o salário de Guido, Peter, Alex Martelli e tantos outros pythonistas da pesada Rodrigo Senra, Marco André, Xiru, Pamela Fox e Peter Norvig por exemplos, imagens e inspiração Comunidade Python Brasil, pela troca de idéias, amizade e arbustos Agradecimento especial a você que ficou até o fim!

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n