Introdução a Python
Sobre 
● Criada por Guido van Rossum em 1991 
● Nome inspirado pelo grupo de comédia Monty Python 
● Linguagem interpretada, de tipagem dinâmica e forte 
http://pt.wikipedia.org/wiki/Python 
http://www.python.org.br
Por que Python? 
● Foque na lógica sem se preocupar com a 
sintaxe 
● Interativa 
● Bibliotecas inclusas (re, random, math, urllib2, time, 
zlib, threading, tkinter, PIL, numpy, etc) 
● Orientada a objetos, funcional ou estruturada 
● Uso geral 
● Multi-plataforma (Windows, Linux, Mac, Android) 
● Fácil de aprender
Por que Python? 
http://en.wikipedia.org/wiki/List_of_Python_software 
● Blender 3D - 3D art and animation program 
● Django, web2py - web framework 
● PyGTK, PyQt, PySide - GUI 
● Biopython - Python molecular biology suite 
● SciPy - Alternativa gratuita para MATLAB 
● Matplotlib - MATLAB-like plotting and mathematical functions
Quem usa Python?
Quem usa Python?
Quem usa Python? 
Back-end
Quem usa Python? 
Animações gráficas
Quem usa Python? 
Computação Gráfica/Renderização
Quem usa Python? 
Computação Gráfica/Renderização
Hello World! 
“Hello World” em Java 
“Hello World” em C
Hello World! 
“Hello World” em python
Conceitos Básicos 
● Case sensitive 
● Indentação 
● Operações matemáticas (+ - * / ** %) 
● Números grandes 
● Inteiros e quebrados 
● Operações Lógicas (== != > < and or) 
● type() 
● Strings
Variáveis 
● Nada a declarar! 
● Variáveis são postites: 
a = 30 
id(a) == id(30) 
● Dinamicamente tipada 
● Função str() 
a = 20 
a + “laranja” ← ERRADO!!! 
str(a) + “laranja” ← CERTO =D
Marcações 
● Imprimindo variáveis 
● print “a = %d” %(a) 
● print “Pi = %.2f” %(3.1415) 
● print “a =”, a 
● print “a = {0} e b = {1}” .format(a, b) 
● Aspas simples e duplas 
● Atribuições múltiplas 
a, b = 1, 2 
● swap 
a, b = b, a
Entrada de Dados 
● raw_input() 
● Entrando com inteiros e float
Condições 
if, elif, else
Exercícios 
1 – Faça um programa que leia dois números e 
imprima o maior deles 
2 – Faça um programa que leia três números e 
imprima o maior deles 
3 – Faça um programa que leia dois textos e 
compare se eles são iguais
Repetições 
● Imprimindo de 1 a 5 
● while(): 
● Imprimindo números até um fim (e o 
conceito de contador)
Exercício 
1 – Imprima os pares entre 0 e o número 
fornecido utilizando os conceitos de condição e 
repetição
Listas 
● Listas são como vetores em C 
● Uma mesma lista pode armazenar qualquer outro 
tipo de dado, incluindo outra lista 
● Inicializamos uma lista vazia da seguinte forma: 
lista = [] 
● Ou uma lista com elementos da seguinte forma: 
lista = [“Vinicius”, 19, “laranja”, 3.1415]
Listas 
● Acessamos listas por índices:
Listas 
● Acrescentamos itens ao final da lista da seguinte 
forma: 
● Não é possível acrescentar itens em uma lista 
utilizando índices, mas podemos modificar itens
Listas 
● Se estiver na lista, ou se não estiver
Listas 
● Função len() 
A função len() retorna o tamanho. Pode ser o 
tamanho de uma string ou o tamanho de uma 
lista por exemplo
Função Map 
● Alterar todos os itens de uma lista 
l = [1, 2 ,3] 
map(str, l) 
● Escrevendo as próprias funções 
def plusplus(n): 
return n+1 
map(plusplus, l)
Exercício 
1 – Dada a lista abaixo, calcule e imprima a média 
aritmética. 
lista = [8.5, 9.2, 4.0, 10.0] 
2 – Crie um programa que adicione itens em uma 
lista sem repetir nenhum item. 
Desafio: 
Faça um programa que leia dez caracteres e diga 
quantas consoantes foram lidas
Resposta do Desafio
Strings 
● Acessando por índices 
● Última posição 
● Da posição m até a n-1 
● Pulando de dois em dois 
● De trás para frente 
● Strings são imutáveis 
● startswith, endswith, lower, upper, find, replace, 
split, join
Exercício 
1 – Faça um programa que peça para o usuário 
digitar a data no formato dd/mm/aaaa. No final, 
imprima o mês por extenso. Por exemplo: 
Entrada: 10/09/1994 
Saída: 10 de setembro de 1994 
● Dica: Utilize uma lista para guardar os nomes dos 
meses.
Repetições II 
● for c in “abcdefghi” 
● range(10) 
● range(5, 10) 
● range(2, 20, 2) 
● xrange(10) 
● for l in lista:
Tratamento de Exceções 
● try, except, else, finally
Módulo Random 
● help(random) 
● randint(1, 10) 
● choice(lista ou string) 
● shuffle(lista)
Exercício 
1 – Faça um programa que gere uma lista com 10 
números aleatórios entre 0 e 10, escolha 
aleatoriamente dois números e tente fazer a 
divisão entre eles. 
Utilize “for”, o módulo random aprendido e o 
tratamento de exceções em caso de divisão por 
zero
Funções 
● Definimos uma função da seguinte forma: 
● Funções em python são muito fáceis! 
Não precisamos nos preocupar com o retorno 
● Se o retorno for float, a função retorna float 
automaticamente. Isso serve para todos os tipos 
de dados. 
● Se não existir o comando “return” ela 
simplesmente não retorna nada
Funções 
● Exemplo de função que não retorna nada 
● Um outro conceito importante que devemos ver é 
o escopo das variáveis. Uma variável pode ser 
global ou local. Por padrão a variável é local. Para 
torná-la global precisamos dizer para a função 
que ela é global. Veremos no próximo slide um 
exemplo que ilustra isso
Funções 
Saída 
● Podemos ver que a funcao1() não altera o valor 
da variável global. Já a funcao2() altera. Para isso 
utilizamos o identificador “global” que diz que a 
variável “a” que estamos nos referindo é global. 
Caso a variável a não existisse, a funcao2() criaria 
um variável global
chr() e ord() 
● A letra “A” (maiúscula), na tabela ASCII é 
representada pelo número 65 
● Podemos ver isso em python utilizando a função 
ord(). Tente ord(“A”) no modo interativo. 
● Podemos fazer o contrário também, utilizando a 
função chr(). Tente chr(110) no modo interativo.
Cifra de César 
● Cifra de César é uma das mais simples e 
conhecidas técnicas de criptografia. Ela consiste 
em mover É um tipo de cifra de substituição na 
qual cada letra do texto é substituída por outra 
representada no mesmo alfabeto. A substituição 
ocorre alterando a posição definida. 
● Por exemplo: 
Texto normal: ABCDE 
Texto criptografado: CDEFG 
● É como fazer: 
letra = letra + 2 posições
Exercício 
1 - Crie um programa que contenha duas funções. 
Uma codifica o texto e a outra decodifica. Utilize 
a Cifra de César. Faça também com que o número 
de casas deslocadas seja fornecida como 
argumento de cada função
Resposta do Exercício
HTML em variáveis 
● Podemos armazenar textos com várias linhas. 
Para fazer isso devemos apenas escrever tudo 
entre três aspas (simples ou duplas). 
Exemplo: 
● Isso pode ser muito útil para criar uma página em 
html.
Arquivos 
● Vamos agora manipular arquivos com python. 
Para abrir arquivos usamos a função open() 
● Essa função recebe dois parâmetros. O primeiro é 
o caminho do arquivo. O segundo é o modo como 
ele será aberto. 
● O arquivo pode ser aberto para leitura (r), 
gravação (w) ou atualização (a). 
● Vejamos um exemplo
Arquivos 
● Quando utilizamos a função open() sem o 
segundo argumento, o arquivo é aberto 
automaticamente como leitura (mode 'r') 
● Utilizamos read() para ler o conteúdo do arquivo 
e split() para retirar o n.
Arquivos 
Instruções Arquivo antes 
das instruções 
Arquivo depois 
das instruções 
● Quando utilizamos o argumento “w”, se o arquivo 
existir, seu conteúdo será sobrescrito 
● Antes de sair do programa, devemos sempre 
fechar o arquivo com close()
Arquivos 
● Mas se utilizarmos o argumento “a” (append) 
iremos atualizar o arquivo, escrevendo no final do 
mesmo 
Instruções Arquivo antes 
das instruções 
Arquivo depois 
das instruções
Dicionário 
● Dicionário é como uma lista. Porém, acessamos 
os índices através de chaves. Inicializamos um 
dicionário com {} 
● Para adicionar novos itens não precisamos utilizar 
append. Basta fazer a atribuição. 
-Se a chave já existir, o valor será alterado 
-Se a chave não existir, será criada
Exercício 
1 – Faça um programa que o usuário digitará o 
nome e a idade de dez pessoas. Os dados digitados 
devem ser armazenados em um dicionário. No 
final, exiba o nome de todas as pessoas seguidas 
de suas respectivas idades.
Resposta
Desafio 
1 – Faça um programa que leia o arquivo alice.txt e 
calcule o número de ocorrências de cada palavra. 
● Dica: Para evitar problemas com acentuações e 
pontuações, vamos ver uma técnica interessante 
para preparar o nosso texto. 
● Utilizaremos a biblioteca string 
● Dica 2: Faça todas as palavras serem minúsculas 
frase = frase.lower()
Dica
Resposta
sleep 
● Importe a biblioteca time 
● Utilize a função sleep() 
● O parâmetro é o temo em segundos 
● Útil para executar alguma tarefa de tempos em 
tempos
Manipulando dados da Web 
● Automatizar a coleta e tratamento dos dados da 
web 
● O que eu já fiz: 
Calcula CoRA 
ClickDisk 
Respondedor de Parabéns (Facebook) 
Searcher 
Bot WebGiz 
Bot Agenda 
Flood Google Forms 
Eleições 2014
Manipulando dados da Web 
● Bibliotecas: 
urllib2 
json 
mechanize 
selenium 
Beautiful Soup
urllib2 
● Abrindo um site 
urllib2.urlopen(site).read() 
http://pastebin.com/2q2YHZUJ
urllib2 
● Exemplo:
json 
● JavaScript Object Notation 
● É um formato para troca de dados
Eleições 
● Basta abrir a url e tratar com o json 
● dados = json.loads(resp)
Exercício 
● Crie um programa que faça a apuração das 
eleições utilizando urllib2 e json 
● Link com os dados: http://goo.gl/Uv8u0z 
● Se não conseguir, utilize esse código como apoio: 
http://pastebin.com/uRnDZaTz
Mechanize 
● Simula um Browser 
● Clica em botões 
● Preenche formulários 
http://pastebin.com/2YUPuSph
Selenium 
● Controla as ações de um Browser real 
● Ex: Controla tudo que o firefox faz
Threads 
● Tarefas sendo executadas paralelamente 
● Biblioteca: threading 
● Como usar: 
threading.Thread(target = func, args = [1, 2]) 
http://pastebin.com/2YUPuSph
Dúvidas / Críticas / Sugestões?

