SlideShare uma empresa Scribd logo
1 de 130
1
Lógica de Programação
com Python
por Nilo Menezes
http://www.nilo.pro.br/python/
Python 2.7 – requer PyGame
Atualizada em 30/10/2012
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Objetivos
• Introduzir os conceitos de programação
• Apresentar as principais estruturas de dados
• Construir programas exemplo
• Utilizar uma linguagem de programação (Python)
2
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Você
• Apresentação
oNome
oCurso
oO que já sabe?
oO que espera do curso?
oAprender lógica para que?
3
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Por que programar é
difícil?
4
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
O que fazer ?
5
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Por que Python?
6
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 1
•Faça uma descrição em
português de como
desligar o computador.
7
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Uma abordagem gráfica
• A programação de computadores é intimamente
relacionada com a matemática e diversos
problemas computacionais.
• Uma abordagem gráfica é sugerida para facilitar
a introdução aos principais conceitos.
8
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
• Para desenhar, precisamos definir um sistema
de coordenadas para corretamente identificar os
pontos de um desenho.
• Sistema de coordenadas
• Utilizaremos daqui para frente coluna e linha para
indicar uma posição.
• 5 x 10 significa: coluna 5, linha 10
9
Uma abordagem gráfica
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Uma abordagem gráfica
• Um ponto
ponto(coluna, linha)
• Três pontos
ponto(1,1)
ponto(1,2)
ponto(1,3)
10
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 2
• Faça um programa para desenhar uma linha vertical
numa tela de 5x5
11
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 3
• Faça um programa para desenhar uma linha horizontal
numa tela de 5x5
12
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 4
• Faça um programa para desenhar uma linha diagonal
numa tela de 5x5
13
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 5
• Faça um programa para desenhar um triângulo
14
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 6
• Faça um programa para desenhar um quadrado
15
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 7
• Faça um programa para desenhar uma casa em 20x20
16
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tipos de Dados
• Uma das principais funções de um programa é a
manipulação de dados.
• Para entendermos corretamente como fazê-lo,
precisamos entender os tipos de dados e suas
diferenças.
17
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tipos de Dados
• Númérico
oInteiros (1, 2, 3...)
oPonto Flutuante ( 1.14, 3.1415, 5.0)
18
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tipo Literal
• Composto por letras e números
• Escrito entre aspas
A = “texto”
• Não confundir A com “A”
A é a variável A
“A” é o literal A
19
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tipos de Dados
• Lógico
o Verdadeiro
o Falso
Estes valores também são chamados
de booleanos.
20
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operadores Aritméticos
+ Adição
- Subtração
* Multiplicação
/ Divisão
• Em expressões mantém-se a prioridade das operações
como na matemática.
• Parênteses () podem ser usados para alterar esta
ordem.
21
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operadores Lógicos
Não
E
Ou
• Operadores lógicos são utilizados para modificar
valores como verdadeiro e falso, criando expressões
lógicas.
• O resultado das operações é definido pelas
chamadas tabelas-verdade de cada operador
22
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operador Não
Valor Não Valor
Verdadeiro Falso
Falso Verdadeiro
23
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operador E
A B A e B
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Falso
Falso Verdadeiro Falso
Falso Falso Falso
24
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operador Ou
A B A ou B
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso
25
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Prioridade de Avaliação
• Quando mais de um operador fizer parte
de uma sentença, é necessário
seguirmos a seguinte ordem: não, e, ou.
• Para operadores aritméticos, utiliza-se o
padrão da matemática:
1) Multiplicação e Divisão
2) Adição e Subtração
26
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 8
• Sendo A verdadeiro e B falso,
resolva:
a) A e B
b) B e não A
c) A ou B
d) A e B ou não B
e) não B
27
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operadores Relacionais
• == Igualdade
• > Maior que
• < Menor que
• >= Maior ou igual
• <= Menor ou igual
• <> Diferente de
28
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Prioridade de Operações
• Havendo vários tipos de
operadores em um expressão,
executam-se nesta ordem:
1. Aritméticos
2. Relacionais
3. Lógicos
29
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 9
• Resolva:
a) 5 * 4 < 4 + 3
b) 6 * 2 – 1 > 3 * 1
c) 9 – 4 / 2 <= 7 + 1 ou 5 * 2 – 3 <> 6
d) 9 / 3 == 3 * 3 e 2 * 3 – 1 >= 8
30
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Variáveis
• São nomes usados para representar valores
• Possuem um tipo de dados
• Só podem armazenar um valor de cada vez
• Devem ter nomes começando com letras ou _.
Podem conter números, exceto no primeiro
caractere
31
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Atribuição
• Variável = expressão
• Exemplo:
A = verdadeiro
B = 5 * 3
C = A e B
D = B * A – 2 > 4
• A atribuição é a operação que modifica o valor de uma
variável.
• É importante notar que se atribui o resultado da
expressão a variável e não a expressão em si.
32
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Seqüência
• Uma seqüência de instruções ou comandos se executa
de cima para baixo.
A = 4
B = 5
C = A + B
A = 10
• No final, A vale 10, B vale 5 e C vale 9.
Observe que o valor de C não foi alterado pelo
novo valor de A
33
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Coordenadas Relativas
• Podemos definir um
desenho ou forma
através de coordenadas
relativas a um ponto.
Imagine A,B como sendo
as coordenadas de um
ponto.
• O ponto ao lado é A+1,B
• O ponto abaixo é A, B+1
34
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 10a
• Defina os quatro
pontos que formam
os cantos de um
quadrado usando três
variáveis.
• Uma para a linha,
outra para a coluna
superior esquerda.
• A terceira deve conter
o tamanho do lado.
35
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 10b
• Defina um triângulo
de altura L.
• Defina-o usando A,B
como o ponto da
esquerda e depois
faça para os outros
dois pontos
36
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 10c
37
• Escreva um programa
para desenhar o gráfico
ao lado.
• Utilize coordenadas
relativas, considerando
A,B o primeiro ponto.
• As letras indicam a
questão e o ponto que
deve ser usado como
referência.
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Saída
• Instrução que indica a exibição de informação,
normalmente na tela
Escreva “Alô !!!”
• Utilizada também para exibir o conteúdo de variáveis e o
resultado de expressões.
Escreva A
Escreva 2 * 5
38
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Decisões
• Decidir o que fazer com base em um resultado
lógico
• Consiste na escolha do que fazer, dependendo
de uma condição
• Nem tudo segue uma ordem fixa
• Presente na maioria dos problemas
39
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Decisões
• A decisão é composta de uma condição e um ou dois
resultados. Um para o caso da condição ser verdadeira
e outro caso falso.
Se a > b:
Escreva “a é maior que b”
Senão:
Escreva “a é menor ou igual a b”
40
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Repetição
• Utilizada para delimitar um número de
instruções ou comando que deve ser executado
mais de uma vez.
• Utiliza uma condição para determinar se deve
continuar a repetir (verdadeiro) ou não (falso).
41
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exemplo de repetição
A = 1
Enquanto A < 10:
Escreva A
A = A + 1
42
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Entradas
• São pontos onde se pede a informação de um valor
Leia A
43
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 11
• Escreva um programa que peça 2
números e exiba o maior deles.
44
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 12
• Escreva um programa que pergunte um
número e escreva a tabuada de multiplicar
deste (1 até 10)
• Reescreva o programa anterior, desta vez
perguntando o limite inferior e superior da
tabela
45
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Python e Lógica
• Fica mais difícil separar Python de Lógica
• Introdução ao IDLE
• Digitando programas
46
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Expressões Lógicas
• Em Python, os
operadores relacionais
são iguais aos
aprendidos em Lógica,
exceto pelo fato de
estarem escritos em
inglês.
• Lembre-se sempre em
minúsculas.
Lógica Python
Não not
E and
Ou or
47
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operadores Relacionais
> Maior == Igualdade
< Menor <> Diferente
<= Menor ou
igual
!= Diferente
>= Maior ou
igual
48
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operadores Aritméticos
Operadores
* Multiplicação
/ Divisão
+ Adição
- Subtração
** Exponenciação
49
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Escrevendo
print “Alô mundo!”
Imprime Alô mundo! na tela
print “O valor de %d x %d é %d” % (3,4,12)
Neste exemplo, %d é como uma lacuna onde
preencheremos em ordem. O 3 para o primeiro, 4 para o
segundo e 12 para o terceiro.
50
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Escrevendo
%d só funciona para valores inteiros
%s deve ser utilizado para valores literais
print “Seu nome é %s” % (“José”)
Veja que o % aqui é usado apenas para separar a
mensagem com máscara dos valores que serão utilizados
entre parênteses.
51
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Escrevendo
print “Seu nome é %s e você tem %d anos” % (“José”, 18)
52
Seu nome é José e você tem 18 anos
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Lendo
• A leitura em Python é especial:
C = raw_input(“Digite o valor de C”)
• Digite o valor de C será impresso antes de pedir a
digitação do valor.
• raw_input sempre retorna um valor literal
53
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Lendo
Valores inteiros:
tamanho = input(“Digite o tamanho:”)
Ou
Tamanho = int (raw_input(“Digite o tamanho:”))
54
Conversão de tipo
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tipos
• Utiliza-se a função type para saber o tipo de uma
expressão.
print type(1)
<type int>
print type(2.0)
<type ‘float’>
print type(“Alô”)
<type ‘str’>
55
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Repetição
Lógica Python
A=1
enquanto A<5:
escreva A
A=A+1
A=1
while A<5:
print A
A=A+1
56
Bloco a repetir enquanto A<5
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Repetição
• O bloco será repetido enquanto a
condição for verdadeira.
• Após a última linha do bloco, a execução
volta para a linha do while onde a
condição será novamente avaliada.
57
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Repetição
58
A = 1
A < 5
A = A +1
A
Sim
Não
INÍCIO
FIM
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Definindo funções
• Você pode definir ou criar suas próprias funções.
def quadrado(a,b,c,d):
p = a
while p<c:
ponto(p,b)
ponto(p,d)
p=p+1
p = b
while p<d:
ponto(a,p)
ponto(c,p)
p=p+1
59
Esta linha define o nome da
nova função e quais
parâmetros ela recebe
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Definindo Funções
quadrado(10,8,20,15)
quadrado(a,b,c,d)
60
Seria o mesmo que:
a = 10
b = 8
c = 20
d = 15
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Cores
• Em Python, utiliza-se RGB (Red, Green, Blue) para
definirmos as cores.
(255, 0, 0) Vermelho
(0, 255, 0) Verde
(0, 0, 255) Azul
(255,255,0) Amarelo
(255,255,255) Branco
(0,0,0) Preto
61
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Condições
• O “se” da lógica vira if e o
senão else.
Lógica Python
se a>b:
escreva a
senão:
escreva b
if a>b:
print a
else:
print b
62
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Condições
63
A>B
A
B
Verdadeiro
Falso
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
O utilitário de desenho
• Visite o site:
• http://www.nilo.pro.br/python/
• Baixe os arquivos tela.py e graficos.py
• tela.py é o programa gráfico em si.
• Execute-o.
• Uma janela com grade deverá aparecer
64
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
graficos.py
• Este módulo possui uma série de funções que podem
ser utilizadas em seus programas.
• Abra-o no IDLE.
• Execute com F5
• Digite: ponto(1,1)
• Um ponto vermelho deve aparecer na tela
65
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
graficos.py
• ponto(x,y)
Exibe um ponto na cor atual na coluna x e linha y
• cor(r,g,b)
Altera a cor atual para a definida por r,g,b
(red = vermelho, green = verde, blue = azul)
66
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
graficos.py
• limpa()
Limpa todos os pontos
• limpa(t)
Limpa todos os pontos, redefinindo o gradeado
para t x t
67
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
graficos.py
• inicializa()
Estabelece a comunicação com a tela de desenho.
Deve ser o dado antes de qualquer outro comando de
desenho
• finaliza()
Termina a comunicação com a tela de desenho
68
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Usando o utilitário
• Usar a linha de comando é muito interessante no início,
mas gravar seu desenho se torna cada vez mais
importante.
• O utilitário gráfico pode ser utilizado em seus programas
Python e não apenas pelo interpretador
69
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Usando o utilitário
• Crie um novo programa em Python e digite:
from graficos import *
inicializa()
limpa(32)
cor(255,255,0)
ponto(1,1)
finaliza()
70
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 12
• Crie uma função que desenhe a partir
de uma coordenada (x,y):
a) Uma árvore
b) Uma casa
c) Um sol
71
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 13
• Faça um programa que desenhe uma
paisagem com as funções do
exercício anterior.
• Utilize mais de uma árvore e mais de
uma casa em uma tela de 64x64
pontos.
72
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Listas
• Listas são seqüências de valores
• Uma lista pode ter tamanho indeterminado
• Uma lista pode ser vazia
• Representa-se uma lista em Python através de
colchetes
A = [ 1, 2, 3]
B = [ ]
73
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• Os elementos de uma lista podem ser
referênciados através de um índice,
começando com 0 até o último
elemento.
B = [1,2,3]
print B[0]
1
print B[2]
3
74
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• append(x)
Adiciona um item ao fim da lista.
B.append(5)
print B
[1,2,3,5]
75
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• len(L)
Imprime o número de elementos da
lista L.
C=[10,40,50]
print len(c)
3
76
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• extend(L)
Concatena duas listas
A = [10, 11, 12]
B.extend(A)
print B
[1,2,3,5,10,11,12]
77
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• insert(x,l)
Insere um elemento l antes da posição x
print B
[1,2,3,5,10,11,12]
B.insert(3,4)
print b
[1,2,3,4,5,10,11,12]
78
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• remove(x)
Remove a primeira ocorrência de x
na lista. Resulta em erro caso este
não exista.
print B
[1,2,3,4,5,10,11,12]
B.remove(10)
print B
[1,2,3,4,5,11,12]
79
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• pop(i)
Remove o elemento i da lista. Se
usado sem valor pop() retorna o
último elemento da lista.
B = [1,2,3,4,5]
B.pop()
5
print B
[1,2,3,4]
80
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• index(x)
Retorna a posição do elemento cujo
valor seja igual ao de x.
B = [1,2,3,4,5]
B.index(5)
4
Retorna um erro caso este não exista
81
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• count(x)
Retorna o número de vezes que x
aparece na lista.
C = [1,1,2,2,3,3,3,3]
c.count(3)
4
82
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• sort()
Ordena os elementos da lista
D = [ 1,9,8,7]
D.sort()
print D
[1,7,8,9]
83
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações com Listas
• reverse()
Inverte a ordem dos elementos da
lista.
C = [1,2,3,4,5]
C.reverse()
print C
[5,4,3,2,1]
84
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 14
1. Crie uma lista com números de 1 à 10
2. Remova o elemento da posição 2
3. Remova o elemento de valor 5
4. Acrescente 11 e 12 ao fim da lista
5. Acrescente 0 no início da lista
6. Exiba o tamanho da lista
85
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 15
• Escreva um programa para:
o ler e imprimir 8 valores lidos do teclado.
o Escrever a média e a soma destes valores.
o Imprimir o menor e o maior.
o Utilize um menu para:
• 1. inserir valores. 2. Calcular média 3. Calcular
soma 4. Calcular o maior 5. calcular o menor. Faça
cada opção em um função diferente. Ao calcular,
imprima os resultados.
86
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tipos variados
• Uma lista pode conter elementos de
tipos diferentes.
• Exemplo:
F = [ “joão”, 15, “maria”]
G = [ 10, 15, 20, True]
87
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Listas em Listas
• Uma lista pode conter outra lista.
F = [ 1, 2, 3, [4,5,6]]
print F[3]
[4,5,6]
print len(F(3))
3
print len(F)
4
88
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Listas em Listas
• Para referenciar um valor de uma
lista dentro de outra lista, utiliza-se a
mesma notação de listas com mais
um índice.
F = [1,2,3,[4,5,6]]
print F[3][0]
4
89
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exercício 16
• Faça um programa que utilize listas
para gerenciar uma agenda de
telefones.
o A agenda deve guardar nome e telefone de várias
pessoas.
o Operações a suportar: inclusão, exclusão, alteração,
pesquisa, listagem e ordenação.
o Em todos as opções o nome do indivíduo será
utilizado como chave de pesquisa.
o Utilize menu.
90
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Funções com listas
• range(tamanho)
Cria uma lista de 0 até o valor
especificado em tamanho menos 1.
range(10)
[0,1,2,3,4,5,6,7,8,9]
91
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Funções com listas
• range(início, fim)
Cria uma lista iniciando no valor
especificado em início e
terminando em fim – 1
range(5,10)
[5,6,7,8,9]
92
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Funções com listas
• range(inicio, fim, incremento)
Igual à anterior, mas com incremento
entre os elementos
range(1,10,2)
[1,3,5,7,9]
93
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Funções com listas
• xrange
Idêntica a todas as outras formas de
range, porém otimizada para listas
grandes.
94
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
for
• Estrutura de repetição que percorre os elementos de
uma lista.
for elemento in lista:
• Exemplo: Imprimir todos os elementos
for a in range(10):
print a
95
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Usando Listas como pilhas
• Uma pilha é uma estrutura de dados com uma
política de inclusão e exclusão de elementos
bem definida.
• Em pilhas, a inclusão sempre é feita no topo ou
fim, assim como as exclusões.
• A estrutura é similar a uma pilha de pratos.
• Coloca-se sempre um sobre o outro e retira-se
sempre pelo topo.
96
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Usando Listas como pilhas
pilha = [3, 4, 5]
pilha.append(6)
pilha.append(7)
print pilha
[3,4,5,6,7]
pilha.pop()
[3,4,5,6]
pilha.pop()
[3,4,5]
97
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Usando listas como filas
• Filas são estruturas de dados onde se
insere no fim e retira-se no início.
• É uma estrutura similar a uma fila de
cinema.
• O primeiro que chega é o primeiro a
entrar.
• Os que chegam depois vão para o fim da
fila.
98
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Usando listas como filas
Fila = [ “João”, “Maria”]
Fila.append(“José”)
Fila.pop(0)
“João”
print Fila
[ “Maria”, “José”]
99
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
filter
• Formato:
filter (função, lista)
• A função filter aplica a função passada como parâmetro
a cada elemento da lista, retornando uma outra lista
onde com os elementos cujo retorno de função é
verdadeiro.
• Utilizada para filtrar ou selecionar valores.
100
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
filter
def f(x):
return x % 2 == 0
print filter(f, [0,1,2,3,4,5,6,7,8])
[0,2,4,6,8]
101
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
map
• Formato:
map(função, lista)
• map funciona de forma semelhante a filter, porém esta
retorna uma lista com o retorno de função aplicada a
cada elemento da lista.
• Mais de uma lista pode ser passada como parâmetro.
Neste caso, o número de argumentos de função deve
ser igual ao de listas.
102
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
map
def fatorial(x):
if x <=1:
return 1
else:
return x * fatorial(x-1)
map(fatorial, [1,2,3,4,5])
[1, 2, 6, 24, 120]
103
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
map
• Um caso especial de map é passar None como função.
• Neste caso, map retornará uma lista com os argumentos
que seriam passados.
map(None, [1,2,3],[4,5,6])
[(1,4), (2,5), (3,6)]
104
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
reduce
• Formato:
reduce(função, lista)
• Aplica função aos elementos da lista.
• Na primeira vez, passa o primeiro e o segundo
elemento.
• Nas próximas, o resultado da chamada anterior com o
próximo elemento.
105
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
reduce
def mult(x,y):
return x * y
reduce(mult, [1,2,3,4,5])
120
• Um terceiro parâmetro pode ser passado, indicando o
valor inicial.
106
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
del
• Del é utilizada para remover um elemento de
uma lista através de seu índice.
del lista(x)
• Remove o elemento x de lista
A = [1,2,3]
del a[0]
print A
[2,3]
• Del também pode ser utilizada para apagar variáveis.
107
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tuplas
• Tuplas funcionam como e compartilham muitas das
propriedades de listas, porém tuplas não podem ser
alteradas.
• Utilizamos ( ) invés de [] para denotar tuplas.
T = ( 1,2,3 )
J = ( “joão”, “maria”, “josé” )
108
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tuplas
• Uma tupla vazia é criada por:
T = ()
• Uma tupla com um elemento exige vírgula após este:
T = ( “joão”, )
109
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Tuplas
• Tuplas podem ser usadas para atribuições múltiplas.
• Exemplo:
A, B = ( 10, 15 )
• É equivalente a A = 10 e B = 15
110
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Strings
• Strings podem ser manipuladas como tuplas.
• E assim como tuplas não podem ser alteradas.
Nome = “João”
print Nome[0]
J
111
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Strings
Para alterar uma String pode-se convertê-la em lista.
S = “João”
SL = list(S)
print SL
[‘J’,’o’,’ã’,’o’]
112
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Strings
• Para converter uma lista em string, utilize o método join
da string.
S = S.join(SL)
• Embora não possamos alterar strings, nada nos impede
de criarmos novas.
• S = S + “A”
113
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Fatias
• Tuplas, listas e strings suportam um tipo de operação
chamado slicing (fatiamento).
A = [1,2,3,4,5]
print A[0:2]
[1,2]
print A[1:]
[2,3,4,5]
print A[:4]
[1, 2, 3, 4]
114
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Fatias
• A notação de fatia é [inicio:fim] sendo início inclusive,
mas fim não.
• Isto é, [1:4] inclui o elemento 1, mas não o elemento 4.
• [:] pode ser utilizado para criar uma nova cópia de string
ou lista.
• Valores negativos indicam que a contagem se inicia do
fim da seqüência.
115
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Dicionários
• Dicionários são estruturas de dados que permitem
indexar um elemento através de sua chave.
• Dicionários são escritos entre chaves e sempre no
formato chave:valor.
• Exemplo:
Telefones = { “nilo”:9717, “joana”:9784}
116
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Dicionários
• Para acessar os valores de um dicionário, colocamos a
chave entre colchetes, com em listas:
print Telefones[“nilo”]
9717
117
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Dicionários
• O método has_key pode ser utilizado para verificar se
uma chave existe.
Telefones.has_key(“nilo”)
True
Telefones.has_key(“maria”)
False
• Você também pode obter o mesmo efeito com in:
“nilo” in Telefones
True
“maria” in Telefones
false
118
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Dicionários
• Para adicionarmos elementos a um dicionário basta
especificar uma nova chave.
Telefones[“maria”] = 9784
• para listar todas as chaves de um dicionário, utilizamos
o método keys() que retorna uma lista.
print Telefones.keys()
[“nilo”, “joana”, “maria”]
119
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Dicionários
• Utiliza-se del para remover um elemento de um
dicionário.
del Telefones[“nilo”]
• Dicionários podem ser construídos através de uma lista
de tuplas e do método dict.
print dict( [ (“nilo”, 9717),(“joana”, 9784)])
{ “nilo”: 9717, “joana”:9784 }
120
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Dicionários
• Utiliza-se o método items para retornar uma lista com
tuplas chave, valor.
print Telefones.items()
[(“nilo”, 9717), (“joana”, 9784)
• Utiliza-se o método values para retornar um lista com os
valores.
print Telefones.values()
[9717, 9784]
121
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações avançadas
• Criação de listas com notação de função (List
comprehensions).
[ x * 2 for x in range(5) ]
• Cria uma lista [0,2,4,6,8]
122
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Operações Avançadas - Lambda
• Funções lambda são semelhantes a funções, mas não
tem nome e podem ser utilizadas como variável.
F = lambda x: x+5
print F(4)
9
123
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Arquivos
• Arquivos são estruturas de dados armazenadas em
disco.
• Em Python, utiliza-se a função open para abrir um
arquivo.
F = open(nome_do_arquivo, modo)
print F.readline()
F.close()
124
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Arquivos
• Modos para abertura de arquivos:
Modo Função
r Leitura
w Escrita. Apaga caso já exista
a Abre para adicionar ao final (append)
r+ Leitura e escrita
b Indica modo binário
125
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Arquivos
• Todo arquivo aberto deve ser fechado
com uma chamada a close.
126
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Arquivos
• read(x)
Lê um deterninado número de bytes (x)
retornando como string.
• readline()
Lê e retorna uma linha.
• readlines()
Retorna todas as linhas de um arquivo
numa lista.
127
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Arquivos
• xreadlines()
Semelhante ao xrange, otimizada para ler arquivos
muito grandes.
• tell()
Retorna a posição corrente no arquivo
• seek(posição, referência)
Move o ponteiro do arquivo para posição. Refência (0
início, 1 atual, 2 fim)
128
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Exceções
• Muitas funções em Python fazem o programa terminar
em caso de erro.
• Isto acontece porque uma exceção foi gerada.
• Exceções não tratadas causam o fim do programa.
try:
programa
except:
tratamento
129
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
Onde aprender mais
• Visite o site:
http://www.nilo.pro.br/iprog/
para uma versão atualizada e completa do curso de
introdução à programação.
130
Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/

Mais conteúdo relacionado

Semelhante a apresentação Curso de Python ppt python for all

Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...Deep Tech Brasil
 
OMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHPOMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHPJansen Felipe
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Especificação e Verificação de Programas
Especificação e Verificação de ProgramasEspecificação e Verificação de Programas
Especificação e Verificação de ProgramasAdolfo Neto
 
Curso lógica de programação
Curso   lógica de programaçãoCurso   lógica de programação
Curso lógica de programaçãoPaulo Batista
 
Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2
Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2
Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2Urique Hoffmann
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em InformáticaEder Carneiro
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Alex Camargo
 
Micro serviços como ferramenta de inovação
Micro serviços como ferramenta de inovaçãoMicro serviços como ferramenta de inovação
Micro serviços como ferramenta de inovaçãoPedro Henrique
 

Semelhante a apresentação Curso de Python ppt python for all (20)

01-Paradigmas.pdf
01-Paradigmas.pdf01-Paradigmas.pdf
01-Paradigmas.pdf
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
 
OMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHPOMR (Optical Mark Recognition) with PHP
OMR (Optical Mark Recognition) with PHP
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Especificação e Verificação de Programas
Especificação e Verificação de ProgramasEspecificação e Verificação de Programas
Especificação e Verificação de Programas
 
Curso lógica de programação
Curso   lógica de programaçãoCurso   lógica de programação
Curso lógica de programação
 
LP1 P01 - Python.pdf
LP1 P01 - Python.pdfLP1 P01 - Python.pdf
LP1 P01 - Python.pdf
 
Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2
Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2
Projeto de Software - PIC Eletrônico - Gerência de Projetos UFAM 2012/2
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Treinamentos Avançados em Informática
Treinamentos Avançados em InformáticaTreinamentos Avançados em Informática
Treinamentos Avançados em Informática
 
Cursos Season
Cursos SeasonCursos Season
Cursos Season
 
Cursos Season
Cursos Season Cursos Season
Cursos Season
 
Pi1415 tudo
Pi1415 tudoPi1415 tudo
Pi1415 tudo
 
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
 
Micro serviços como ferramenta de inovação
Micro serviços como ferramenta de inovaçãoMicro serviços como ferramenta de inovação
Micro serviços como ferramenta de inovação
 
Visualg
VisualgVisualg
Visualg
 

Mais de RosibertoGonalves

Apresentação SEE 2023 1 .p p t x - vacinação
Apresentação SEE 2023  1 .p p t x - vacinaçãoApresentação SEE 2023  1 .p p t x - vacinação
Apresentação SEE 2023 1 .p p t x - vacinaçãoRosibertoGonalves
 
Palestra Fiware - FliSol - v7_Final.pptx
Palestra Fiware - FliSol - v7_Final.pptxPalestra Fiware - FliSol - v7_Final.pptx
Palestra Fiware - FliSol - v7_Final.pptxRosibertoGonalves
 
Material de Apoio - MSLE a certificação azure
Material de Apoio - MSLE a certificação azureMaterial de Apoio - MSLE a certificação azure
Material de Apoio - MSLE a certificação azureRosibertoGonalves
 
sistemas embarcados apresentação embarca
sistemas embarcados apresentação embarcasistemas embarcados apresentação embarca
sistemas embarcados apresentação embarcaRosibertoGonalves
 
G e n d e r - a p p l i c a t i o n - g u i d e lines.pptx
G e n d e r - a p p l i c a t i o n - g u i d e lines.pptxG e n d e r - a p p l i c a t i o n - g u i d e lines.pptx
G e n d e r - a p p l i c a t i o n - g u i d e lines.pptxRosibertoGonalves
 
arelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptx
arelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptxarelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptx
arelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptxRosibertoGonalves
 
Budget Guide Call 5 p p t x Budget Guide Cal
Budget Guide Call 5 p p t  x Budget Guide CalBudget Guide Call 5 p p t  x Budget Guide Cal
Budget Guide Call 5 p p t x Budget Guide CalRosibertoGonalves
 
percurso2_AF_MA_PF3_PPT_.pptx
percurso2_AF_MA_PF3_PPT_.pptxpercurso2_AF_MA_PF3_PPT_.pptx
percurso2_AF_MA_PF3_PPT_.pptxRosibertoGonalves
 

Mais de RosibertoGonalves (9)

Apresentação SEE 2023 1 .p p t x - vacinação
Apresentação SEE 2023  1 .p p t x - vacinaçãoApresentação SEE 2023  1 .p p t x - vacinação
Apresentação SEE 2023 1 .p p t x - vacinação
 
Palestra Fiware - FliSol - v7_Final.pptx
Palestra Fiware - FliSol - v7_Final.pptxPalestra Fiware - FliSol - v7_Final.pptx
Palestra Fiware - FliSol - v7_Final.pptx
 
Material de Apoio - MSLE a certificação azure
Material de Apoio - MSLE a certificação azureMaterial de Apoio - MSLE a certificação azure
Material de Apoio - MSLE a certificação azure
 
sistemas embarcados apresentação embarca
sistemas embarcados apresentação embarcasistemas embarcados apresentação embarca
sistemas embarcados apresentação embarca
 
G e n d e r - a p p l i c a t i o n - g u i d e lines.pptx
G e n d e r - a p p l i c a t i o n - g u i d e lines.pptxG e n d e r - a p p l i c a t i o n - g u i d e lines.pptx
G e n d e r - a p p l i c a t i o n - g u i d e lines.pptx
 
arelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptx
arelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptxarelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptx
arelacaoinventivadaroboticaeeducacao-marygracepereiraandrioli.pptx
 
Budget Guide Call 5 p p t x Budget Guide Cal
Budget Guide Call 5 p p t  x Budget Guide CalBudget Guide Call 5 p p t  x Budget Guide Cal
Budget Guide Call 5 p p t x Budget Guide Cal
 
percurso2_AF_MA_PF3_PPT_.pptx
percurso2_AF_MA_PF3_PPT_.pptxpercurso2_AF_MA_PF3_PPT_.pptx
percurso2_AF_MA_PF3_PPT_.pptx
 
Aula7ArquivosDB.ppt
Aula7ArquivosDB.pptAula7ArquivosDB.ppt
Aula7ArquivosDB.ppt
 

Último

Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 

Último (20)

Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 

apresentação Curso de Python ppt python for all

  • 1. 1 Lógica de Programação com Python por Nilo Menezes http://www.nilo.pro.br/python/ Python 2.7 – requer PyGame Atualizada em 30/10/2012 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 2. Objetivos • Introduzir os conceitos de programação • Apresentar as principais estruturas de dados • Construir programas exemplo • Utilizar uma linguagem de programação (Python) 2 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 3. Você • Apresentação oNome oCurso oO que já sabe? oO que espera do curso? oAprender lógica para que? 3 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 4. Por que programar é difícil? 4 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 5. O que fazer ? 5 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 6. Por que Python? 6 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 7. Exercício 1 •Faça uma descrição em português de como desligar o computador. 7 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 8. Uma abordagem gráfica • A programação de computadores é intimamente relacionada com a matemática e diversos problemas computacionais. • Uma abordagem gráfica é sugerida para facilitar a introdução aos principais conceitos. 8 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 9. • Para desenhar, precisamos definir um sistema de coordenadas para corretamente identificar os pontos de um desenho. • Sistema de coordenadas • Utilizaremos daqui para frente coluna e linha para indicar uma posição. • 5 x 10 significa: coluna 5, linha 10 9 Uma abordagem gráfica Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 10. Uma abordagem gráfica • Um ponto ponto(coluna, linha) • Três pontos ponto(1,1) ponto(1,2) ponto(1,3) 10 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 11. Exercício 2 • Faça um programa para desenhar uma linha vertical numa tela de 5x5 11 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 12. Exercício 3 • Faça um programa para desenhar uma linha horizontal numa tela de 5x5 12 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 13. Exercício 4 • Faça um programa para desenhar uma linha diagonal numa tela de 5x5 13 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 14. Exercício 5 • Faça um programa para desenhar um triângulo 14 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 15. Exercício 6 • Faça um programa para desenhar um quadrado 15 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 16. Exercício 7 • Faça um programa para desenhar uma casa em 20x20 16 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 17. Tipos de Dados • Uma das principais funções de um programa é a manipulação de dados. • Para entendermos corretamente como fazê-lo, precisamos entender os tipos de dados e suas diferenças. 17 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 18. Tipos de Dados • Númérico oInteiros (1, 2, 3...) oPonto Flutuante ( 1.14, 3.1415, 5.0) 18 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 19. Tipo Literal • Composto por letras e números • Escrito entre aspas A = “texto” • Não confundir A com “A” A é a variável A “A” é o literal A 19 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 20. Tipos de Dados • Lógico o Verdadeiro o Falso Estes valores também são chamados de booleanos. 20 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 21. Operadores Aritméticos + Adição - Subtração * Multiplicação / Divisão • Em expressões mantém-se a prioridade das operações como na matemática. • Parênteses () podem ser usados para alterar esta ordem. 21 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 22. Operadores Lógicos Não E Ou • Operadores lógicos são utilizados para modificar valores como verdadeiro e falso, criando expressões lógicas. • O resultado das operações é definido pelas chamadas tabelas-verdade de cada operador 22 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 23. Operador Não Valor Não Valor Verdadeiro Falso Falso Verdadeiro 23 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 24. Operador E A B A e B Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Falso Falso Verdadeiro Falso Falso Falso Falso 24 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 25. Operador Ou A B A ou B Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Falso Verdadeiro Verdadeiro Falso Falso Falso 25 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 26. Prioridade de Avaliação • Quando mais de um operador fizer parte de uma sentença, é necessário seguirmos a seguinte ordem: não, e, ou. • Para operadores aritméticos, utiliza-se o padrão da matemática: 1) Multiplicação e Divisão 2) Adição e Subtração 26 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 27. Exercício 8 • Sendo A verdadeiro e B falso, resolva: a) A e B b) B e não A c) A ou B d) A e B ou não B e) não B 27 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 28. Operadores Relacionais • == Igualdade • > Maior que • < Menor que • >= Maior ou igual • <= Menor ou igual • <> Diferente de 28 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 29. Prioridade de Operações • Havendo vários tipos de operadores em um expressão, executam-se nesta ordem: 1. Aritméticos 2. Relacionais 3. Lógicos 29 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 30. Exercício 9 • Resolva: a) 5 * 4 < 4 + 3 b) 6 * 2 – 1 > 3 * 1 c) 9 – 4 / 2 <= 7 + 1 ou 5 * 2 – 3 <> 6 d) 9 / 3 == 3 * 3 e 2 * 3 – 1 >= 8 30 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 31. Variáveis • São nomes usados para representar valores • Possuem um tipo de dados • Só podem armazenar um valor de cada vez • Devem ter nomes começando com letras ou _. Podem conter números, exceto no primeiro caractere 31 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 32. Atribuição • Variável = expressão • Exemplo: A = verdadeiro B = 5 * 3 C = A e B D = B * A – 2 > 4 • A atribuição é a operação que modifica o valor de uma variável. • É importante notar que se atribui o resultado da expressão a variável e não a expressão em si. 32 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 33. Seqüência • Uma seqüência de instruções ou comandos se executa de cima para baixo. A = 4 B = 5 C = A + B A = 10 • No final, A vale 10, B vale 5 e C vale 9. Observe que o valor de C não foi alterado pelo novo valor de A 33 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 34. Coordenadas Relativas • Podemos definir um desenho ou forma através de coordenadas relativas a um ponto. Imagine A,B como sendo as coordenadas de um ponto. • O ponto ao lado é A+1,B • O ponto abaixo é A, B+1 34 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 35. Exercício 10a • Defina os quatro pontos que formam os cantos de um quadrado usando três variáveis. • Uma para a linha, outra para a coluna superior esquerda. • A terceira deve conter o tamanho do lado. 35 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 36. Exercício 10b • Defina um triângulo de altura L. • Defina-o usando A,B como o ponto da esquerda e depois faça para os outros dois pontos 36 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 37. Exercício 10c 37 • Escreva um programa para desenhar o gráfico ao lado. • Utilize coordenadas relativas, considerando A,B o primeiro ponto. • As letras indicam a questão e o ponto que deve ser usado como referência. Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 38. Saída • Instrução que indica a exibição de informação, normalmente na tela Escreva “Alô !!!” • Utilizada também para exibir o conteúdo de variáveis e o resultado de expressões. Escreva A Escreva 2 * 5 38 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 39. Decisões • Decidir o que fazer com base em um resultado lógico • Consiste na escolha do que fazer, dependendo de uma condição • Nem tudo segue uma ordem fixa • Presente na maioria dos problemas 39 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 40. Decisões • A decisão é composta de uma condição e um ou dois resultados. Um para o caso da condição ser verdadeira e outro caso falso. Se a > b: Escreva “a é maior que b” Senão: Escreva “a é menor ou igual a b” 40 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 41. Repetição • Utilizada para delimitar um número de instruções ou comando que deve ser executado mais de uma vez. • Utiliza uma condição para determinar se deve continuar a repetir (verdadeiro) ou não (falso). 41 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 42. Exemplo de repetição A = 1 Enquanto A < 10: Escreva A A = A + 1 42 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 43. Entradas • São pontos onde se pede a informação de um valor Leia A 43 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 44. Exercício 11 • Escreva um programa que peça 2 números e exiba o maior deles. 44 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 45. Exercício 12 • Escreva um programa que pergunte um número e escreva a tabuada de multiplicar deste (1 até 10) • Reescreva o programa anterior, desta vez perguntando o limite inferior e superior da tabela 45 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 46. Python e Lógica • Fica mais difícil separar Python de Lógica • Introdução ao IDLE • Digitando programas 46 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 47. Expressões Lógicas • Em Python, os operadores relacionais são iguais aos aprendidos em Lógica, exceto pelo fato de estarem escritos em inglês. • Lembre-se sempre em minúsculas. Lógica Python Não not E and Ou or 47 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 48. Operadores Relacionais > Maior == Igualdade < Menor <> Diferente <= Menor ou igual != Diferente >= Maior ou igual 48 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 49. Operadores Aritméticos Operadores * Multiplicação / Divisão + Adição - Subtração ** Exponenciação 49 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 50. Escrevendo print “Alô mundo!” Imprime Alô mundo! na tela print “O valor de %d x %d é %d” % (3,4,12) Neste exemplo, %d é como uma lacuna onde preencheremos em ordem. O 3 para o primeiro, 4 para o segundo e 12 para o terceiro. 50 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 51. Escrevendo %d só funciona para valores inteiros %s deve ser utilizado para valores literais print “Seu nome é %s” % (“José”) Veja que o % aqui é usado apenas para separar a mensagem com máscara dos valores que serão utilizados entre parênteses. 51 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 52. Escrevendo print “Seu nome é %s e você tem %d anos” % (“José”, 18) 52 Seu nome é José e você tem 18 anos Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 53. Lendo • A leitura em Python é especial: C = raw_input(“Digite o valor de C”) • Digite o valor de C será impresso antes de pedir a digitação do valor. • raw_input sempre retorna um valor literal 53 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 54. Lendo Valores inteiros: tamanho = input(“Digite o tamanho:”) Ou Tamanho = int (raw_input(“Digite o tamanho:”)) 54 Conversão de tipo Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 55. Tipos • Utiliza-se a função type para saber o tipo de uma expressão. print type(1) <type int> print type(2.0) <type ‘float’> print type(“Alô”) <type ‘str’> 55 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 56. Repetição Lógica Python A=1 enquanto A<5: escreva A A=A+1 A=1 while A<5: print A A=A+1 56 Bloco a repetir enquanto A<5 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 57. Repetição • O bloco será repetido enquanto a condição for verdadeira. • Após a última linha do bloco, a execução volta para a linha do while onde a condição será novamente avaliada. 57 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 58. Repetição 58 A = 1 A < 5 A = A +1 A Sim Não INÍCIO FIM Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 59. Definindo funções • Você pode definir ou criar suas próprias funções. def quadrado(a,b,c,d): p = a while p<c: ponto(p,b) ponto(p,d) p=p+1 p = b while p<d: ponto(a,p) ponto(c,p) p=p+1 59 Esta linha define o nome da nova função e quais parâmetros ela recebe Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 60. Definindo Funções quadrado(10,8,20,15) quadrado(a,b,c,d) 60 Seria o mesmo que: a = 10 b = 8 c = 20 d = 15 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 61. Cores • Em Python, utiliza-se RGB (Red, Green, Blue) para definirmos as cores. (255, 0, 0) Vermelho (0, 255, 0) Verde (0, 0, 255) Azul (255,255,0) Amarelo (255,255,255) Branco (0,0,0) Preto 61 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 62. Condições • O “se” da lógica vira if e o senão else. Lógica Python se a>b: escreva a senão: escreva b if a>b: print a else: print b 62 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 63. Condições 63 A>B A B Verdadeiro Falso Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 64. O utilitário de desenho • Visite o site: • http://www.nilo.pro.br/python/ • Baixe os arquivos tela.py e graficos.py • tela.py é o programa gráfico em si. • Execute-o. • Uma janela com grade deverá aparecer 64 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 65. graficos.py • Este módulo possui uma série de funções que podem ser utilizadas em seus programas. • Abra-o no IDLE. • Execute com F5 • Digite: ponto(1,1) • Um ponto vermelho deve aparecer na tela 65 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 66. graficos.py • ponto(x,y) Exibe um ponto na cor atual na coluna x e linha y • cor(r,g,b) Altera a cor atual para a definida por r,g,b (red = vermelho, green = verde, blue = azul) 66 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 67. graficos.py • limpa() Limpa todos os pontos • limpa(t) Limpa todos os pontos, redefinindo o gradeado para t x t 67 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 68. graficos.py • inicializa() Estabelece a comunicação com a tela de desenho. Deve ser o dado antes de qualquer outro comando de desenho • finaliza() Termina a comunicação com a tela de desenho 68 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 69. Usando o utilitário • Usar a linha de comando é muito interessante no início, mas gravar seu desenho se torna cada vez mais importante. • O utilitário gráfico pode ser utilizado em seus programas Python e não apenas pelo interpretador 69 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 70. Usando o utilitário • Crie um novo programa em Python e digite: from graficos import * inicializa() limpa(32) cor(255,255,0) ponto(1,1) finaliza() 70 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 71. Exercício 12 • Crie uma função que desenhe a partir de uma coordenada (x,y): a) Uma árvore b) Uma casa c) Um sol 71 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 72. Exercício 13 • Faça um programa que desenhe uma paisagem com as funções do exercício anterior. • Utilize mais de uma árvore e mais de uma casa em uma tela de 64x64 pontos. 72 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 73. Listas • Listas são seqüências de valores • Uma lista pode ter tamanho indeterminado • Uma lista pode ser vazia • Representa-se uma lista em Python através de colchetes A = [ 1, 2, 3] B = [ ] 73 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 74. Operações com Listas • Os elementos de uma lista podem ser referênciados através de um índice, começando com 0 até o último elemento. B = [1,2,3] print B[0] 1 print B[2] 3 74 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 75. Operações com Listas • append(x) Adiciona um item ao fim da lista. B.append(5) print B [1,2,3,5] 75 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 76. Operações com Listas • len(L) Imprime o número de elementos da lista L. C=[10,40,50] print len(c) 3 76 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 77. Operações com Listas • extend(L) Concatena duas listas A = [10, 11, 12] B.extend(A) print B [1,2,3,5,10,11,12] 77 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 78. Operações com Listas • insert(x,l) Insere um elemento l antes da posição x print B [1,2,3,5,10,11,12] B.insert(3,4) print b [1,2,3,4,5,10,11,12] 78 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 79. Operações com Listas • remove(x) Remove a primeira ocorrência de x na lista. Resulta em erro caso este não exista. print B [1,2,3,4,5,10,11,12] B.remove(10) print B [1,2,3,4,5,11,12] 79 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 80. Operações com Listas • pop(i) Remove o elemento i da lista. Se usado sem valor pop() retorna o último elemento da lista. B = [1,2,3,4,5] B.pop() 5 print B [1,2,3,4] 80 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 81. Operações com Listas • index(x) Retorna a posição do elemento cujo valor seja igual ao de x. B = [1,2,3,4,5] B.index(5) 4 Retorna um erro caso este não exista 81 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 82. Operações com Listas • count(x) Retorna o número de vezes que x aparece na lista. C = [1,1,2,2,3,3,3,3] c.count(3) 4 82 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 83. Operações com Listas • sort() Ordena os elementos da lista D = [ 1,9,8,7] D.sort() print D [1,7,8,9] 83 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 84. Operações com Listas • reverse() Inverte a ordem dos elementos da lista. C = [1,2,3,4,5] C.reverse() print C [5,4,3,2,1] 84 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 85. Exercício 14 1. Crie uma lista com números de 1 à 10 2. Remova o elemento da posição 2 3. Remova o elemento de valor 5 4. Acrescente 11 e 12 ao fim da lista 5. Acrescente 0 no início da lista 6. Exiba o tamanho da lista 85 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 86. Exercício 15 • Escreva um programa para: o ler e imprimir 8 valores lidos do teclado. o Escrever a média e a soma destes valores. o Imprimir o menor e o maior. o Utilize um menu para: • 1. inserir valores. 2. Calcular média 3. Calcular soma 4. Calcular o maior 5. calcular o menor. Faça cada opção em um função diferente. Ao calcular, imprima os resultados. 86 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 87. Tipos variados • Uma lista pode conter elementos de tipos diferentes. • Exemplo: F = [ “joão”, 15, “maria”] G = [ 10, 15, 20, True] 87 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 88. Listas em Listas • Uma lista pode conter outra lista. F = [ 1, 2, 3, [4,5,6]] print F[3] [4,5,6] print len(F(3)) 3 print len(F) 4 88 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 89. Listas em Listas • Para referenciar um valor de uma lista dentro de outra lista, utiliza-se a mesma notação de listas com mais um índice. F = [1,2,3,[4,5,6]] print F[3][0] 4 89 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 90. Exercício 16 • Faça um programa que utilize listas para gerenciar uma agenda de telefones. o A agenda deve guardar nome e telefone de várias pessoas. o Operações a suportar: inclusão, exclusão, alteração, pesquisa, listagem e ordenação. o Em todos as opções o nome do indivíduo será utilizado como chave de pesquisa. o Utilize menu. 90 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 91. Funções com listas • range(tamanho) Cria uma lista de 0 até o valor especificado em tamanho menos 1. range(10) [0,1,2,3,4,5,6,7,8,9] 91 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 92. Funções com listas • range(início, fim) Cria uma lista iniciando no valor especificado em início e terminando em fim – 1 range(5,10) [5,6,7,8,9] 92 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 93. Funções com listas • range(inicio, fim, incremento) Igual à anterior, mas com incremento entre os elementos range(1,10,2) [1,3,5,7,9] 93 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 94. Funções com listas • xrange Idêntica a todas as outras formas de range, porém otimizada para listas grandes. 94 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 95. for • Estrutura de repetição que percorre os elementos de uma lista. for elemento in lista: • Exemplo: Imprimir todos os elementos for a in range(10): print a 95 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 96. Usando Listas como pilhas • Uma pilha é uma estrutura de dados com uma política de inclusão e exclusão de elementos bem definida. • Em pilhas, a inclusão sempre é feita no topo ou fim, assim como as exclusões. • A estrutura é similar a uma pilha de pratos. • Coloca-se sempre um sobre o outro e retira-se sempre pelo topo. 96 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 97. Usando Listas como pilhas pilha = [3, 4, 5] pilha.append(6) pilha.append(7) print pilha [3,4,5,6,7] pilha.pop() [3,4,5,6] pilha.pop() [3,4,5] 97 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 98. Usando listas como filas • Filas são estruturas de dados onde se insere no fim e retira-se no início. • É uma estrutura similar a uma fila de cinema. • O primeiro que chega é o primeiro a entrar. • Os que chegam depois vão para o fim da fila. 98 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 99. Usando listas como filas Fila = [ “João”, “Maria”] Fila.append(“José”) Fila.pop(0) “João” print Fila [ “Maria”, “José”] 99 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 100. filter • Formato: filter (função, lista) • A função filter aplica a função passada como parâmetro a cada elemento da lista, retornando uma outra lista onde com os elementos cujo retorno de função é verdadeiro. • Utilizada para filtrar ou selecionar valores. 100 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 101. filter def f(x): return x % 2 == 0 print filter(f, [0,1,2,3,4,5,6,7,8]) [0,2,4,6,8] 101 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 102. map • Formato: map(função, lista) • map funciona de forma semelhante a filter, porém esta retorna uma lista com o retorno de função aplicada a cada elemento da lista. • Mais de uma lista pode ser passada como parâmetro. Neste caso, o número de argumentos de função deve ser igual ao de listas. 102 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 103. map def fatorial(x): if x <=1: return 1 else: return x * fatorial(x-1) map(fatorial, [1,2,3,4,5]) [1, 2, 6, 24, 120] 103 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 104. map • Um caso especial de map é passar None como função. • Neste caso, map retornará uma lista com os argumentos que seriam passados. map(None, [1,2,3],[4,5,6]) [(1,4), (2,5), (3,6)] 104 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 105. reduce • Formato: reduce(função, lista) • Aplica função aos elementos da lista. • Na primeira vez, passa o primeiro e o segundo elemento. • Nas próximas, o resultado da chamada anterior com o próximo elemento. 105 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 106. reduce def mult(x,y): return x * y reduce(mult, [1,2,3,4,5]) 120 • Um terceiro parâmetro pode ser passado, indicando o valor inicial. 106 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 107. del • Del é utilizada para remover um elemento de uma lista através de seu índice. del lista(x) • Remove o elemento x de lista A = [1,2,3] del a[0] print A [2,3] • Del também pode ser utilizada para apagar variáveis. 107 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 108. Tuplas • Tuplas funcionam como e compartilham muitas das propriedades de listas, porém tuplas não podem ser alteradas. • Utilizamos ( ) invés de [] para denotar tuplas. T = ( 1,2,3 ) J = ( “joão”, “maria”, “josé” ) 108 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 109. Tuplas • Uma tupla vazia é criada por: T = () • Uma tupla com um elemento exige vírgula após este: T = ( “joão”, ) 109 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 110. Tuplas • Tuplas podem ser usadas para atribuições múltiplas. • Exemplo: A, B = ( 10, 15 ) • É equivalente a A = 10 e B = 15 110 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 111. Strings • Strings podem ser manipuladas como tuplas. • E assim como tuplas não podem ser alteradas. Nome = “João” print Nome[0] J 111 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 112. Strings Para alterar uma String pode-se convertê-la em lista. S = “João” SL = list(S) print SL [‘J’,’o’,’ã’,’o’] 112 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 113. Strings • Para converter uma lista em string, utilize o método join da string. S = S.join(SL) • Embora não possamos alterar strings, nada nos impede de criarmos novas. • S = S + “A” 113 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 114. Fatias • Tuplas, listas e strings suportam um tipo de operação chamado slicing (fatiamento). A = [1,2,3,4,5] print A[0:2] [1,2] print A[1:] [2,3,4,5] print A[:4] [1, 2, 3, 4] 114 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 115. Fatias • A notação de fatia é [inicio:fim] sendo início inclusive, mas fim não. • Isto é, [1:4] inclui o elemento 1, mas não o elemento 4. • [:] pode ser utilizado para criar uma nova cópia de string ou lista. • Valores negativos indicam que a contagem se inicia do fim da seqüência. 115 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 116. Dicionários • Dicionários são estruturas de dados que permitem indexar um elemento através de sua chave. • Dicionários são escritos entre chaves e sempre no formato chave:valor. • Exemplo: Telefones = { “nilo”:9717, “joana”:9784} 116 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 117. Dicionários • Para acessar os valores de um dicionário, colocamos a chave entre colchetes, com em listas: print Telefones[“nilo”] 9717 117 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 118. Dicionários • O método has_key pode ser utilizado para verificar se uma chave existe. Telefones.has_key(“nilo”) True Telefones.has_key(“maria”) False • Você também pode obter o mesmo efeito com in: “nilo” in Telefones True “maria” in Telefones false 118 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 119. Dicionários • Para adicionarmos elementos a um dicionário basta especificar uma nova chave. Telefones[“maria”] = 9784 • para listar todas as chaves de um dicionário, utilizamos o método keys() que retorna uma lista. print Telefones.keys() [“nilo”, “joana”, “maria”] 119 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 120. Dicionários • Utiliza-se del para remover um elemento de um dicionário. del Telefones[“nilo”] • Dicionários podem ser construídos através de uma lista de tuplas e do método dict. print dict( [ (“nilo”, 9717),(“joana”, 9784)]) { “nilo”: 9717, “joana”:9784 } 120 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 121. Dicionários • Utiliza-se o método items para retornar uma lista com tuplas chave, valor. print Telefones.items() [(“nilo”, 9717), (“joana”, 9784) • Utiliza-se o método values para retornar um lista com os valores. print Telefones.values() [9717, 9784] 121 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 122. Operações avançadas • Criação de listas com notação de função (List comprehensions). [ x * 2 for x in range(5) ] • Cria uma lista [0,2,4,6,8] 122 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 123. Operações Avançadas - Lambda • Funções lambda são semelhantes a funções, mas não tem nome e podem ser utilizadas como variável. F = lambda x: x+5 print F(4) 9 123 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 124. Arquivos • Arquivos são estruturas de dados armazenadas em disco. • Em Python, utiliza-se a função open para abrir um arquivo. F = open(nome_do_arquivo, modo) print F.readline() F.close() 124 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 125. Arquivos • Modos para abertura de arquivos: Modo Função r Leitura w Escrita. Apaga caso já exista a Abre para adicionar ao final (append) r+ Leitura e escrita b Indica modo binário 125 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 126. Arquivos • Todo arquivo aberto deve ser fechado com uma chamada a close. 126 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 127. Arquivos • read(x) Lê um deterninado número de bytes (x) retornando como string. • readline() Lê e retorna uma linha. • readlines() Retorna todas as linhas de um arquivo numa lista. 127 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 128. Arquivos • xreadlines() Semelhante ao xrange, otimizada para ler arquivos muito grandes. • tell() Retorna a posição corrente no arquivo • seek(posição, referência) Move o ponteiro do arquivo para posição. Refência (0 início, 1 atual, 2 fim) 128 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 129. Exceções • Muitas funções em Python fazem o programa terminar em caso de erro. • Isto acontece porque uma exceção foi gerada. • Exceções não tratadas causam o fim do programa. try: programa except: tratamento 129 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/
  • 130. Onde aprender mais • Visite o site: http://www.nilo.pro.br/iprog/ para uma versão atualizada e completa do curso de introdução à programação. 130 Nilo Menezes – Lógica de Programação – http://www.nilo.pro.br/python/