SlideShare uma empresa Scribd logo
Sematec 2014
Palestrantes:
Álvaro Oliveira e Guilherme Esmeraldo
Roteiro
 Breve Histórico
 Características
 Por que Python?
 Quem Usa?
 Como Usar?
Breve Histórico
 Linguagem Criada em 1990, Por Guido van Rossun
 Foco em usuários como físicos e engenheiros
 Python foi concebida através de uma linguagem chamada
ABC
Características
 Linguagem Interpretada
 Tripagem dinâmica
 Controle de Bloco é feita por indentação
 Oferece tipos de alto nível
 E orientado a objetos
 Fácil aprendizado
 Open Source
 Biblioteca padrão muito rica
Características
 Multiplataforma:
Linux/Unix, Windows, Symbian, MacOSX, etc
 Multiparadigma:
Procedural, Orientado a Objetos e Funcional
Por que Python?
 Os conceitos fundamentais da linguagem são simples de entender;
 A sintaxe do Python é clara e fácil de aprender;
 Os tipos pré-definidos em Python são poderosos e simples de usar;
 O interpretador Python permite aprender e testar rapidamente
trechos de código
 Python é expressivo, com abstrações de alto nível => código curto e
rápido desenvolvimento
Por que Python?
 Prototipação rápida
 Desenvolvimento Web
 Acesso a banco de dados
 Código “enxuto”!
 Computação numérica e científica
 Jogos
 3D
Quem Usa?
 Google (aplicações Web).
 Yahoo (aplicações Web).
 Microsoft (IronPython: Python para .NET).
 Nokia (disponível para as linhas recentes de celulares e
PDAs).
 Disney (animações 3D).
 Funceme(aplicações com Radares)
 Mais casos:
http://www.python.org/about/success/
Como Usar?
 Nas linguagens Interpretadas é executada utilizando o
interpretador lê o código fonte e interpreta diretamente,
durante a sua execução.
 Tanto pode utilizar no Shell ou Uma IDE
Instalando
 Instalando
 Entre no link http://www.python.org/getit/ e baixe
para sua plataforma.
 No windows: clique duas vezes, next, next, … e finish.
 No linux: qualquer distribuíção já vem com Python!
IDE Disponíveis
 Idle :
 Já vem com o Python. É bem simples de ser usado também.
 Komodo-Edit:
 E uma excelente opção de editor, bastante rico em recursos tais como
autocomplete, multi-language e outros.
 Eclipse:
 Ideal para desenvolvimento Java. Mas existem plugins para se desenvolver
em Python.
 Pycham
 E proprietário, Possui um conjunto de ferramentas úteis para um
desenvolvimento produtivo.
Utilizando o Shell
 Para chamar o interpretador Python apenas digite “python” no
prompt do shell:
 Quando o shell é iniciado aparecerão três ‘>’ (“>>>”) indicando que
ele está ativo e pode receber comandos
$ python
Python 2.5.1 (r251:54863, Sep 4 2007, 19:00:19)
[GCC 4.1.2] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
>>>
Meu Primeiro Programa
Saida
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
Print “Hello, World!”
JAVA
Python
Saída
 Salvar com a extensão .py
Exemplo: alomundo.py
 Entre na pasta que está o arquivo
cd nomedapasta
 Em seguida, rodar o comando:
python alomundo.py
Definições de Variáveis
 Sintaxe
nomeDaVariavel = valorAtribuido
 Descobrir o tipo atual de uma variável, utiliza a função type()
 type(nome)
nome = “python” #String
num = 1 # valor inteiro
preco = 10.99 # valor ponto flutuante
t = True # valor booleano
Entrada
 Sintaxe:
nomeDaVariavel = input(’Texto para Saída’)
 Para capturar informações do usuário podemos usar duas
funções:
input(“mensagem”)
Espera que o usuários digite comandos
ou valores
raw_input(“mensagem”)
Espera strings
Delimitações
 Uso de “;” no fim de comandos não é obrigatório
 Blocos delimitados por identação
def soma(a):
. . . .return a+1
print soma(10)
Não é um erro
sintático, mas é
desnecessário
e portanto
deselegante
Comentários
 Comentários de são feitos usando ‘#’
 Para comentários de bloco pode-se usar string multilinhas com
‘”””’
“”” def inc(a):
. . . .return a+1”””
#print inc(10)
Exercício:
1. Faça um programa que leia da entrada padrão um
número, em seguida imprima ele na tela.
2. Agora faça um programa que leia dois números e em
seguida imprime o resultado da multiplicação deles
Controle de Fluxo
 Nada de parênteses! Nada de chaves!
 IF
if expressão1:
Comando1
...
elif expressão2:
Comando3
...
else:
...
Usando If
#! /usr/bin/python
# -*- coding: iso-8859-1 -*-
x = input("Entre com um numero inteiro: ")
if x < 0:
print 'Numero negativo'
elif x == 0:
print 'Zero'
elif x == 1:
print 'Um'
else:
print 'Numero positivo'
Controle de Fluxo
 O loop While, tem como função repetir um bloco de
comando ate que aconteça uma parada.
while expressão2:
Comando3
...
Controle de Fluxo
 O for em Python podemos “varrer” uma sequencia que se difere
de outra linguagens por ser utilizado como iterador de progressão
aritmética.
for variavel in rage(ni,nf-1):
Cria uma lista a partir do
inteiro ni até o inteiro nf-1
for variavel in lista
Exemplo for
for contador in range(1,6):
print contador
1
2
3
4
5
Estruturas de Dados
 Lista[ ]
 Lista é uma seqüência de valores indexadas por um inteiro. Uma lista pode
