Introdução a Python resume os principais pontos sobre a linguagem Python, incluindo sua criação, tipagem dinâmica, uso em diferentes áreas e bibliotecas, conceitos básicos como variáveis e tipos de dados, estruturas de repetição e condicionais, manipulação de strings e arquivos.
2. 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
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
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
● Imprimindo de 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
● 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]
23. 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
24. Listas
● Se estiver na lista, ou se não estiver
25. 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
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
29. 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
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:
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
● 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
36. 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
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
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
● 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
44. 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.
45. 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()
46. 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
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.
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()
53. 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
54. 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
55. Manipulando dados da Web
● Bibliotecas:
urllib2
json
mechanize
selenium
Beautiful Soup
56. urllib2
● Abrindo um site
urllib2.urlopen(site).read()
http://pastebin.com/2q2YHZUJ
58. json
● JavaScript Object Notation
● É um formato para troca de dados
59. Eleições
● Basta abrir a url e tratar com o json
● dados = json.loads(resp)
60. 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
61. Mechanize
● Simula um Browser
● Clica em botões
● Preenche formulários
http://pastebin.com/2YUPuSph
62. Selenium
● Controla as ações de um Browser real
● Ex: Controla tudo que o firefox faz