Você está na página 1de 82

Python

Introdução
• Python é uma linguagem de
programação fácil de aprender e
poderosa;
• É orientada a objetos;
• Possui uma vasta biblioteca de classes e
funções prontas;
• Python já vem com as pilhas !
Introdução
• Um dos princípios de Python é que
seus programas sejam fáceis de ler, ou
seja, nada de chaves, ponto-e-vírgula,
begin, end, etc.
• Além da sua vasta biblioteca, a
linguagem Python pode ser estendida
através novas funções escritas em
Python, C, C++, Java, C#, etc.
Quem usa Python ?
• Google - Aplicações Web;
• Yahoo - Aplicações Web;
• Microsoft - IronPython (Python
para .NET);
• Nokia - Python S60 (Python para
celulares);
• Disney - Usa para fazer animações 3D.
Versões de Python
• Versão oficial, mantida pela PSF
(Python Software Foundation):
• http://www.python.org
• Python para .NET: IronPython;
• Python para Java: Jython;
• Python em Python (?!): PyPy.
Instalando Python
• Os sistemas operacionais Linux e
MacOS já vêm com um interpretador de
Python instalado;
• No Windows é necessário instalar;
• Existem vários interpretadores de
Python disponíveis, o oficial é grátis e
está disponível no endereço:
• http://www.python.org
http://www.python.org

Clicar em “download”
Selecionando a versão

“Python 2.6.5 Windows installer”


Editores

• Editor de texto simples;


• Interpretador interativo;
• Idle;
• Eclipse + PyDev.
Editores de Texto Simples

• Bloco de notas;
• Notepad++;
• Emacs;
• TextMate;
Interpretador Interativo
Idle
PyDev
• O PyDev é um ambiente de
desenvolvimento integrado para Python
feito sobre a plataforma Eclipse;
• Alguns dos recursos do PyDev são:
• Completar automaticamente;
• Colorir o código;
• Depurador;
• etc.
http://pydev.org
Como instalar
• Existem duas formas:
• Instalação pelo mecanismo de
atualização do Eclipse (instalação
rápida);
• Baixar o pacote completo e
descompactar na pasta “dropins” do
Eclipse.
Instalação rápida
Abrir o Eclipse
Instalando novo software
2 Digitar o endereço:
http://pydev.org/updates
1 3

Clicar em “Add...”
Adicionando um site

Clicar em “OK”
Escolhendo o pacote

Selecionar “PyDev”

Clicar em “Next”

2
Vendo o resumo

Clicar em “Next”

1
I accept the terms ...

Selecionar “I accept ...”

1 Clicar em “Finish”

2
Reiniciar o Eclipse ?

Clique em “Yes”

1
OU
Baixando o pacote
1 Entrar no site http://pydev.org
2
Clicar em “Download”
Escolhendo o pacote

Clicar em “SourceForge download”

1
Fazendo o download

Clicar em “Download Now!”


Descompactando ...

1
Descompacte o arquivo
na pasta “dropins”
Inicie o Eclipse
Criando
um
Projeto
Arquivo / Novo Projeto ...
PyDev Project

Selecione PyDev

Clique em “Next”

2
Configurando um Interpretador

Clique em “Please configure an interpreter ...”

1
Novo interpretador

1
Clique em “Auto Config”
Auto Config

1
Clique em “OK”
Auto Config

Clique em “OK”

1
Autoconfig não funcionou
• Se o autoconfig não funcionar você vai:
• Clicar no botão “New”;
• Seleciona o arquivo python.exe
instalado no seu computador
(normalmente este arquivo fica na
pasta C:\Python26\python.exe);
• Clicar no botão “Ok”.
Novo Projeto
Digite o nome do projeto: “Aula1”

Clique em “Finish”
2
Mudar Perspectiva ?

Clique em “Yes”

1
Criando um módulo
• Clique na seta ( ) localizada no lado
esquerdo do projeto para exibir o seu
conteúdo;
• Na pasta “ ” (onde estarão
armazenados os artefator Python)
clique com o botão direito do mouse;
• Selecione a opção “New -> PyDev
Module” ( )
Novo módulo

Digite o nome do módulo: “aula1”

Clique em “Finish”