conter qualquer tipo de valor, incluindo valores de tipos mistos.
numero = [ 1, 2,3]
nomes = ['maria','paulo','jose']
mistos=[1,’maria’,2]
Estrutura de Dados: Listas [ ]
Os elementos da lista podem ser acessados por meio de índices que
vão de 0 até o comprimento da lista-1
lista = [ ‘maria’,’paulo’,’jose’,’carlos’]
0 1 2 3
>>> lista [0]
maria
Estrutura de Dados: Listas [ ]
Fatias, ou slices, de uma lista podem ser geradas facilmente
com o “:”
Lista = [inicio:final]
>>> n = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ]
>>> n[2:4]
[3, 4]
Estrutura de Dados: Listas [ ]
Métodos Uteis
1
2
4
3
0
1
2
3
lista.extend(lista2)lista.append(8)
lista.pop()
lista.remove(2)
Exercício:
1.Faça um programa que leia da entrada padrão um
número, em seguida adicione e imprima a lista .
2.Seguindo o exemplo anterior:
Crie uma nova lista e adicione na lista anterior;
Remova um elemento na Posição 4;
Imprima toda a lista;
Python: Orientado a
Objetos
Python: Orientado a Objeto
“Orientação a objetos, OO, é um termo que descreve uma série de
técnicas para estruturar soluções para problemas computacionais.
é um paradigma de programação no qual um programa e
estruturado em objetos, e que enfatiza os aspectos abstração,
encapsulamento, polimorfismo e herança.”
E tudo é um Objeto
Tudo em Python é no fim um objeto!
list3.append(‘a’)
Novos objetos (classes) podem ser facilmente adicionados
aos tipos de dados já existentes em Python!
De fato, programar em Python é normalmente feito de
forma orientado a objetos!
Definição de uma Classe
A forma mais simples de definição de uma classe pode ser
descrita dessa maneira:
>>> class NomeDaClasse:
<comando-1>
.
.
.
<comando-N>
Definição de um Metodo
Utiliza o comando def, para definir um método de uma
classe:
>>> class HelloMundo:
def alomundo(self):
print “Ola Mundo“
Instanciando uma Classe
Quando criamos a classe HelloMundo, criamos um novo
tipo de dado. Os membros deste novo tipo são chamados
instâncias deste tipo ou objetos. Criar uma nova instância
é instanciar. Para instanciar o objeto HelloMundo:
...
alo=HelloMundo()
alo.alomundo()
Definição de uma Classe
Exemplo:
class HelloMundo: #Definindo a Classe
def alomundo(self): #Definindo o Método
print “Ola Mundo“
alo=HelloMundo() #criando uma instância da classe
alo.alomundo()
Definição da Classe
Privados
Atributos e métodos que só podem ser acessados
dentro da classe, usa-se “__” no início do nome
Protected
Apenas convenção e usa-se apenas um “_” no
nome de métodos ou atributos, ex. _telefone
class musica:
_compositor=“Luiz Gonzaga”
__ritmo=“Baiao”
m=musica()
m._compositor
Definição da Classe
class Contador(object):
def __init__(this):
this.contagem = {}
def incluir(this, item):
qtd = this.contagem.get(item, 0) + 1
this.contagem[item] = qtd
def contar(this, item):
return this.contagem[item]
Definição da Classe
class Contador(object):
def __init__(this):
this.contagem = {}
def incluir(this, item):
qtd = this.contagem.get(item, 0) + 1
this.contagem[item] = qtd
def contar(this, item):
return this.contagem[item]
Em Python
Não Usamos
this
Definição da Classe
class Contador(object):
def __init__(self):
self.contagem = {}
def incluir(self, item):
qtd = self.contagem.get(item, 0) + 1
self.contagem[item] = qtd
def contar(self, item):
return self.contagem[item]
Usamos
self
Argumento do Método self
•Em todos métodos associados à instância definido dentro
de uma classe devem ter o argumento self definido como
primeiro argumento.
•Maior flexibilidade na chamada de métodos.
•É a referência para a própria instância da classe
•Mesmo que você tem um método que não recebe nenhum
argumento, ainda assim você deve definir que este tenha o
argumento self.
Construtor __init__( )
é um método especial que é invocado automaticamente
quando um novo objeto é criado e que inicializa os
atributos deste objetos.
E opcional!
class Hello:
def _init_ (self,nome):
self.nome = nome
Definição da Classe
Herança
Uma classe pode herdar a definição de outra classe
Python não tem a palavra ‘extends’ como em Java
A Herança multipla é suportada
SuperClasse
SubClasse SubClasse
Exemplo Herança
Para definir uma subclasse, coloque o nome da superclasse entre
parênteses depois do nome da subclasse na primeira linha da
definição.
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
_numRodas=4
gol = Carro()
gol.andar()
Sobrecarga
Redefinição de métodos já existente, com o
mesmo nome.
Quando um método da classe pai é redefinido
na classe filha
 Diz-se que o método foi sobrecarregado