Python

  • 1.
  • 2.
    Sobre ● Criadapor Guido van Rossum em 1991 ● Nome inspirado pelo grupo de comédia Monty Python ● Linguagem interpretada, de tipagem dinâmica e forte http://pt.wikipedia.org/wiki/Python http://www.python.org.br
  • 3.
    Por que Python? ● Foque na lógica sem se preocupar com a sintaxe ● Interativa ● Bibliotecas inclusas (re, random, math, urllib2, time, zlib, threading, tkinter, PIL, numpy, etc) ● Orientada a objetos, funcional ou estruturada ● Uso geral ● Multi-plataforma (Windows, Linux, Mac, Android) ● Fácil de aprender
  • 4.
    Por que Python? http://en.wikipedia.org/wiki/List_of_Python_software ● Blender 3D - 3D art and animation program ● Django, web2py - web framework ● PyGTK, PyQt, PySide - GUI ● Biopython - Python molecular biology suite ● SciPy - Alternativa gratuita para MATLAB ● Matplotlib - MATLAB-like plotting and mathematical functions
  • 5.
  • 6.
  • 7.
  • 8.
    Quem usa Python? Animações gráficas
  • 9.
    Quem usa Python? Computação Gráfica/Renderização
  • 10.
    Quem usa Python? Computação Gráfica/Renderização
  • 11.
    Hello World! “HelloWorld” em Java “Hello World” em C
  • 12.
    Hello World! “HelloWorld” em python
  • 13.
    Conceitos Básicos ●Case sensitive ● Indentação ● Operações matemáticas (+ - * / ** %) ● Números grandes ● Inteiros e quebrados ● Operações Lógicas (== != > < and or) ● type() ● Strings
  • 14.
    Variáveis ● Nadaa declarar! ● Variáveis são postites: a = 30 id(a) == id(30) ● Dinamicamente tipada ● Função str() a = 20 a + “laranja” ← ERRADO!!! str(a) + “laranja” ← CERTO =D
  • 15.
    Marcações ● Imprimindovariáveis ● print “a = %d” %(a) ● print “Pi = %.2f” %(3.1415) ● print “a =”, a ● print “a = {0} e b = {1}” .format(a, b) ● Aspas simples e duplas ● Atribuições múltiplas a, b = 1, 2 ● swap a, b = b, a
  • 16.
    Entrada de Dados ● raw_input() ● Entrando com inteiros e float
  • 17.
  • 18.
    Exercícios 1 –Faça um programa que leia dois números e imprima o maior deles 2 – Faça um programa que leia três números e imprima o maior deles 3 – Faça um programa que leia dois textos e compare se eles são iguais
  • 19.
    Repetições ● Imprimindode 1 a 5 ● while(): ● Imprimindo números até um fim (e o conceito de contador)
  • 20.
    Exercício 1 –Imprima os pares entre 0 e o número fornecido utilizando os conceitos de condição e repetição
  • 21.
    Listas ● Listassão como vetores em C ● Uma mesma lista pode armazenar qualquer outro tipo de dado, incluindo outra lista ● Inicializamos uma lista vazia da seguinte forma: lista = [] ● Ou uma lista com elementos da seguinte forma: lista = [“Vinicius”, 19, “laranja”, 3.1415]
  • 22.
    Listas ● Acessamoslistas por índices:
  • 23.
    Listas ● Acrescentamositens ao final da lista da seguinte forma: ● Não é possível acrescentar itens em uma lista utilizando índices, mas podemos modificar itens
  • 24.
    Listas ● Seestiver na lista, ou se não estiver
  • 25.
    Listas ● Funçãolen() A função len() retorna o tamanho. Pode ser o tamanho de uma string ou o tamanho de uma lista por exemplo
  • 26.
    Função Map ●Alterar todos os itens de uma lista l = [1, 2 ,3] map(str, l) ● Escrevendo as próprias funções def plusplus(n): return n+1 map(plusplus, l)
  • 27.
    Exercício 1 –Dada a lista abaixo, calcule e imprima a média aritmética. lista = [8.5, 9.2, 4.0, 10.0] 2 – Crie um programa que adicione itens em uma lista sem repetir nenhum item. Desafio: Faça um programa que leia dez caracteres e diga quantas consoantes foram lidas
  • 28.
  • 29.
    Strings ● Acessandopor índices ● Última posição ● Da posição m até a n-1 ● Pulando de dois em dois ● De trás para frente ● Strings são imutáveis ● startswith, endswith, lower, upper, find, replace, split, join
  • 30.
    Exercício 1 –Faça um programa que peça para o usuário digitar a data no formato dd/mm/aaaa. No final, imprima o mês por extenso. Por exemplo: Entrada: 10/09/1994 Saída: 10 de setembro de 1994 ● Dica: Utilize uma lista para guardar os nomes dos meses.
  • 31.
    Repetições II ●for c in “abcdefghi” ● range(10) ● range(5, 10) ● range(2, 20, 2) ● xrange(10) ● for l in lista:
  • 32.
    Tratamento de Exceções ● try, except, else, finally
  • 33.
    Módulo Random ●help(random) ● randint(1, 10) ● choice(lista ou string) ● shuffle(lista)
  • 34.
    Exercício 1 –Faça um programa que gere uma lista com 10 números aleatórios entre 0 e 10, escolha aleatoriamente dois números e tente fazer a divisão entre eles. Utilize “for”, o módulo random aprendido e o tratamento de exceções em caso de divisão por zero
  • 35.
    Funções ● Definimosuma função da seguinte forma: ● Funções em python são muito fáceis! Não precisamos nos preocupar com o retorno ● Se o retorno for float, a função retorna float automaticamente. Isso serve para todos os tipos de dados. ● Se não existir o comando “return” ela simplesmente não retorna nada
  • 36.
    Funções ● Exemplode função que não retorna nada ● Um outro conceito importante que devemos ver é o escopo das variáveis. Uma variável pode ser global ou local. Por padrão a variável é local. Para torná-la global precisamos dizer para a função que ela é global. Veremos no próximo slide um exemplo que ilustra isso
  • 37.
    Funções Saída ●Podemos ver que a funcao1() não altera o valor da variável global. Já a funcao2() altera. Para isso utilizamos o identificador “global” que diz que a variável “a” que estamos nos referindo é global. Caso a variável a não existisse, a funcao2() criaria um variável global
  • 38.
    chr() e ord() ● A letra “A” (maiúscula), na tabela ASCII é representada pelo número 65 ● Podemos ver isso em python utilizando a função ord(). Tente ord(“A”) no modo interativo. ● Podemos fazer o contrário também, utilizando a função chr(). Tente chr(110) no modo interativo.
  • 39.
    Cifra de César ● Cifra de César é uma das mais simples e conhecidas técnicas de criptografia. Ela consiste em mover É um tipo de cifra de substituição na qual cada letra do texto é substituída por outra representada no mesmo alfabeto. A substituição ocorre alterando a posição definida. ● Por exemplo: Texto normal: ABCDE Texto criptografado: CDEFG ● É como fazer: letra = letra + 2 posições
  • 40.
    Exercício 1 -Crie um programa que contenha duas funções. Uma codifica o texto e a outra decodifica. Utilize a Cifra de César. Faça também com que o número de casas deslocadas seja fornecida como argumento de cada função
  • 41.
  • 42.
    HTML em variáveis ● Podemos armazenar textos com várias linhas. Para fazer isso devemos apenas escrever tudo entre três aspas (simples ou duplas). Exemplo: ● Isso pode ser muito útil para criar uma página em html.
  • 43.
    Arquivos ● Vamosagora manipular arquivos com python. Para abrir arquivos usamos a função open() ● Essa função recebe dois parâmetros. O primeiro é o caminho do arquivo. O segundo é o modo como ele será aberto. ● O arquivo pode ser aberto para leitura (r), gravação (w) ou atualização (a). ● Vejamos um exemplo
  • 44.
    Arquivos ● Quandoutilizamos a função open() sem o segundo argumento, o arquivo é aberto automaticamente como leitura (mode 'r') ● Utilizamos read() para ler o conteúdo do arquivo e split() para retirar o n.
  • 45.
    Arquivos Instruções Arquivoantes das instruções Arquivo depois das instruções ● Quando utilizamos o argumento “w”, se o arquivo existir, seu conteúdo será sobrescrito ● Antes de sair do programa, devemos sempre fechar o arquivo com close()
  • 46.
    Arquivos ● Masse utilizarmos o argumento “a” (append) iremos atualizar o arquivo, escrevendo no final do mesmo Instruções Arquivo antes das instruções Arquivo depois das instruções
  • 47.
    Dicionário ● Dicionárioé como uma lista. Porém, acessamos os índices através de chaves. Inicializamos um dicionário com {} ● Para adicionar novos itens não precisamos utilizar append. Basta fazer a atribuição. -Se a chave já existir, o valor será alterado -Se a chave não existir, será criada
  • 48.
    Exercício 1 –Faça um programa que o usuário digitará o nome e a idade de dez pessoas. Os dados digitados devem ser armazenados em um dicionário. No final, exiba o nome de todas as pessoas seguidas de suas respectivas idades.
  • 49.
  • 50.
    Desafio 1 –Faça um programa que leia o arquivo alice.txt e calcule o número de ocorrências de cada palavra. ● Dica: Para evitar problemas com acentuações e pontuações, vamos ver uma técnica interessante para preparar o nosso texto. ● Utilizaremos a biblioteca string ● Dica 2: Faça todas as palavras serem minúsculas frase = frase.lower()
  • 51.
  • 52.
  • 53.
    sleep ● Importea biblioteca time ● Utilize a função sleep() ● O parâmetro é o temo em segundos ● Útil para executar alguma tarefa de tempos em tempos
  • 54.
    Manipulando dados daWeb ● Automatizar a coleta e tratamento dos dados da web ● O que eu já fiz: Calcula CoRA ClickDisk Respondedor de Parabéns (Facebook) Searcher Bot WebGiz Bot Agenda Flood Google Forms Eleições 2014
  • 55.
    Manipulando dados daWeb ● Bibliotecas: urllib2 json mechanize selenium Beautiful Soup
  • 56.
    urllib2 ● Abrindoum site urllib2.urlopen(site).read() http://pastebin.com/2q2YHZUJ
  • 57.
  • 58.
    json ● JavaScriptObject Notation ● É um formato para troca de dados
  • 59.
    Eleições ● Bastaabrir a url e tratar com o json ● dados = json.loads(resp)
  • 60.
    Exercício ● Crieum programa que faça a apuração das eleições utilizando urllib2 e json ● Link com os dados: http://goo.gl/Uv8u0z ● Se não conseguir, utilize esse código como apoio: http://pastebin.com/uRnDZaTz
  • 61.
    Mechanize ● Simulaum Browser ● Clica em botões ● Preenche formulários http://pastebin.com/2YUPuSph
  • 62.
    Selenium ● Controlaas ações de um Browser real ● Ex: Controla tudo que o firefox faz
  • 63.
    Threads ● Tarefassendo executadas paralelamente ● Biblioteca: threading ● Como usar: threading.Thread(target = func, args = [1, 2]) http://pastebin.com/2YUPuSph
  • 64.
    Dúvidas / Críticas/ Sugestões?