SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
por que você deveria
aprender python?
@felipevolpone
github.com/felipevolpone
história
quem usa
referências
onde é usado
comunidade
características
por que aprender
uma nova linguagem?
o que vai rolar
por que aprender
uma nova linguagem?
uma linguagem não
resolve todos os problemas
novo modo de pensar
!
paradigmas diferentes
!
novas características
!
linguagens possuem maneiras
diferentes de resolver os mesmos problemas
!
diferentes ferramentas
!
nova comunidade
Programas se tornaram complexos e
grandes demais para caber na mente
humana. […], a ciência da computação
pode ensinar como disciplinar seus
trabalhos para que 500 programadores
medianos, consigam juntos, produzir um
software segundos suas necessidades.
conservativo
Simply Scheme: Introducing Computer Science
Programas se tornaram grandes e
complexos demais para caber na
mente humana. […], a ciência da
computação pode ensinar como expandir
a mente dos desenvolvedores para que
os programas caibam. Ensinando como
pensar em um vocabulário maior, mais
poderoso e mais flexível.
radical
escolha
PYTHON
história
Guido van Rossum
@gvanrossum
baseada em ABC
começou em 1989
características
expressiva
dinâmica
orientadaaobjetos
fácil
legível
simples é melhor
que complexo
expansível
produtividade
em evolução
bonito é melhor
que feio
$ python
>>> import this
!
The Zen of Python, by Tim Peters
!
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Unless explicitly silenced.
There should be one-- and preferably only one --obvious way to do it.
Now is better than never.
vs
x = 10
w = x + y
Traceback:
w = x + y
NameError: name 'y' is not defined
numero = 27
nome = 'python'
resultado = nome + numero
Traceback:
resultado = nome + numero
TypeError: cannot concatenate
‘str' and ‘int' objects
public class HelloWorld {
!
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
print 'Hello, World'
for(int i = 1; i < 10; i++) {
System.out.println(i);
}
for i in range(1,10):
print i
!
!
def somar(a=0, b=1):
return a+b
!
somar()
# 1
somar(a=5, b=3)
# 8
!
class Colaborador
{
private String nome;
private int salario = 1000;
private String cargo = “";
public Employee(String nomeColaborador)
{
this(nomeColaborador, 1000);
}
!
public Employee(String nomeColaborador,
int salario)
{
this(nomeColaborador, salario, "dev");
}
!
public Employee(String nomeColaborador,
int salario,
String cargo)
{
this.nome = nomeColaborador;
this.salario = salario;
this.cargo = cargo;
}
}
class Colaborador():
!
def __init__(self,
nomeColaborador,
salarioColaborador =1000,
cargoColaborador ="dev"):
!
self.__nome = nomeColaborador
self.__salario = salarioColaborador
self.__cargo = cargoColaborador
objetos everywhere
!
def dobrar(numero):
return numero*2
!
def funcao_invocadora(funcao, valor):
return funcao(valor)
!
funcao_invocadora(dobrar, 2)
# 4
!
!
def somar(a=0, b=1):
return a+b
!
print dir(somar)
['__call__', ‘__class__’, '__defaults__', '__delattr__',
'__dict__', '__doc__', '__format__', '__get__',
'__getattribute__', '__globals__', '__hash__', '__init__',
'__module__', '__name__', '__new__', '__repr__',
'__setattr__', '__sizeof__', ‘__str__', 'func_code',
'func_defaults', 'func_dict', 'func_doc', 'func_globals',
‘func_name']
!
somar.func_name
# “somar"
!
somar.func_defaults
# (0, 1)
CPython
(padrão)
!
PyPy
(jit)
!
IronPython
(.net)
!
Jython
(jvm)
como pode ser
usado?
web
desktop
redes
sysadmin
computação

gráfica
computação
científica
web crawling
machine learning
big data
como onde pode
ser usado?
linux windows
unix
mac
androidraspberry
Python without an operating system
http://lwn.net/Articles/641244/
iOS
quem usa
lugar no langpop.com lugar no tiobe.com
popularidade
6º 8º
brasil.gov.br
FBI
CIA civilization IV
yahoomaps
yahoo
disney
blender 3D
NASA
IBM
https://wiki.python.org/moin/OrganizationsUsingPython
como começar?
linux/mac
$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
!
>>>
https://www.python.org/downloads/windows/
windows
bottle
django
flask
tornado
webapp
web2py
cherrypy
pyramid
web.py
frameworks web
plone
turbogears
from bottle import route, run
!
@route('/hello')
def hello():
return "Hello World!"
!
run(host='localhost', port=8080, debug=True)
https://docs.python.org/2/tutorial/
https://developers.google.com/edu/python/
https://cloud.google.com/appengine/docs/python/gettingstartedpython27/introduction
http://www.dextraining.com.br/
comunidade
eventos
RuPy pythonbrasil[11]
dev

camp
https://groups.google.com/forum/#!forum/python-brasil
grupo python brasil
https://mail.python.org/mailman/listinfo
listas de email do python
referências
Fluent Python,
Luciano Ramalho
http://importpython.com/books/
Python in a Nutshell,
Alex Martelli
@felipevolpone

Contenu connexe

En vedette

Legibilidade do código
Legibilidade do códigoLegibilidade do código
Legibilidade do códigoFelipe Volpone
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosSérgio Souza Costa
 
Livro curso de hacker para iniciantes cap 2
Livro curso de hacker para iniciantes cap 2Livro curso de hacker para iniciantes cap 2
Livro curso de hacker para iniciantes cap 2Alax Ricard
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 

En vedette (6)

Legibilidade do código
Legibilidade do códigoLegibilidade do código
Legibilidade do código
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetos
 
Livro curso de hacker para iniciantes cap 2
Livro curso de hacker para iniciantes cap 2Livro curso de hacker para iniciantes cap 2
Livro curso de hacker para iniciantes cap 2
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 

Similaire à Por que aprender 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 PythonAlvaro Oliveira
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Minicurso-Python-01.pptx
Minicurso-Python-01.pptxMinicurso-Python-01.pptx
Minicurso-Python-01.pptxPapirusDig
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Luiz Aldabalde
 
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
 
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
 
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 ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosSérgio Souza Costa
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010Luiz Aldabalde
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609gsroma
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Motalucianacmota
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
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
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado ServidorMario Guedes
 

Similaire à Por que aprender Python (20)

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, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Poo (1)
Poo (1)Poo (1)
Poo (1)
 
Minicurso-Python-01.pptx
Minicurso-Python-01.pptxMinicurso-Python-01.pptx
Minicurso-Python-01.pptx
 
Mergulhando no ecossistema .NET
Mergulhando no ecossistema .NETMergulhando no ecossistema .NET
Mergulhando no ecossistema .NET
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
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 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 ?
 
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
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmos
 
Ecossistema Python
Ecossistema PythonEcossistema Python
Ecossistema Python
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609Python Pythononcampus Uva 060609
Python Pythononcampus Uva 060609
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 

Por que aprender Python