Você está na página 1de 29

Fundamentos de programao

em Python

Introduo a Linguagem Python

Dino Magri

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Agenda

Histria

Por que Python?

Instalao

Mo na massa

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Histria
Guido van Rossum
Universidade de Amsterd - 1982
2005 - 2012 Google
2013 Dropbox
Iniciou a implementao em Dezembro de 1989
Python 2.0 em 2000
Python 3.0 em 2008
Verso 2.7.5 e 3.3.2
Python! E no Phyton, Pyton, Phython, ...
Linguagem de Altssimo Nvel (VHLL)
Ambiente interativo
Licena de cdigo aberto, compatvel com a GPL
3

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


Simples, Legvel, Clara e Elegante
Escrever um simples nome, Seja bem vindo(a)
Java
public class Hello{
public static void main(String args[]) {
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("Digite seu nome:");
String nome = s.nextLine();
System.out.println("\n" + nome + ", Seja bem vindo(a) :)\n");
}
}

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


Simples, Legvel, Clara e Elegante
Escrever um simples nome, Seja bem vindo(a)
C
#include <stdio.h>
int main(){
char nome[200];
printf("Digite seu nome: ");
scanf("%s", nome);
printf("\n %s, Seja bem vindo(a)\n", nome);
return 0;
}

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


Simples, Legvel, Clara e Elegante
Escrever um simples nome, Seja bem vindo(a)
Python
nome = raw_input('Digite seu nome: ')
print ("\n%s, Seja bem vindo(a) :)\n" % nome);

Python oferece mais facilidade para entender.


Vai direto ao ponto. Simples de usar.
Foco no problema, sem perder tempo na sintaxe.
6

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


Baterias Includas
Muitos recursos j esto prontos para serem utilizados, alguns deles:
Banco de dados (Postgres, MySQL, SQLServer, sqlite, ODBC)
Gerao de grficos (matplotlib)
Protocolos de Rede (TCP, UDP, SimpleHTTPServer, urllib, ftplib, poplib, smtplib,
telnetlib, entre outros)
Web (Django, Web2py, Zope/Plone, Pylons, TurboGears)
Criptografia
Interface Grfica (Tkinter, wxPython, PyGtk, PyQt, PyKDE, Pythonwin)
Computao grfica (PyOpenGL, PyGame, PyCUDA, PyGPU)
Cincia (Numarray, Numpy, SciPy, BioPython, AstroPy)
PyScience - http://pyscience-brasil.wikidot.com/
Processamento de Imagens (PIL, PythonMagick, Gimp-python, OpenCV)
7

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?

http://www.python.org/about/quotes/
http://en.wikipedia.org/wiki/Python_(programming_language)#Use
8

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


Conversa com outras linguagens
Cython - http://cython.org/ - C/C++
Jython - http://www.jython.org/ - Java
IronPython - http://ironpython.net/ - .NET
PyPy - http://pypy.org/ - Python
Python for Delphi - https://code.google.com/p/python4delphi/ - Delphi
LunaticPython - http://labix.org/lunatic-python - Lua

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-plataforma

10

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-plataforma, MESMO

11

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-paradigma
Programao Estruturada
Programao Orientada a Objetos
Programao Funcional

12

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-paradigma - Programao Estruturada
dic = {}
def incluir(item):
quantidade = dic.get(item, 0) + 1
dic[item] = quantidade
def contar(item):
return dic[item]

13

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-paradigma - Programao Estruturada
palavra = 'inconstitucional
for letra in palavra:
incluir(letra)
for letra in sorted(set(palavra)):
print letra, contar(letra)

14

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-paradigma - Programao Orientada a Objetos
class Contador(object):
def __init__(self):
self.dic = {}
def incluir(self, item):
quantidade = self.dic.get(item, 0) + 1
self.dic[item] = quantidade
def contar(self, item):
return self.dic[item]

15

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-paradigma - Programao Orientada a Objetos
cont = Contador()
palavra = 'inconstitucional'
for letra in palavra:
cont.incluir(letra)
for letra in sorted(set(palavra)):
print letra, cont.contar(letra)

16

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


multi-paradigma - Programao Funcional
Fibonnaci 10 primeiro nmeros
print map(lambda x,f=lambda x,f:(x<=1) or (f(x-1,f)+f(x-2,f)):
int(f(x,f)),range(10))

17

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python? Referncia: http://goo.gl/jRNcTA

18

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


Comunidade e Documentao PT_BR
Lista de Email: 2689

Dados do dia 15/09/2013 s 9:30 PM


https://groups.google.com/forum/#!aboutgroup/python-brasil
19

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Por que Python?


Comunidade e Documentao PT_BR
Tutorial de Python - http://turing.com.br/pydoc/2.7/tutorial/index.html
Aprenda Computao com Python - https://code.google.com/p/aprendacompy/
Python para desenvolvedores - http://ark4n.wordpress.com/python/
Introduo a programao com Python - http://www.nilo.pro.br/iprog/
Livros e outros Links - http://www.python.org.br/wiki/AprendaMais

20

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Instalao
Linux & Mac
Linux
A maioria das distribuies Linux j possui o interpretador Python prinstalado.
Mac
Tambm j acompanham um interpretador Python pr-instalado que pode
ser atualizado com a ltima verso no site oficial da linguagem Python

21

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Instalao
Windows
1. Acesse o site www.python.org/getit , baixe a verso atual e siga os
passos (o famoso, next, next, next, finish J)
2. Baixar o setuptools para instalar as baterias extras - https://
pypi.python.org/pypi/setuptools/1.1.5#windows

22

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Instalao
Windows
1. Configurar a varivel de ambiente (path) para poder executar scripts
pelo terminal
1. Acesse Painel de Controle -> Sistema e Segurana ->
Sistema e clicar na opo Configuraes avanadas do
sistema do lado esquerdo.
2. Na aba Avanado, clicar no boto Variveis de Ambiente
3. Selecionar a varivel do sistema Path e clique no boto
Editar
4. Adicionar o diretrio de instalao do Python na caixa de texto,
normalmente C:\Python27

23

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Instalao
Windows

24

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Instalao
2. Instalao setuptools
a) Extrair o setuptools-1.1.x.tar.gz
b) Acessar a pasta via terminal (cmd ou powershell) e digitar
a) python ez_setup-py
c) Incluir no Path o C:\Python\2X\Scripts

25

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Mo na Massa!

26

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Mo na Massa!
Antes de comear:
1. Abra o terminar (cmd ou powershell) e digite:
easy_install web.py
2. Agora abra seu editor de texto preferido

27

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

# -*- coding: utf-8 -*import web


urls = (
'/', 'index'
)
class index:
def GET(self):
return "Oi, mundo!"
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()

28

MBA em Desenvolvimento de Inovaes


Tecnolgicas para WEB

Obrigado!
Dvidas e Comentrios
Email: contato@dinomagri.com

29

Você também pode gostar