(overloaded)
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
print ' Andei de Carro'
gol = Carro()
gol.andar()
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
print ' Andei de Carro'
gol = Carro()
gol.andar()
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
print ' Andei de Carro'
gol = Carro()
gol.andar()
Andei de
Carro
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
Veiculo.andar(self)
gol = Carro()
gol.andar()
Você pode chamar
o método da
superclasse
Redefinindo Métodos
Você pode redefinir métodos declarados na superclasse
O mesmo vale para o método __init__ .
No método __init__ das subclasses:
parentClass.__init__(self,x,y)
onde parentClass é o nome da classe pai.
Redefinindo Métodos
class Veiculo:
def __init__(self,numPassageiros):
self.numPassageiros = numPassageiros
def andar(self):
print "Andei"
class Carro(Veiculo):
_numRodas= None
def __init__(self, _numRodas,numPassageiros):
Veiculo. __init__(self,numPassageiros)
self._numRodas= _numRodas
def qtdPassageiros(self):
print self.numPassageiros
gol = Carro(4,6)
gol.qtdPassageiros()
Construtor da
classe filha tem
que chamar o
da
classe pai
Herança
Polimorfismo
Polimorfismo literalmente significa várias formas.
Em Python, um método é polimórfico se ele tem diferentes
implementações numa família de classes
Ex:
O operador ‘+’ é polimórfico !
se refere a diferentes operações quando usado, por exemplo, em
inteiros e strings
Exemplo Polimorfismo
class Mamifero:
def som(self):
print 'emitir um som'
class Homem(Mamifero):
def som(self):
print ' Oi'
class Cachorro(Mamifero):
def som(self):
print ' Wuff ! Wuff'
class Gato(Mamifero):
def som(self):
print ' Meaww'
mamifero = Mamifero()
mamifero.som()
animais = [ Homem(),Cachorro(),Gato()]
for animal in animais:
animal.som()
Exercício
Crie uma Classe Chamada Conta Corrente,
declarando o construtor com atributo numero e o
método creditar() e debitar()
Crie uma Classe Poupança tendo como atributo taxaDeJuros e
com o metodo renderJuros(), que herda de Conta Corrente e
Exercício
Exercício
Introdução a HTML
Programando para web com python - Introdução a Python
O que é HTML?
•HTML é a sigla para Hyper Text Markup Language.
•HTML não é uma linguagem de programação.
•HTML é uma linguagem de marcação.
•As marcações são feitas através de <tags>.
Tags
•Deve-se sempre abrir e fechar as tags.
•São os textos que ficam entre < > ou < />.
•Geralmente são sempre pares,<p> e </p>.
•Finalidade é ler o documento Html e exibir o
conteúdo da página.
•Não exibem as tags mas usam as tags para
interpretar o conteúdo das mesmas.
Browsers e o HTML
Exemplos de Browsers
•Apenas de um editor de texto!
•Então abra o Notepad ou Kate e mão a obra!
Do que precisamos para começar?
Como criar um arquivo HTML
•Abrir o editor de textos.
•Criar um novo arquivo em branco.
•Salvar o arquivo com a extensão .html
•Iniciar a edição do arquivo.
Arquivo básico HTML
<html>
<head>
<title>Minha página de Internet</title>
</head>
<body>
...Conteúdo da página...
</body>
</html>
•O texto entre <html> e </html> descreve o conteúdo
da página.
•O texto entre <head> e </head> é o cabeçalho da
página, não é exibido no browser.
•O texto entre <body> e </body> é o conteúdo visível
da página no browser.
•O texto entre <title> e </title> é o título da pagina
Cabeçalhos HTML
•Os cabeçalhos são definidos com as tags <h1> até
<h6>.
•Exemplo:
•<h1>Isto é um cabeçalho</h1>
•<h2>Isto é um cabeçalho</h2>
•<h3>Isto é um cabeçalho</h3>
Parágrafos HTML
•Os parágrafos HTML são definidos com a tag <p>.
• Caso tenha necessidade de quebrar alguma linha,
utilize a tag <br> para fazer a quebra
•Exemplo:
•<p>Isto é um parágrafo.</p>
•<p>Isto é um outro parágrafo. <br>
• Isto ficará na linha de baixo
•</p>
Replique a seguinte pagina da web:
Programando para web com python - Introdução a Python
Estilizando textos:
Para colocar efeito em alguma frase ou palavra
podemos utilizar as seguintes tag’s no documento:
<b>, <i>, <u> e <s>
Exemplo:
<b> isto é uma frase em NEGRITO </b>
<i> isto é uma frase em ITALICO</i>
<u> isto é uma frase SUBLINHADA</u>
<s> isto é uma frase TACHADA</s>
Programando para web com python - Introdução a Python
Atributos HTML
Elementos HTML podem ter atributos.
Atributos fornecem informação adicional sobre um
elemento.
Atributos são sempre especificados na tag inicial.
Atributos vem em pares como name="value".
Valor de atributos devem sempre estar entre aspas
duplas “ ”.
Exemplos de atributos:
Bgcolor: utilizado para definir a cor de fundo da
página web
Background: utilizado para definir uma imagem de
fundo da página web.
Text: utilizado para definir a cor dos textos da página
web
align: utilizado para alinhar o texto.
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
Tag <font>
Vimos que o atributo “text” modifica a cor de todo o
conteudo do body. Para modificar apenas a cor de uma
frase, ou uma palavras colocamos a frase dentro da tag
<font> com o atributo color. Caso deseje mudra o
tamanho da fonte, utilize o atributo size.
Programando para web com python - Introdução a Python
Criando Listas em HTML
Em HTML podemos criar basicamente três tipos de
listas: listas de definição, listas não numeradas e
listas numeradas.
Lista não numeradas:
As listas não numeradas funcionam semelhantes aos
marcadores existentes em aplicativos como editores
de texto. Para criarmos listas não numeradas
utilizamos as tags <UL> para iniciarmos a lista e <LI>
para inserirmos itens na lista.
Programando para web com python - Introdução a Python
Lista numeradas:
As listas numeradas são as mais comuns, a cada item
inserido a numeração da lista cresce.
Pode se utilizar números romanos( I,II,III), números
comuns (1,2,3) ou até letras (a,b,c).
Para criarmos listas numeradas utilizamos as tags OL
para iniciarmos a lista e LI para inserirmos itens na
lista.
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
Python Para
Web:
Cherrypy
Características
Uma simples e poderosa biblioteca do Python
Um framework Python orientada a objetos web.
Pacote auto-contido, só necessita do Python
Não intrusivo
Já vem com Servidor web
Separa o código do layout do HTML
É Gratis
Por que Cherrypy
Tem uma interface limpa;
 É muito pythônico; ou seja, ele segue as convenções do
Python muito bem (código é escassa e não poluente);
Maturidade, tem muitas versões estáveis finais;
Tem uma comunidade dedicada que desenvolve
aplicativos implementados CherryPy;
Perfil do Desenvolvedor
Algum conhecimento da linguagem de
programação Python.
Alguma experiência com programação orientada a
objetos básica.
Alguns conhecimentos de HTML, que é necessária
a construção de páginas web.
Instalação Linux
Baixe a versão mais recente CherryPy do repositório .
Descompacte / untar os arquivos
Vá para o diretório criado pela extração do arquivo.
Tipo "python setup.py install" para instalar o módulo
CherryPy
Instalação Windows
Para instalar o CherryPy basta fazer um download da
biblioteca:
https://pypi.python.org/pypi/CherryPy
Selecione o arquivo que termina em "exe“ e next
Algumas Definições: Servidor Web
É uma interface que lida com o protocolo HTTP
Seu objetivo é transformar pedidos HTTP em entidades
que são passadas para o servidor de aplicação e então
transformar a informação retornada pelo servidor de
aplicação em uma resposta HTTP.
Algumas Definições
Aplicação:
É um pedaço de software que pega uma unidade de informação
e aplica nela a regra do negócio e retorna uma unidade
processada de informação.
Servidor de Aplicação:
É um componente que hospeda uma ou mais aplicações.
Servidor de Aplicação Web:
É simplesmente a junção de um servidor web com
um servidor de aplicação em um componente.
Algumas Definições
Objetos de Publicação
Qualquer objeto agregado ao objeto root é dito objeto publicado, isto
significa que o objeto é acessível via rotina interna de mapeamento do
objeto URL.
Entretanto, não significa que o objeto é diretamente acessível via
Web, para que isto ocorra o objeto deve ser exposto
Expondo Objetos
•A exposição de objetos em cherrypy são permitidos pelo atributo
exposed, que pode ser diretamente setados para objetos que são
chamados
•Existe duas formas:
class Root:
def index(self):
...
index.exposed = True
@cherrypy.expose
def index(self):
Minha Primeira Aplicação
# -*- coding: iso-8859-1 -*- # Alfabeto Latino
import cherrypy # carregando biblioteca
class HelloWorld:
def index(self):
return "Alô Mundo"
index.exposed = True # permite definir quais métodos serão expostos na Web
cherrypy.quickstart(HelloWorld(),’/’) #publica instância da classe e inicia servidor
URI-> http://localhost:8080
Minha Primeira Aplicação
# -*- coding: iso-8859-1 -*- # Alfabeto Latino
import cherrypy # carregando biblioteca
class HelloWorld:
def index(self):
return "Alô Mundo"
index.exposed = True # permite definir quais métodos serão expostos na Web
cherrypy.quickstart(HelloWorld(),’/ ’) #publica instância da classe e inicia servidor
URI-> http://localhost:8080
Neste caso particular o site
raiz é mapeado pelo método
index()
Arquivo de configuração do CherryPy
O CherryPy usa um simples arquivo de configuração para
customizar seu comportamento.
•Para executar este arquivo de configuração para o site use
cherrypy.config.update(arquivo_ou_dicionário)
#global.cfg
[global]
server.socket_port = 8000
server.thread_pool = 10 # quantas thread o servidor pode iniciar
tools.sessions.on = True # habilita sessão, usada sites complexos
tools.staticdir.root = "/home/site" # diretório onde estão aplic.
estáticas
[/static]
tools.staticdir.on = True
tools.staticdir.dir = "static"
Encontrando o objeto correto
Ao receber uma URI, o CherryPy reparte ela em componentes de
caminho(path) e procura um objeto no site que é a melhor resposta
para esta URI particular.
Para cada componente de caminho ele tenta encontrar um objeto de
mesmo nome, começando pela raiz(root) e vai descendo por cada
componente até encontrá-lo.
Recebendo dados de Formulários HTML
Qualquer método pode receber dados adicionais do formulário
HTML usando argumentos (keyword arguments).
<form action=“nomeMetodo " method="post">
campos do formulário
aqui dentro das tags
</form> GET é o método HTML padrão.
Para submeter um formulário
HTML usando POST é preciso
especificar no atributo “method”
o valor “POST”.
Duvidas?
Anúncio

