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
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
● 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
● Identaçã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 = 30id(a) == id(30)
● Dinamicamente tipada
● Função str()a = 20a + “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últiplasa, b = 1, 2
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
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/1994Saída: 10 de setembro de 1994
● Dica: Utilize uma lista para guardar os nomes dos meses.
Repetições II
● for in “abcdefghi”
● range(10)
● range(5, 10)
● for 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
● 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
Saída
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: ABCDETexto 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
Instruções Arquivo antes das instruções
Arquivo depois das instruções
● Mas se utilizarmos o argumento “a” (append) iremos atualizar o arquivo, escrevendo no final do mesmo
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úsculasfrase = frase.lower()
Dica
Resposta
Dúvidas / Críticas / Sugestões?
Recommended