SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
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?

Más contenido relacionado

Was ist angesagt?

Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na práticaRafael Cassau
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamenteRodrigo Amaral
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com PythonJardel Weyrich
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem luaRafael Sanches
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolsoJean Lopes
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaSérgio Souza Costa
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alvesGrupython Ufla
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução BásicaChristian Perone
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKLeonardo Dalmina
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: IntroduçãoWesley R. Bezerra
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
 

Was ist angesagt? (20)

Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python2016/01/27 - Aprendendo a programar com Python
2016/01/27 - Aprendendo a programar com Python
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
Python para Desenvolvedores
Python para DesenvolvedoresPython para Desenvolvedores
Python para Desenvolvedores
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo Lua
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Apresentação Lua
Apresentação LuaApresentação Lua
Apresentação Lua
 
Criando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDKCriando Jogos 2D com Lua + Corona SDK
Criando Jogos 2D com Lua + Corona SDK
 
Java Básico :: Introdução
Java Básico :: IntroduçãoJava Básico :: Introdução
Java Básico :: Introdução
 
Python for zombies (very basic level)
Python for zombies (very basic level)Python for zombies (very basic level)
Python for zombies (very basic level)
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 

Andere mochten auch

Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016Cesar Augusto Nogueira
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da InformaçãoVinicius Marangoni
 
Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsCesar Augusto Nogueira
 
OpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDKOpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDKCesar Augusto Nogueira
 

Andere mochten auch (6)

WLAN
WLANWLAN
WLAN
 
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
Palestrante OpenSource Java na Semana de Tecnologia da Informação da UFLA 2016
 
Introduction to Scrum - Agile Methods
Introduction to Scrum - Agile MethodsIntroduction to Scrum - Agile Methods
Introduction to Scrum - Agile Methods
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da Informação
 
Android Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcpsAndroid Wear - Workshop por @cesarnogcps
Android Wear - Workshop por @cesarnogcps
 
OpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDKOpenSource Java - Adopt a JDK e OpenJDK
OpenSource Java - Adopt a JDK e OpenJDK
 

Ähnlich wie Python

Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em RubyDaniel Andrade
 
Python_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfPython_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfValter moreira
 
Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação pythonCleyton Fábio
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It YourselfBruno Nascimento
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Leonardo Melo Santos
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxeFlapenta
 
Trabalho sobre a linguagem Python
Trabalho sobre a linguagem PythonTrabalho sobre a linguagem Python
Trabalho sobre a linguagem PythonRicardo Zalla
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptMichaelArrais1
 
Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareMarcio Junior Vieira
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicAmbiente Livre
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicMarcio Junior Vieira
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem CVê Rodrigues
 

Ähnlich wie Python (20)

Aula python
Aula pythonAula python
Aula python
 
Introdução à programação em Ruby
Introdução à programação em RubyIntrodução à programação em Ruby
Introdução à programação em Ruby
 
Python_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdfPython_2018-03-02-MC102KLMN-Aula02.pdf
Python_2018-03-02-MC102KLMN-Aula02.pdf
 
Aula2 ambientação a linguagem deprogramação python
Aula2   ambientação a linguagem deprogramação pythonAula2   ambientação a linguagem deprogramação python
Aula2 ambientação a linguagem deprogramação python
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It Yourself
 
Aula01
Aula01Aula01
Aula01
 
Introdução ao paradigma funcional com scala
Introdução ao paradigma funcional com scalaIntrodução ao paradigma funcional com scala
Introdução ao paradigma funcional com scala
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxe
 
Trabalho sobre a linguagem Python
Trabalho sobre a linguagem PythonTrabalho sobre a linguagem Python
Trabalho sobre a linguagem Python
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Aula3PythonBasico (1).ppt
Aula3PythonBasico (1).pptAula3PythonBasico (1).ppt
Aula3PythonBasico (1).ppt
 
Aula3PythonBasico.ppt
Aula3PythonBasico.pptAula3PythonBasico.ppt
Aula3PythonBasico.ppt
 
Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshare
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
 

Python

  • 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
  • 7. Quem usa Python? Back-end
  • 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! “Hello World” em Java “Hello World” em C
  • 12. Hello World! “Hello World” 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 ● 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
  • 15. 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
  • 16. Entrada de Dados ● raw_input() ● Entrando com inteiros e float
  • 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]
  • 22. Listas ● Acessamos listas por índices:
  • 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:
  • 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 ● 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()
  • 51. Dica
  • 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
  • 63. Threads ● Tarefas sendo executadas paralelamente ● Biblioteca: threading ● Como usar: threading.Thread(target = func, args = [1, 2]) http://pastebin.com/2YUPuSph
  • 64. Dúvidas / Críticas / Sugestões?