Recomendados

Introdução a linguagem Python
Introdução a linguagem Python
Luciano Ramalho
 
Programando com Python
Programando com Python
Diemesleno Carvalho
 
Python Collections Tutorial | Edureka
Python Collections Tutorial | Edureka
Edureka!
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - Português
Helio Colombe
 
Introduction to numpy
Introduction to numpy
Gaurav Aggarwal
 
Introduccion a Python
Introduccion a Python
guest44e947
 
Minicurso Prolog
Minicurso Prolog
Luís Adelmo Barbosa Leite
 
Introdução ao GitHub e Git
Introdução ao GitHub e Git
Igor Steinmacher
 
Effective testing with pytest
Effective testing with pytest
Hector Canto
 
Python - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Python 101 breve introducción al lenguaje python
Python 101 breve introducción al lenguaje python
emilioferreyra
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
Adriano Teixeira de Souza
 
Curso de Java (Parte 2)
Curso de Java (Parte 2)
Mario Sergio
 
Java Arrays
Java Arrays
Jussi Pohjolainen
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
Albert Bitencourte de Lemos
 
Apresentação python fábio jr alves
Apresentação python fábio jr alves
Grupython Ufla
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
inovex GmbH
 
Python e django na prática
Python e django na prática
Rafael Cassau
 
Python - Introdução
Python - Introdução
fabiocerqueira
 
Python Class | Python Programming | Python Tutorial | Edureka
Python Class | Python Programming | Python Tutorial | Edureka
Edureka!
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
Felipe J. R. Vieira
 
Basic Python Programming: Part 01 and Part 02
Basic Python Programming: Part 01 and Part 02
Fariz Darari
 
Linguagem Prolog - Antonio Rufino
Linguagem Prolog - Antonio Rufino
Antonio Rufino
 
Python Loops Tutorial | Python For Loop | While Loop Python | Python Training...
Python Loops Tutorial | Python For Loop | While Loop Python | Python Training...
Edureka!
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
Alphorm
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Nalee Jang
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
Gilson Filho
 
Python no Celular
Python no Celular
iuridiniz
 

Mais conteúdo relacionado

Mais procurados (20)

Effective testing with pytest
Effective testing with pytest
Hector Canto
 
Python - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Python 101 breve introducción al lenguaje python
Python 101 breve introducción al lenguaje python
emilioferreyra
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
Adriano Teixeira de Souza
 
Curso de Java (Parte 2)
Curso de Java (Parte 2)
Mario Sergio
 
Java Arrays
Java Arrays
Jussi Pohjolainen
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
Albert Bitencourte de Lemos
 
Apresentação python fábio jr alves
Apresentação python fábio jr alves
Grupython Ufla
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
inovex GmbH
 
Python e django na prática
Python e django na prática
Rafael Cassau
 
Python - Introdução
Python - Introdução
fabiocerqueira
 
Python Class | Python Programming | Python Tutorial | Edureka
Python Class | Python Programming | Python Tutorial | Edureka
Edureka!
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
Felipe J. R. Vieira
 
Basic Python Programming: Part 01 and Part 02
Basic Python Programming: Part 01 and Part 02
Fariz Darari
 
Linguagem Prolog - Antonio Rufino
Linguagem Prolog - Antonio Rufino
Antonio Rufino
 
Python Loops Tutorial | Python For Loop | While Loop Python | Python Training...
Python Loops Tutorial | Python For Loop | While Loop Python | Python Training...
Edureka!
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
Alphorm
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Nalee Jang
 
Effective testing with pytest
Effective testing with pytest
Hector Canto
 
Python - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Python 101 breve introducción al lenguaje python
Python 101 breve introducción al lenguaje python
emilioferreyra
 
Curso de Java (Parte 2)
Curso de Java (Parte 2)
Mario Sergio
 
Apresentação python fábio jr alves
Apresentação python fábio jr alves
Grupython Ufla
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras
 
Deploying Foreman in Enterprise Environments
Deploying Foreman in Enterprise Environments
inovex GmbH
 
Python e django na prática
Python e django na prática
Rafael Cassau
 
Python Class | Python Programming | Python Tutorial | Edureka
Python Class | Python Programming | Python Tutorial | Edureka
Edureka!
 
Basic Python Programming: Part 01 and Part 02
Basic Python Programming: Part 01 and Part 02
Fariz Darari
 
Linguagem Prolog - Antonio Rufino
Linguagem Prolog - Antonio Rufino
Antonio Rufino
 
Python Loops Tutorial | Python For Loop | While Loop Python | Python Training...
Python Loops Tutorial | Python For Loop | While Loop Python | Python Training...
Edureka!
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
Alphorm
 
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Red Hat OpenStack 17 저자직강+스터디그룹_3주차
Nalee Jang
 

Destaque (20)

Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
Gilson Filho
 
Python no Celular
Python no Celular
iuridiniz
 
Desenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em Python
Relsi Maron
 
Canivete python
Canivete python
Anderson Dantas
 
Curso de Python e Django
Curso de Python e Django
Osvaldo Santana Neto
 
Aprendendo python
Aprendendo python
Victor Marcelino
 
Introdução à Programação Python e Tk
Introdução à Programação Python e Tk
Carlos Campani
 
Python - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Orientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
Python para iniciantes
richardsonlima
 
Tratamento de exceções
Tratamento de exceções
Alvaro Oliveira
 
Padrao de projeto iterator
Padrao de projeto iterator
Alvaro Oliveira
 
Processamento paralelo
Processamento paralelo
Alvaro Oliveira
 
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
Humberto Diógenes
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Alvaro Oliveira
 
Canivete suíço do Python
Canivete suíço do Python
Douglas Soares de Andrade
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação Python
Carlos Schults
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
Osvaldo Santana Neto
 
Qualidade de software
Qualidade de software
Alvaro Oliveira
 
Python 01
Python 01
Bruno Catão
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
Gilson Filho
 
Python no Celular
Python no Celular
iuridiniz
 
Desenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em Python
Relsi Maron
 