2
Módulo aula1
• Parabéns, o seu primeiro módulo em
Python !
Hello World
• Para variar, vamos fazer um “Hello World”
• Digite no seu módulo a linha:
• print 'Hello World !'
• Com o botão direito do mouse, clique sobre
o seu módulo e selecione a opção “Run As -
> Python Run”;
• No console você verá:
• Hello World !
Alguns conceitos ...
Variáveis
• Variáveis armazenam valores;
• Declarando variáveis:
• nome = valor
• nome1, nome2 = valor1, valor2
• Variáveis podem ser declaradas em qualquer
ponto do código;
• Variáveis precisam ser declaradas/
inicializadas antes de serem utilizadas.
Linguagens podem ser:
• Estaticamente tipadas:
• Os tipos são fixados em tempo de compilação;
• Dinamicamente tipadas:
• Os tipos são descobertos em tempo de
execução;
• Fortemente tipadas:
• Os tipos são assegurados;
• Fracamente tipadas:
• Os tipos não importam muito.
Python é:
• Ao mesmo tempo:
• Dinamicamente tipada:
• As variáveis são declaradas sem um
tipo;
• O seu tipo é estabelecido na
inicialização;
• Fortemente tipada:
• Após a inicialização, o tipo da variável
importa.
Por exemplo:
#Exemplo errado
valor = ‘123’
valor += 4
TypeError: cannot concatenate 'str' and 'int' objects

#Exemplo correto
valor = ‘123’
valor += str(4)
Exibindo valores na tela

• print valor
• Ou
• print valor1, valor2, ..., valorN
• É só isso mesmo :)
Exemplo

• Usando Python como calculadora:


• print (2 + 2) * 4 / 8
• Você pode usar o console interativo
para fazer os seus testes:
Lendo Valores do Teclado

• valor = raw_input( )
• nome = raw_input(“Digite seu nome: “)
Exemplo

• Brinque um pouco com os conceitos


aprendidos até agora:
nome = raw_input('Digite o seu nome:')

print 'Bom dia', nome, 'como vai ?'


• ATENÇÃO !!!

• Normalmente os interpretadores Python apenas


aceitam que o código seja composto apenas por
caracteres ASCII (ou seja, nada de acentos) !

• Porém, é possível mudar a codificação do texto


aceita;

• No início de um módulo, basta colocar a linha:


Diretiva de pré-processador

• # -*- coding: latin-1 -*-

• Onde latin-1 é a codificação do Português do


Brasil.
Strings
• Dividindo:
• nome = “Bruno Gama Catao”
• nome.split( )
• Tamanho:
• len(nome) #Retorna 16
• Caracteres:
• nome[3] #Retorna ‘n’
• Substrings:
• nome[2:7] #Retorna ‘uno G’
Atenção !
Os índices em Python iniciam em 0 (zero)
Strings
• Convertendo para maiúsculas:
• nome.upper( )
• Convertendo para minúsculas:
• nome.lower( )
• Primeiras letras maiúsculas:
• nome.title( )
• Encontrar ocorrência:
• nome.find(‘Ga’) #Retorna 6
Strings
• Strings podem ser definidos com aspas simples
(‘) ou aspas duplas (“);
• Também é possível definir Strings de múltiplas
linhas usando aspas triplas (‘’’) ou (“””);
• Ex:
nomes = ‘’‘Joao
Maria
Jose’’’
Dicas
• Para descobrir quais são as funções/
métodos de um objeto digite:
• dir (objeto) - exemplo: dir (lista)
• Para obter maiores informações sobre
funções/métodos/objetos digite:
• help (função) - exemplo: dir (str)

Façam o teste !
Listas
• Declarando:
• lista = [ ]
• lista = [‘banana’, ‘pera’, ‘tomate’]
• Adicionando:
• lista.append(‘jaboticaba’)
• lista + [‘jaboticaba’]
• Acessando:
• lista[2] # retorna ‘pera’
Listas
• Removendo:
• lista.remove(“banana”)
• lista.pop( )
• lista.pop(2)
• Testando:
• “pitanga” in lista
Listas
• Modificando:
• lista[2] = ‘pitanga’
• Sub-listas:
• lista[0:2] # retorna: [‘banana’, ‘pitanga’]
• lista[:2]
• lista[1:]
Listas
• Ordenando:
• lista.sort( )
• Revertendo:
• lista.reverse( )
• Tamanho:
• len(lista)
Função range
• Retorna uma lista, contendo os valores de um
intervalo;
• Ex:
• range(10) - retorna os números de 0 a 9;
• range(2, 100) - retorna os números de 2 a 99;
• range(10, 0, -1) - retorna os números de 10 a
0 com incremento de -1.
Desvios Condicionais

