Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Bibliografia
2
Python
3
Python
n Qualidade
¡ Sintaxe simples
¡ Segue um conjunto de conceitos principais
¡ Fácil de aprender
¡ Fácil de compreender
¡ Fácil de lembrar
4
Python
5
Python
6
Python
n Desvantagem ?
¡ Linguagem interpretada
¡ Depende do programa
¡ Maior performance do hardware
7
Python
8
Python
9
Python
n Vantagens
¡ OO
¡ Open Source
¡ Independente de plataforma
¡ Fácil de usar
¡ Fácil de aprender
10
Interpretador Python
n Download
¡ http://www.python.org
¡ Versões 2.X e 3.X
11
Visão do desenvolvedor
12
Visão do desenvolvedor
13
Visão do desenvolvedor
14
Visão do Processo
15
Ciclo de Desenvolvimento
16
Implementações alternativas
n IronPython
¡ Linguagem .NET
n CPython
¡ Linguagem C
n Jython
¡ Linguagem Java
17
Futuro
18
Prompt Python
19
Prompt iterativo
20
Prompt Python
21
Prompt Python
n Testes.
22
Prompt Python
23
Rodando scripts
24
Rodando scripts
25
Rodando scripts : Prompt
Python
26
Rodando scripts : Prompt DOS
27
Rodando scripts : Prompt DOS
28
Rodando scripts : Prompt
Python
29
Rodando scripts
30
Interface IDLE
31
Interface IDLE
32
Objetos
33
Objetos
34
Objetos
35
Funções existentes
36
Tipo Numérico
37
Inteiros
38
Inteiros
39
Inteiros
n d = 0o177
n d = 0x9ff
n d = 0b101010
40
Números reais
41
Números reais
n d = 1.23
n d = 1.
n d = 1.0
n d = 3.14e-10
n d = 4E210
n d = 4.0e+210
42
Números complexos
43
Números complexos
n d= 3+4j
n d= 3.0 + 4.0j
n d= 3J
n d = complex(1, -2) (1 - 2j)
n d = complex(1,) (1 + 0j)
n d = complex(1) (1 + 0j)
44
Operadores de expressões
45
Precedência dos operadores
46
47
Precedência dos operadores
n X +Y*Z
n Primeiramente Python realiza a multiplicação de Y e
Z, para depois somar com X.
n Isto porque “*” tem uma precedência maior do que
“+”.
48
Parênteses
n (X + Y) *Z
n Python sempre avalia primeiro expressões em
parênteses.
n Assim o operador + é aplicado aos objetos X e Y
primeiro, o operador * é aplicado ao objeto Z e ao
objeto resultante da soma.
49
Misturando tipos numéricos
50
Misturando tipos numéricos
51
Misturando tipos numéricos
52
Conversões de tipos numéricos
53
Váriaveis
54
Váriaveis e Expressões básicas
55
Comparações
56
Comparações
57
Comparações
58
Divisões
n Verdadeira (X / Y)
¡ Retorna um resultado real
n Floor (X // Y)
¡ Retorna o valor mais próximo e abaixo do resultado
truncado , retornando inteiro caso os operandos sejam
inteiros ou real caso algum operando seja real.
59
Divisões
>>> 10 / 4
2.5
>>> 10 // 4
2
>>> 10 / 4.0
2.5
>>> 10 // 4.0
2.0
60
Números Complexos
n >>> 1j * 1J
(-1 + 0j)
n >>> 2 + 1j * 3
(2 + 3j)
n >>> (2+1j)*3
(6 + 3j)
61
Bases numéricas
62
Bases numéricas
63
Ferramentas numéricas
64
Bibioteca math
65
Bibioteca math
Floor x Truncamento
(16,16)
abs(-42.0),sum( (1,2,3,4 ))
n
(42.0,10)
n min(3,1,2,4), max(3,1,2,4)
(1,4)
67
Mais funções pré-definidas
68
Tipo Booleano
69
Tipo Booleano
70
Álgebra Booleana
71
Álgebra Booleana
72
Álgebra Booleana
n XOR
¡ Esta operação binária resulta em 1(true) caso as
entradas possuam valores diferentes, caso contrário o
resultado é 0(false)
73
Tabela Verdade
74
Exemplo de código
75
Tipo String
76
Tipo String
77
Tipo String
n Concatenação
¡ Operador + (Explícita)
n >>> title = "Sentido" + ' Da ' + " Vida"
n >>> title
n 'Sentido Da Vida'
¡ Implícita
n >>> title = "Sentido" ' Da ' " Vida"
n >>> title
n 'Sentido Da Vida'
78
Tipo String
n Repetição
¡ Operador *
n >>> s * 2
n 'spamspam'
79
Tipo String
80
Sequencias de Escape
81
Tipo String
82
Tipo String
83
Funções Específicas
84
Funções Específicas
85
Funções Específicas
86
Funções Específicas
87
Funções Específicas
88
Funções Específicas
89
Funções Específicas
90
Tipo Conjunto
91
Tipo Conjunto
93
Tipo Conjunto
94
Métodos do tipo conjunto
95
Métodos do tipo conjunto
96
Tipo Lista
97
Tipo Lista
98
Tipo Lista
99
Tipo Lista
100
Tipo Lista
n Repetição
¡ >>> ['NI'] * 4
¡ ['NI', 'NI', 'NI', 'NI']
¡ >>> ['NI',8,['A',3]] * 2
¡ ['NI', 8, ['A', 3], 'NI', 8, ['A', 3]]
103
Tipo Lista–Operações básicas
104
Tipo Lista – Indexação
106
Tipo Lista – Fatias (Slice)
107
Tipo Lista – Matrizes
108
Tipo Lista – Matrizes
110
Tipo Lista - Métodos
S<e
111
Tipo Lista - Métodos
113
Tipo Lista – Estrutura de pilha
>>>lista=[ ]
>>>lista.append(1)
>>>lista.append(2)
>>>lista
[1,2]
>>>lista.pop()
2
>>>lista.pop()
1
114
>>>lista
Tipo Lista - Métodos
115
Tipo Lista - Métodos
116
Tipo Lista - Métodos
n >>> L
n ['spam','eat','more','please']
n >>> del L[0] # deleta um item
n >>> L
n ['eat','more','please']
n >>> del L[1:] # deleta uma seção
n >>>L
n ['eat']
117
Esvaziando uma lista
118
Tipo Dicionário
119
Tipo Dicionário - Chaves
120
Dicionário – Operações básicas
n >>> D = {'spam':2,'ham':1,'eggs':3}
#Construindo
n >>> D['spam'] #Acessando um valor pela chave
n 2
n >>> D #A ordem não importa
n {'eggs': 3, 'ham': 1, 'spam': 2}
121
Dicionário – Operações básicas
n >>> len(D) # Tamanho do dicionário
n 3
122
Dicionário – Ações
n >>> D
n {'eggs': 3, 'ham': 1, 'spam': 2}
n >>> D['ham']=['grill','bake','fry'] #Entrada
n >>> D
n {'eggs': 3, 'ham': ['grill', 'bake', 'fry'], 'spam':
2}
123
Dicionário – Ações e Métodos
124
Dicionário – Métodos
n >>> D = {'spam':2,'ham':1,'eggs':3}
n >>> list(D.values()) # Listando os valores
n [3, 1, 2]
n >>> list(D.items()) #Listando as tuplas
n [('eggs', 3), ('ham', 1), ('spam', 2)]
125
Dicionário – Métodos
126
Dicionário – Métodos
n >>> D
n {'eggs': 3, 'ham': 1, 'spam': 2}
n >>> D2={'toast':4, 'muffin':5}
n >>> D.update(D2) #Atualizando
n >>> D
n {'toast': 4, 'muffin': 5, 'eggs': 3, 'ham': 1,
'spam': 2}
127
Dicionário – Métodos
n >>> D3={'spam':0,'toast':6}
n >>> D.update(D3) # Atualizando
n >>> D
n {'toast': 6, 'ham': 1, 'spam': 0, 'muffin': 5,
'eggs': 3}
128
Dicionário – Métodos
129
Dicionário – Estrutura de Dados
130
Dicionário – Estrutura de Dados
n >>> pessoa={
'nome':'Fulano',
'idade':32,
'emprego': ['analista','advogado'],
'endereco':{'pais':'Brasil','estado':'RJ',
'cep':8053}
}
131
Dicionário – Estrutura de Dados
n >>> pessoa['nome']
n 'Fulano'
n >>> pessoa['emprego'][1]
n 'advogado'
n >>> pessoa['endereco']['estado']
n 'RJ'
132
COMANDOS
Comandos Condicionais
Comandos de Repetição
Comandos de Desvio
133
Estrutura de um programa Python
134
Sintaxe de um programa Python
135
Comando Condicional - IF
136
IF – Regras de Sintaxe
“;" separa instruções na mesma linha
x=8; y=5
TESTE, o '()'é opcional
print(“Fim do programa.”)
137
Delimitadores de Bloco: Regras de
indentação
x=1
If x :
y=2
If y:
print(“bloco 2”)
print(“bloco 1”)
print(“bloco 0”)
138
Comando Condicional – IF/ELIF/ELSE
If (teste 1) :
Bloco 1
elif (teste 2): # Comando opcional
Bloco 2
else : # Comando opcional
Bloco 3
139
Comando Condicional – IF/ELIF/ELSE
If ( not 1) :
print('true')
else :
print('false')
140
Comando Condicional – IF/ELIF/ELSE
pedido='egg-x-salada'
if(pedido=='x-salada'):
print('R$ 3,00')
elif(pedido=='egg-x-salada'):
print('R$ 4,00')
elif(pedido=='x-tudo'):
print('R$ 5,00')
else:
print('No momento não temos ...')
141
Comando Ternário
If x: a = y if x else z
a=y
else:
a=z
d=5;f=6 d=5;f=6
if(d > f): x=d if (d>f) else f
x=d
else:
x=f
142
Comando de Repetição - WHILE
143
Comando de Repetição - WHILE
144
WHILE- Formato Geral
145
WHILE- Formato Geral
146
WHILE - Exemplos
while True:
print('Adeus')
while 1:
print('Adeus')
147
Exemplo – Fatiando uma String
frase='Adeus!'
while frase:
print(frase)
frase=frase[1:] SAÍDA
n=11 149
Laço 10: 9 < 10 ? n=10 0 1 … 10
Comandos de Desvio Break/Continue/
Pass
l Pass: comando vazio.
while (teste 1) :
bloco 1
If (teste 2): break
If (teste 3): break
else :
bloco 2
151
Pass
while 1:
pass #TODO: print('Adeus')
152
Continue
x=11
while x:
x=x-1
If( x%2 != 0): continue
print(x, end=' ')
153
Break
while True:
nome=input('Entre com um nome ?')
if(nome =='stop'): break
idade=input('Entre com uma idade')
print('Nome:', nome,'Idade: ', idade )
154
Loop Else -Exemplo do programa para
identificar se um número > 2 é primo
l Saída imediata do loop .
numero = int(input("Entre com o possível numero primo maior
que 2: "))
fator = numero // 2
print(fator)
while (fator > 1):
if(numero % fator == 0):
print(numero, 'e divisivel por ', fator)
break
fator -=1
else:
155
print('Primo')
Comando For
156
Formato geral
Caso um break
não seja executado
157
Formato completo
158
Exemplos – Acessando os elementos
for x in [“flamengo”,”vasco”,”fluminense”]:
print (x, end=” ”)
SAÍDA
159
Exemplos – Somando os itens de uma
lista
soma = 0
for x in [1,2,3,4] :
soma = soma + x
print(soma)
Laço 1 x=1;soma=0+1
Laço 2 x=2;soma=1+2
Laço 3 x=3;soma=3+3
SAÍDA
160
Laço 4 x=4,soma=4+6 10
Exemplos – Somando os números
pares de uma lista de 1 a 7
soma = 0
for x in range(0,7,2) :
soma = soma + x
print(soma)
Laço 1 x=0;soma=0+0
Laço 2 x=2;soma=0+2
Laço 3 x=4;soma=2+4
SAÍDA
161
Laço 4 x=6,soma=6+6 12
Exemplos – Multiplicando os itens de
uma lista
produto = 1
for item in range(1,5):
prod * = item
print(soma)
Laço 1 item=1;prod=1*1
Laço 2 item=2;prod=1*2
Laço 3 item=3;prod=3*2
SAÍDA
162
Laço 4 item=4,prod=4*6 24
Exemplos – Iterando em uma String
frase = 'PAZ'
for letra in frase :
print(letra, end = ' ')
SAÍDA
Laço 1 letra=frase[0] P
Laço 2 letra=frase[1] PA
163
Exemplos – Iterando em um dicionário
d = {'a':1,'b':2,'c':3}
for key in d:
print(key,'=>',d[key])
SAÍDA
164
Exemplos – Iterando em um conjunto
c = {'a','b','c'}
for elemento in c:
print(elemento, end=' ')
SAÍDA
Laço 1 elemento='a' a
Laço 2 elemento='c' ac
165
Exemplos – Acessando a posição de
um elemento
frase='uva!'
i=0
while i < len(frase):
if(frase[i]=="a" or frase[i]=="A"):
print(i)
i=i+1 SAÍDA
Laço 1 elemento='u'
Laço 2 elemento='v'
Laço 3 elemento='a' 2
166
Funções
n Funções são dispositivos que agrupam um
conjunto de comandos para que os mesmos
possam ser executados mais de uma vez
em um programa.
167
Por que usar funções ???
168
Funções - Comando def
169
Funções - Exemplo
# definindo a função
def multiplica (x,y)
return x*y
X 8
#chamando a função
prod = multiplica(8,2)
Y 2
print(prod)
prod 16 170
Polimorfismo
171
Polimorfismo - Exemplo
# definindo a função
def multiplica (x,y)
return x*y
print(intersecao(“SPAM” , ”SCAM”) )
print(intersecao( [1,2,3 ], {1,4} )
173
Escopo
174
Regras de Escopo
175
Regras de Escopo
177
Exemplo de Escopos
def func(y):
# escopo local : z e y são variáveis locais
z = x + y # acessando X global
return z
def func( ):
global x # acessando X global
x=88
func()
print(x) # imprime o valor 88
179
Escopo Global
def todas_globais( ):
global x # acessando X global
x=y+z
180
Acessando variáveis globais de outros módulos
# módulo primeiro.py
x= 99
# módulo segundo.py
import primeiro
print(primeiro.x)
primeiro.x=88
181
Funções Aninhadas
>>> f1()
182
Funções Aninhadas
>>> f1()
183
Variáveis não locais
def teste(inicio):
estado = inicio # definição de uma variável local
def teste_filho ( ):
nonlocal estado #para poder modificar o valor
estado +=1
print(estado)
return teste_filho( )
184
Argumentos
185
Passagem de argumentos por valor
def f(a):
a = 99
b=88
f(b)
print(b) # o valor de b não muda
>>> 88
186
Exemplo sem a chamada de função
x=1
a=x
a=2
print(x)
>>> 1
187
Passagem de argumentos por referência
l=[1,2]
troca(l)
print(l)
>>> ['spam',2]
188
Exemplo sem a chamada de função
L=[1,2]
b=l
b[0]='spam'
print(l)
>>> ['spam',2]
189
Evitando mudanças nos argumentos imutáveis
def copia( a ):
a = a[ : ] # copia a própria lista
a[0]=5
a[1]=5
L=[1,2]
copia(L)
print(L)
>>>[1,2]
190
Modos de Passagem de Argumentos
Alguns exemplos:
191
Funcao(valor)
def f(a,b,c):
print(a,b,c)
f(1,2,3)
>>> 1 2 3
192
Funcao(nome=valor)
def f(a,b,c):
print(a,b,c)
f(c=3,b=2,a=1)
>>> 1 2 3
193
funcao(nome = valor padrão)
def f(a=1,b=2,c=3):
print(a,b,c)
f(2,4)
>>> 2 4 3
194
funcao(nome = valor padrão)
def f(a=1,b=2,c=3):
print(a,b,c)
f(2,4)
>>> 2 4 3
195
Recursividade
196
Recursividade
197
Recursividade
Exemplo: fatorial
n! = n * ( n – 1 ) * ( n – 2 ) * … * 1
Caso base (1! = 0! = 1)
Caso recursivo: ( n! = n * ( n – 1 )! )
5! = 5 * 4!
4! = 4 * 3!
3! = 3 * 2! …
198
Recursividade
199
print(fat(5))
Números Pseudo-Aleatórios
200
Exemplo
def aleat(semente):
semente = semente * 1103515245 + 12345
return int((semente / 65536) % 32768)
for i in range(0,10):
print(aleat(i),end='')
>>> 0 16838 908 17747 1817 18655 2726 19564 3634
20472
201
Módulo Random
# importando a biblioteca random para ser
chamada no programa
import random
# Retorna float x, 0.0 <= x < 1.0
print(random.random())
>>> 0.7974410192661805
# Retorna float x, 1.0 <= x < 10.0
print(random.uniform(1, 10))
>>> 6.263809049294528
# Retorna inteiro n, 0 <= n <=9
print(random.randint(0,9))
>>> 9
202
Módulo Random