Introdução à Programação Python e Tk
Introdução à Programação Python e Tk
Carlos Campani
 
Python - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Orientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
Python para iniciantes
richardsonlima
 
Tratamento de exceções
Tratamento de exceções
Alvaro Oliveira
 
Padrao de projeto iterator
Padrao de projeto iterator
Alvaro Oliveira
 
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
Humberto Diógenes
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Alvaro Oliveira
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação Python
Carlos Schults
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
Osvaldo Santana Neto
 
Anúncio

Semelhante a Programando para web com python - Introdução a Python (20)

Linguagem de Programação Python
Linguagem de Programação Python
Junior Sobrenome
 
Python, a arma secreta do Google
Python, a arma secreta do Google
Luciano Ramalho
 
Python Emsl2009
Python Emsl2009
Julio Cesar Eiras Melanda
 
Aula python
Aula python
Julio Cesar Eiras Melanda
 
Minicurso Python
Minicurso Python
rodrigopex
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução Python
Gleison Rodrigues
 
Python
Python
Álvaro Justen
 
Python Training #1 ed.6
Python Training #1 ed.6
Fabio Spanhol
 
Python Training #1, ed. 6
Python Training #1, ed. 6
Fabio Spanhol
 
Python Training #1 - ed5
Python Training #1 - ed5
Fabio Spanhol
 
Minicurso Python
Minicurso Python
guestac3de
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
lucianacmota
 
Administração de sistemas usando Python
Administração de sistemas usando Python
Helio Loureiro
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
Marcos Aurelio Barranco
 
Introdução à Programação em Python
Introdução à Programação em Python
Rodrigo Hübner
 
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
edvonaldosantos
 
Python2.5.ppt
Python2.5.ppt
wildcat9335
 
A lógica do Python e seus termos
A lógica do Python e seus termos
Valore I/O
 
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 1
Flávio Ribeiro
 
Apostila c++ básico
Apostila c++ básico
André Vítor Monteiro
 
Linguagem de Programação Python
Linguagem de Programação Python
Junior Sobrenome
 
Python, a arma secreta do Google
Python, a arma secreta do Google
Luciano Ramalho
 
Minicurso Python
Minicurso Python
rodrigopex
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução Python
Gleison Rodrigues
 
Python Training #1 ed.6
Python Training #1 ed.6
Fabio Spanhol
 
Python Training #1, ed. 6
Python Training #1, ed. 6
Fabio Spanhol
 
Python Training #1 - ed5
Python Training #1 - ed5
Fabio Spanhol
 
Minicurso Python
Minicurso Python
guestac3de
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
lucianacmota
 
Administração de sistemas usando Python
Administração de sistemas usando Python
Helio Loureiro
 
Introdução à Programação em Python
Introdução à Programação em Python
Rodrigo Hübner
 
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
edvonaldosantos
 
A lógica do Python e seus termos
A lógica do Python e seus termos
Valore I/O
 
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 1
Flávio Ribeiro
 
Anúncio

Último (12)

Certified SAFe 6 Lean Portfolio Manager
Certified SAFe 6 Lean Portfolio Manager
Adail Viana Neto
 
A-Historia-do-Java-Uma-Linguagem-que-Transformou-o-Cenario-da-Programacao.pptx
A-Historia-do-Java-Uma-Linguagem-que-Transformou-o-Cenario-da-Programacao.pptx
destruidorschirmer
 
G.6 Avarias Mais Comuns em Computadores TIC2.pptx
G.6 Avarias Mais Comuns em Computadores TIC2.pptx
vieirapatricio94
 
POAN-1 trabalho de antena de microfita.pptx
POAN-1 trabalho de antena de microfita.pptx
joaquimpaulo2306
 
SISTEMAS OPERACIONAIS DE COMPUTADORES PARTE 1
SISTEMAS OPERACIONAIS DE COMPUTADORES PARTE 1
jarlisonsantos1985
 
Capítulo 7 - Redes de computadores multimídia.ppt
Capítulo 7 - Redes de computadores multimídia.ppt
ssuser0a4331
 
Como Criar uma Partição Bootável no HD Interno.pptx
Como Criar uma Partição Bootável no HD Interno.pptx
vieirapatricio94
 
Breve Histórico do Computador [2 de 2].pdf
Breve Histórico do Computador [2 de 2].pdf
jarlisonsantos1985
 
PPT - Capítulo 6 - Redes sem fio e redes móveis.ppt
PPT - Capítulo 6 - Redes sem fio e redes móveis.ppt
ssuser0a4331
 
A-Historia-da-Programacao-Orientada-a-Objetos.pptx
A-Historia-da-Programacao-Orientada-a-Objetos.pptx
destruidorschirmer
 
Joao Claudio Nunes Carvalho-Classificacao de filmes do Netflix.docx
Joao Claudio Nunes Carvalho-Classificacao de filmes do Netflix.docx
ssuser1712ed
 
Certified SAFe 6 Agilist
Certified SAFe 6 Agilist
Adail Viana Neto
 
Certified SAFe 6 Lean Portfolio Manager
Certified SAFe 6 Lean Portfolio Manager
Adail Viana Neto
 
A-Historia-do-Java-Uma-Linguagem-que-Transformou-o-Cenario-da-Programacao.pptx
A-Historia-do-Java-Uma-Linguagem-que-Transformou-o-Cenario-da-Programacao.pptx
destruidorschirmer
 
G.6 Avarias Mais Comuns em Computadores TIC2.pptx
G.6 Avarias Mais Comuns em Computadores TIC2.pptx
vieirapatricio94
 
POAN-1 trabalho de antena de microfita.pptx
POAN-1 trabalho de antena de microfita.pptx
joaquimpaulo2306
 
SISTEMAS OPERACIONAIS DE COMPUTADORES PARTE 1
SISTEMAS OPERACIONAIS DE COMPUTADORES PARTE 1
jarlisonsantos1985
 
Capítulo 7 - Redes de computadores multimídia.ppt
Capítulo 7 - Redes de computadores multimídia.ppt
ssuser0a4331
 
Como Criar uma Partição Bootável no HD Interno.pptx
Como Criar uma Partição Bootável no HD Interno.pptx
vieirapatricio94
 
Breve Histórico do Computador [2 de 2].pdf
Breve Histórico do Computador [2 de 2].pdf
jarlisonsantos1985
 
PPT - Capítulo 6 - Redes sem fio e redes móveis.ppt
PPT - Capítulo 6 - Redes sem fio e redes móveis.ppt
ssuser0a4331
 
A-Historia-da-Programacao-Orientada-a-Objetos.pptx
A-Historia-da-Programacao-Orientada-a-Objetos.pptx
destruidorschirmer
 
Joao Claudio Nunes Carvalho-Classificacao de filmes do Netflix.docx
Joao Claudio Nunes Carvalho-Classificacao de filmes do Netflix.docx
ssuser1712ed
 