• if condicao:
• código se a condição for verdadeira
• else:
• código se a condição for falsa
Desvios Condicionais
• if condicao1:
• código caso a condição 1 for verdadeira
• elif condicao2:
• código caso a condição 2 for verdadeira
• elif condicao3:
• código caso a condição 3 for verdadeira
• else:
• código caso nenhuma das condições for
verdadeira
Indentação de Código
• Atenção !!!
• A primeira linha de um bloco define a
indentação das linhas restantes;
• Portanto, a quantidade de espaços/
tabs devem ser mantidas;
• Cuidado para não confundir espaços
por tabs e vice-versa.
Exemplo
Testem executar com e sem esta linha !

# -*- coding: latin-1 -*-


nome = raw_input('Digite o seu nome:')
ano = int(raw_input('Em que ano você nasceu ?'))
idade = 2010 - ano

if idade < 18:


print nome, 'é menor de idade'
else:
print nome, 'é maior de idade'
Laços
• for - percorre os elementos de uma lista/
tupla;
• Exemplo:
• pessoas = [‘joao’, ‘maria’, ‘ana’, ‘pedro’]
• for pessoa in pessoas:
• print pessoa
Função enumerate
• enumerate(lista) - retorna uma lista de
tuplas (indice, valor) para cada um dos
elementos da lista;
• Exemplo:
• for indice, fruta in enumerate(frutas):
• print indice, fruta
Desafio
• Faça um programa que leia nomes do teclado até que seja
digitada a palavra ‘sair’;
• Os nomes deverão ser armazenados em uma lista;
• O programa deverá exibir todos os nomes digitados, um por
linha, no formato:
• índice nome
• Ex:
• 1 josé
• 2 maria
• 3 pedro
Formatando Strings
• x = 10
• y = 20
• texto = “posição: %d, %d” % (x, y)
• Modificadores:
• %d - dígitos inteiros;
• %s - string;
• %f - ponto flutuante.
Formatando Strings

• Exemplo:
• pi = 3.1415926
• print “pi = %.2f” % pi
Leitura de Arquivos

• arquivo = open(‘arquivo’)
• linhas = arquivo.readlines( )
• print linhas
• arquivo.close( )
Escrita de Arquivos

• arquivo = open(‘arquivo’, ‘w’)


• arquivo.write(valor)
• arquivo.close( )
Função open
• A função open possui dois parâmetros;
• O primeiro é o nome do arquivo a ser
aberto;
• O segundo é o modo:
• r - modo read (leitura) - modo padrão;
• w - modo write (escrita);
• a - modo append (adiciona conteúdo ao
final do arquivo).
Desafio

• Faça um programa que leia nomes do


teclado até que seja digitada a palavra
‘sair’;
• Os nomes deverão ser armazenados em
um arquivo de texto.
Biblioteca de módulos
• Python vem com vários módulos cheios
de funções prontas para serem usadas;
• Para usar um destes módulos é
necessário antes importá-lo:
• import nome_do_módulo
• Exemplo:
• import os
Módulos
• Módulos são compostos por classes e
funções;
• É possível importar apenas uma classe ou
função específica de um módulo, ao invés
de importar o módulo todo:
• from modulo import entidade
• Ex:
• from datetime import date
Alguns módulos
• os - Funções do sistema operacional;
• datetime - Funções de data e hora;
• math - Funções matemáticas;
• random - Geração de números
aleatórios;
• urllib2 - Acesso a internet;
• smtplib - Envio de emails.
Exibindo a data atual

import datetime

#Mostrando a data atual


print datetime.date.today()
Exibindo a data atual 2

from datetime import date

#Mostrando a data atual


print date.today()
Listando arquivos

import os

for arquivo in os.listdir('C:\\'):


print arquivo
Enviando E-mails
import smtplib

server = 'smtp.mail.yahoo.com.br'
user = 'usuario'
passwd = 'senha'
sender = 'brunogamacatao@yahoo.com.br'
recipients = ['brunogamacatao@gmail.com']

msg = '''
Texto da mensagem
'''

session = smtplib.SMTP(server)
session.login(user, passwd)
session.sendmail(sender, recipients, msg)

Você também pode gostar