Programando para web com python - Introdução a Python

  • 2. Roteiro  Breve Histórico  Características  Por que Python?  Quem Usa?  Como Usar?
  • 3. Breve Histórico  Linguagem Criada em 1990, Por Guido van Rossun  Foco em usuários como físicos e engenheiros  Python foi concebida através de uma linguagem chamada ABC
  • 4. Características  Linguagem Interpretada  Tripagem dinâmica  Controle de Bloco é feita por indentação  Oferece tipos de alto nível  E orientado a objetos  Fácil aprendizado  Open Source  Biblioteca padrão muito rica
  • 5. Características  Multiplataforma: Linux/Unix, Windows, Symbian, MacOSX, etc  Multiparadigma: Procedural, Orientado a Objetos e Funcional
  • 6. Por que Python?  Os conceitos fundamentais da linguagem são simples de entender;  A sintaxe do Python é clara e fácil de aprender;  Os tipos pré-definidos em Python são poderosos e simples de usar;  O interpretador Python permite aprender e testar rapidamente trechos de código  Python é expressivo, com abstrações de alto nível => código curto e rápido desenvolvimento
  • 7. Por que Python?  Prototipação rápida  Desenvolvimento Web  Acesso a banco de dados  Código “enxuto”!  Computação numérica e científica  Jogos  3D
  • 8. Quem Usa?  Google (aplicações Web).  Yahoo (aplicações Web).  Microsoft (IronPython: Python para .NET).  Nokia (disponível para as linhas recentes de celulares e PDAs).  Disney (animações 3D).  Funceme(aplicações com Radares)  Mais casos: http://www.python.org/about/success/
  • 9. Como Usar?  Nas linguagens Interpretadas é executada utilizando o interpretador lê o código fonte e interpreta diretamente, durante a sua execução.  Tanto pode utilizar no Shell ou Uma IDE
  • 10. Instalando  Instalando  Entre no link http://www.python.org/getit/ e baixe para sua plataforma.  No windows: clique duas vezes, next, next, … e finish.  No linux: qualquer distribuíção já vem com Python!
  • 11. IDE Disponíveis  Idle :  Já vem com o Python. É bem simples de ser usado também.  Komodo-Edit:  E uma excelente opção de editor, bastante rico em recursos tais como autocomplete, multi-language e outros.  Eclipse:  Ideal para desenvolvimento Java. Mas existem plugins para se desenvolver em Python.  Pycham  E proprietário, Possui um conjunto de ferramentas úteis para um desenvolvimento produtivo.
  • 12. Utilizando o Shell  Para chamar o interpretador Python apenas digite “python” no prompt do shell:  Quando o shell é iniciado aparecerão três ‘>’ (“>>>”) indicando que ele está ativo e pode receber comandos $ python Python 2.5.1 (r251:54863, Sep 4 2007, 19:00:19) [GCC 4.1.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
  • 14. Saida public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } } Print “Hello, World!” JAVA Python
  • 15. Saída  Salvar com a extensão .py Exemplo: alomundo.py  Entre na pasta que está o arquivo cd nomedapasta  Em seguida, rodar o comando: python alomundo.py
  • 16. Definições de Variáveis  Sintaxe nomeDaVariavel = valorAtribuido  Descobrir o tipo atual de uma variável, utiliza a função type()  type(nome) nome = “python” #String num = 1 # valor inteiro preco = 10.99 # valor ponto flutuante t = True # valor booleano
  • 17. Entrada  Sintaxe: nomeDaVariavel = input(’Texto para Saída’)  Para capturar informações do usuário podemos usar duas funções: input(“mensagem”) Espera que o usuários digite comandos ou valores raw_input(“mensagem”) Espera strings
  • 18. Delimitações  Uso de “;” no fim de comandos não é obrigatório  Blocos delimitados por identação def soma(a): . . . .return a+1 print soma(10) Não é um erro sintático, mas é desnecessário e portanto deselegante
  • 19. Comentários  Comentários de são feitos usando ‘#’  Para comentários de bloco pode-se usar string multilinhas com ‘”””’ “”” def inc(a): . . . .return a+1””” #print inc(10)
  • 20. Exercício: 1. Faça um programa que leia da entrada padrão um número, em seguida imprima ele na tela. 2. Agora faça um programa que leia dois números e em seguida imprime o resultado da multiplicação deles
  • 21. Controle de Fluxo  Nada de parênteses! Nada de chaves!  IF if expressão1: Comando1 ... elif expressão2: Comando3 ... else: ...
  • 22. Usando If #! /usr/bin/python # -*- coding: iso-8859-1 -*- x = input("Entre com um numero inteiro: ") if x < 0: print 'Numero negativo' elif x == 0: print 'Zero' elif x == 1: print 'Um' else: print 'Numero positivo'
  • 23. Controle de Fluxo  O loop While, tem como função repetir um bloco de comando ate que aconteça uma parada. while expressão2: Comando3 ...
  • 24. Controle de Fluxo  O for em Python podemos “varrer” uma sequencia que se difere de outra linguagens por ser utilizado como iterador de progressão aritmética. for variavel in rage(ni,nf-1): Cria uma lista a partir do inteiro ni até o inteiro nf-1 for variavel in lista
  • 25. Exemplo for for contador in range(1,6): print contador 1 2 3 4 5
  • 26. Estruturas de Dados  Lista[ ]  Lista é uma seqüência de valores indexadas por um inteiro. Uma lista pode conter qualquer tipo de valor, incluindo valores de tipos mistos. numero = [ 1, 2,3] nomes = ['maria','paulo','jose'] mistos=[1,’maria’,2]
  • 27. Estrutura de Dados: Listas [ ] Os elementos da lista podem ser acessados por meio de índices que vão de 0 até o comprimento da lista-1 lista = [ ‘maria’,’paulo’,’jose’,’carlos’] 0 1 2 3 >>> lista [0] maria
  • 28. Estrutura de Dados: Listas [ ] Fatias, ou slices, de uma lista podem ser geradas facilmente com o “:” Lista = [inicio:final] >>> n = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ] >>> n[2:4] [3, 4]
  • 29. Estrutura de Dados: Listas [ ] Métodos Uteis 1 2 4 3 0 1 2 3 lista.extend(lista2)lista.append(8) lista.pop() lista.remove(2)
  • 30. Exercício: 1.Faça um programa que leia da entrada padrão um número, em seguida adicione e imprima a lista . 2.Seguindo o exemplo anterior: Crie uma nova lista e adicione na lista anterior; Remova um elemento na Posição 4; Imprima toda a lista;
  • 32. Python: Orientado a Objeto “Orientação a objetos, OO, é um termo que descreve uma série de técnicas para estruturar soluções para problemas computacionais. é um paradigma de programação no qual um programa e estruturado em objetos, e que enfatiza os aspectos abstração, encapsulamento, polimorfismo e herança.”
  • 33. E tudo é um Objeto Tudo em Python é no fim um objeto! list3.append(‘a’) Novos objetos (classes) podem ser facilmente adicionados aos tipos de dados já existentes em Python! De fato, programar em Python é normalmente feito de forma orientado a objetos!
  • 34. Definição de uma Classe A forma mais simples de definição de uma classe pode ser descrita dessa maneira: >>> class NomeDaClasse: <comando-1> . . . <comando-N>
  • 35. Definição de um Metodo Utiliza o comando def, para definir um método de uma classe: >>> class HelloMundo: def alomundo(self): print “Ola Mundo“
  • 36. Instanciando uma Classe Quando criamos a classe HelloMundo, criamos um novo tipo de dado. Os membros deste novo tipo são chamados instâncias deste tipo ou objetos. Criar uma nova instância é instanciar. Para instanciar o objeto HelloMundo: ... alo=HelloMundo() alo.alomundo()
  • 37. Definição de uma Classe Exemplo: class HelloMundo: #Definindo a Classe def alomundo(self): #Definindo o Método print “Ola Mundo“ alo=HelloMundo() #criando uma instância da classe alo.alomundo()
  • 38. Definição da Classe Privados Atributos e métodos que só podem ser acessados dentro da classe, usa-se “__” no início do nome Protected Apenas convenção e usa-se apenas um “_” no nome de métodos ou atributos, ex. _telefone class musica: _compositor=“Luiz Gonzaga” __ritmo=“Baiao” m=musica() m._compositor
  • 39. Definição da Classe class Contador(object): def __init__(this): this.contagem = {} def incluir(this, item): qtd = this.contagem.get(item, 0) + 1 this.contagem[item] = qtd def contar(this, item): return this.contagem[item]
  • 40. Definição da Classe class Contador(object): def __init__(this): this.contagem = {} def incluir(this, item): qtd = this.contagem.get(item, 0) + 1 this.contagem[item] = qtd def contar(this, item): return this.contagem[item] Em Python Não Usamos this
  • 41. Definição da Classe class Contador(object): def __init__(self): self.contagem = {} def incluir(self, item): qtd = self.contagem.get(item, 0) + 1 self.contagem[item] = qtd def contar(self, item): return self.contagem[item] Usamos self
  • 42. Argumento do Método self •Em todos métodos associados à instância definido dentro de uma classe devem ter o argumento self definido como primeiro argumento. •Maior flexibilidade na chamada de métodos. •É a referência para a própria instância da classe •Mesmo que você tem um método que não recebe nenhum argumento, ainda assim você deve definir que este tenha o argumento self.
  • 43. Construtor __init__( ) é um método especial que é invocado automaticamente quando um novo objeto é criado e que inicializa os atributos deste objetos. E opcional! class Hello: def _init_ (self,nome): self.nome = nome
  • 45. Herança Uma classe pode herdar a definição de outra classe Python não tem a palavra ‘extends’ como em Java A Herança multipla é suportada SuperClasse SubClasse SubClasse
  • 46. Exemplo Herança Para definir uma subclasse, coloque o nome da superclasse entre parênteses depois do nome da subclasse na primeira linha da definição. class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): _numRodas=4 gol = Carro() gol.andar()
  • 47. Sobrecarga Redefinição de métodos já existente, com o mesmo nome. Quando um método da classe pai é redefinido na classe filha  Diz-se que o método foi sobrecarregado (overloaded)
  • 48. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): print ' Andei de Carro' gol = Carro() gol.andar()
  • 49. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): print ' Andei de Carro' gol = Carro() gol.andar()
  • 50. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): print ' Andei de Carro' gol = Carro() gol.andar() Andei de Carro
  • 51. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): Veiculo.andar(self) gol = Carro() gol.andar() Você pode chamar o método da superclasse
  • 52. Redefinindo Métodos Você pode redefinir métodos declarados na superclasse O mesmo vale para o método __init__ . No método __init__ das subclasses: parentClass.__init__(self,x,y) onde parentClass é o nome da classe pai.
  • 53. Redefinindo Métodos class Veiculo: def __init__(self,numPassageiros): self.numPassageiros = numPassageiros def andar(self): print "Andei" class Carro(Veiculo): _numRodas= None def __init__(self, _numRodas,numPassageiros): Veiculo. __init__(self,numPassageiros) self._numRodas= _numRodas def qtdPassageiros(self): print self.numPassageiros gol = Carro(4,6) gol.qtdPassageiros() Construtor da classe filha tem que chamar o da classe pai
  • 55. Polimorfismo Polimorfismo literalmente significa várias formas. Em Python, um método é polimórfico se ele tem diferentes implementações numa família de classes Ex: O operador ‘+’ é polimórfico ! se refere a diferentes operações quando usado, por exemplo, em inteiros e strings
  • 56. Exemplo Polimorfismo class Mamifero: def som(self): print 'emitir um som' class Homem(Mamifero): def som(self): print ' Oi' class Cachorro(Mamifero): def som(self): print ' Wuff ! Wuff' class Gato(Mamifero): def som(self): print ' Meaww' mamifero = Mamifero() mamifero.som() animais = [ Homem(),Cachorro(),Gato()] for animal in animais: animal.som()
  • 57. Exercício Crie uma Classe Chamada Conta Corrente, declarando o construtor com atributo numero e o método creditar() e debitar() Crie uma Classe Poupança tendo como atributo taxaDeJuros e com o metodo renderJuros(), que herda de Conta Corrente e
  • 62. O que é HTML? •HTML é a sigla para Hyper Text Markup Language. •HTML não é uma linguagem de programação. •HTML é uma linguagem de marcação. •As marcações são feitas através de <tags>.
  • 63. Tags •Deve-se sempre abrir e fechar as tags. •São os textos que ficam entre < > ou < />. •Geralmente são sempre pares,<p> e </p>.
  • 64. •Finalidade é ler o documento Html e exibir o conteúdo da página. •Não exibem as tags mas usam as tags para interpretar o conteúdo das mesmas. Browsers e o HTML
  • 66. •Apenas de um editor de texto! •Então abra o Notepad ou Kate e mão a obra! Do que precisamos para começar?
  • 67. Como criar um arquivo HTML •Abrir o editor de textos. •Criar um novo arquivo em branco. •Salvar o arquivo com a extensão .html •Iniciar a edição do arquivo.
  • 68. Arquivo básico HTML <html> <head> <title>Minha página de Internet</title> </head> <body> ...Conteúdo da página... </body> </html>
  • 69. •O texto entre <html> e </html> descreve o conteúdo da página. •O texto entre <head> e </head> é o cabeçalho da página, não é exibido no browser. •O texto entre <body> e </body> é o conteúdo visível da página no browser. •O texto entre <title> e </title> é o título da pagina
  • 70. Cabeçalhos HTML •Os cabeçalhos são definidos com as tags <h1> até <h6>. •Exemplo: •<h1>Isto é um cabeçalho</h1> •<h2>Isto é um cabeçalho</h2> •<h3>Isto é um cabeçalho</h3>
  • 71. Parágrafos HTML •Os parágrafos HTML são definidos com a tag <p>. • Caso tenha necessidade de quebrar alguma linha, utilize a tag <br> para fazer a quebra •Exemplo: •<p>Isto é um parágrafo.</p> •<p>Isto é um outro parágrafo. <br> • Isto ficará na linha de baixo •</p>
  • 72. Replique a seguinte pagina da web:
  • 74. Estilizando textos: Para colocar efeito em alguma frase ou palavra podemos utilizar as seguintes tag’s no documento: <b>, <i>, <u> e <s> Exemplo: <b> isto é uma frase em NEGRITO </b> <i> isto é uma frase em ITALICO</i> <u> isto é uma frase SUBLINHADA</u> <s> isto é uma frase TACHADA</s>
  • 76. Atributos HTML Elementos HTML podem ter atributos. Atributos fornecem informação adicional sobre um elemento. Atributos são sempre especificados na tag inicial. Atributos vem em pares como name="value". Valor de atributos devem sempre estar entre aspas duplas “ ”.
  • 77. Exemplos de atributos: Bgcolor: utilizado para definir a cor de fundo da página web Background: utilizado para definir uma imagem de fundo da página web. Text: utilizado para definir a cor dos textos da página web align: utilizado para alinhar o texto.
  • 80. Tag <font> Vimos que o atributo “text” modifica a cor de todo o conteudo do body. Para modificar apenas a cor de uma frase, ou uma palavras colocamos a frase dentro da tag <font> com o atributo color. Caso deseje mudra o tamanho da fonte, utilize o atributo size.
  • 82. Criando Listas em HTML Em HTML podemos criar basicamente três tipos de listas: listas de definição, listas não numeradas e listas numeradas.
  • 83. Lista não numeradas: As listas não numeradas funcionam semelhantes aos marcadores existentes em aplicativos como editores de texto. Para criarmos listas não numeradas utilizamos as tags <UL> para iniciarmos a lista e <LI> para inserirmos itens na lista.
  • 85. Lista numeradas: As listas numeradas são as mais comuns, a cada item inserido a numeração da lista cresce. Pode se utilizar números romanos( I,II,III), números comuns (1,2,3) ou até letras (a,b,c). Para criarmos listas numeradas utilizamos as tags OL para iniciarmos a lista e LI para inserirmos itens na lista.
  • 89. Características Uma simples e poderosa biblioteca do Python Um framework Python orientada a objetos web. Pacote auto-contido, só necessita do Python Não intrusivo Já vem com Servidor web Separa o código do layout do HTML É Gratis
  • 90. Por que Cherrypy Tem uma interface limpa;  É muito pythônico; ou seja, ele segue as convenções do Python muito bem (código é escassa e não poluente); Maturidade, tem muitas versões estáveis finais; Tem uma comunidade dedicada que desenvolve aplicativos implementados CherryPy;
  • 91. Perfil do Desenvolvedor Algum conhecimento da linguagem de programação Python. Alguma experiência com programação orientada a objetos básica. Alguns conhecimentos de HTML, que é necessária a construção de páginas web.
  • 92. Instalação Linux Baixe a versão mais recente CherryPy do repositório . Descompacte / untar os arquivos Vá para o diretório criado pela extração do arquivo. Tipo "python setup.py install" para instalar o módulo CherryPy
  • 93. Instalação Windows Para instalar o CherryPy basta fazer um download da biblioteca: https://pypi.python.org/pypi/CherryPy Selecione o arquivo que termina em "exe“ e next
  • 94. Algumas Definições: Servidor Web É uma interface que lida com o protocolo HTTP Seu objetivo é transformar pedidos HTTP em entidades que são passadas para o servidor de aplicação e então transformar a informação retornada pelo servidor de aplicação em uma resposta HTTP.
  • 95. Algumas Definições Aplicação: É um pedaço de software que pega uma unidade de informação e aplica nela a regra do negócio e retorna uma unidade processada de informação. Servidor de Aplicação: É um componente que hospeda uma ou mais aplicações. Servidor de Aplicação Web: É simplesmente a junção de um servidor web com um servidor de aplicação em um componente.
  • 97. Objetos de Publicação Qualquer objeto agregado ao objeto root é dito objeto publicado, isto significa que o objeto é acessível via rotina interna de mapeamento do objeto URL. Entretanto, não significa que o objeto é diretamente acessível via Web, para que isto ocorra o objeto deve ser exposto
  • 98. Expondo Objetos •A exposição de objetos em cherrypy são permitidos pelo atributo exposed, que pode ser diretamente setados para objetos que são chamados •Existe duas formas: class Root: def index(self): ... index.exposed = True @cherrypy.expose def index(self):
  • 99. Minha Primeira Aplicação # -*- coding: iso-8859-1 -*- # Alfabeto Latino import cherrypy # carregando biblioteca class HelloWorld: def index(self): return "Alô Mundo" index.exposed = True # permite definir quais métodos serão expostos na Web cherrypy.quickstart(HelloWorld(),’/’) #publica instância da classe e inicia servidor URI-> http://localhost:8080
  • 100. Minha Primeira Aplicação # -*- coding: iso-8859-1 -*- # Alfabeto Latino import cherrypy # carregando biblioteca class HelloWorld: def index(self): return "Alô Mundo" index.exposed = True # permite definir quais métodos serão expostos na Web cherrypy.quickstart(HelloWorld(),’/ ’) #publica instância da classe e inicia servidor URI-> http://localhost:8080 Neste caso particular o site raiz é mapeado pelo método index()
  • 101. Arquivo de configuração do CherryPy O CherryPy usa um simples arquivo de configuração para customizar seu comportamento. •Para executar este arquivo de configuração para o site use cherrypy.config.update(arquivo_ou_dicionário) #global.cfg [global] server.socket_port = 8000 server.thread_pool = 10 # quantas thread o servidor pode iniciar tools.sessions.on = True # habilita sessão, usada sites complexos tools.staticdir.root = "/home/site" # diretório onde estão aplic. estáticas [/static] tools.staticdir.on = True tools.staticdir.dir = "static"
  • 102. Encontrando o objeto correto Ao receber uma URI, o CherryPy reparte ela em componentes de caminho(path) e procura um objeto no site que é a melhor resposta para esta URI particular. Para cada componente de caminho ele tenta encontrar um objeto de mesmo nome, começando pela raiz(root) e vai descendo por cada componente até encontrá-lo.
  • 103. Recebendo dados de Formulários HTML Qualquer método pode receber dados adicionais do formulário HTML usando argumentos (keyword arguments). <form action=“nomeMetodo " method="post"> campos do formulário aqui dentro das tags </form> GET é o método HTML padrão. Para submeter um formulário HTML usando POST é preciso especificar no atributo “method” o valor “POST”.