Aula 3 Python Basic o
Aula 3 Python Basic o
Python Aula 03
2
Hello World
... ‘hello world’ - Python X {Java, C, PHP, Pascal}
Python Aula 03
3
... em Python ...
Exemplo1.py
Python Aula 03
4
Tipos e operações
Vamos ver um trecho de código em Python!
Python Aula 03
5
Código Base
Python Aula 03
6
... entendendo o código...
• Atribuição utiliza = e comparação utiliza ==
Python Aula 03
7
... entendendo o código...
• Atribuição utiliza = e comparação utiliza ==
Python Aula 03
8
... entendendo o código...
• Números: + - * / % tem suas funções características
• + pode ser usado como concatenação de Strings;
Python Aula 03
9
... entendendo o código...
• Números: + - * / % tem suas funções características
• + pode ser usado como concatenação de Strings;
Python Aula 03
10
... entendendo o código...
• Operadores lógicos são palavras e não símbolos (||,
&&)
Python Aula 03
11
... entendendo o código...
• Operadores lógicos são palavras e não símbolos (||,
&&)
Python Aula 03
12
... entendendo o código...
• print é o comando básico para “impressão” na tela
Python Aula 03
13
... entendendo o código...
• print é o comando básico para “impressão” na tela
Python Aula 03
14
... entendendo o código...
• E se você quiser receber uma entrada diretamente do
usuário ?
Exemplo1
Python Aula 03
15
... entendendo o código...
• A primeira atribuição em uma variável também é
responsável por cria-lá.
• Os tipos das variáveis não precisam ser informados;
• Python descobre o tipo da variável por conta própria!
Python Aula 03
16
... entendendo o código...
• A primeira atribuição em uma variável também é
responsável por cria-lá.
• Os tipos das variáveis não precisam ser informados;
• Python descobre o tipo da variável por conta própria!
Python Aula 03
17
... Usando o Shell
Python Aula 03
18
... Usando o Shell
Python Aula 03
19
... Usando o Shell
Python Aula 03
20
Whitespace
• Importante para identação e novas linhas
• Use \ para quando for para uma próxima linha prematuramente.
Exemplo1
Python Aula 03
21
Comentários
•Comentários começam com #
• Convenção: Você pode definir uma “documentação” em string como
primeira linha de qualquer nova função que você definir.
• Muito importante para o desenvolvedor, crítico para o usuário!
Python Aula 03
22
Conhecendo a linguagem...
Python Aula 03
23
Conhecendo a linguagem...
Python Aula 03
24
Tipos Básicos
• Inteiros (padrão para números)
• Divisão entre inteiros, resposta um inteiro!
• Inteiros Longos
• L ou l no final. (Convertido automaticamente com precisão de inteiros > 32
bits)
• Complexas
• >> 2 + 3j
25
Tipos Básicos
• Representação numérica
• Representação de dígitos com/sem formatação de string
Exemplo1.py
Python Aula 03
27
Tipos Básicos
•Strings
• “abc” ou ‘abc’
Exemplo1.py
Python Aula 03
28
Comandos básicos
• Alguns comandos básicos que podem ajudar no ínicio!
• dir(element) - todos os atributos e métodos que estão associados a elemento.
• type(element) - Descobrir o tipo do objeto!
• import - importe módulos para uso no seu código!
Python Aula 03
29
Exercício 01
Python Aula 03
30
Atribuição
... Vamos entender como funciona
atribuição!
Python Aula 03
31
Atribuição
Python Aula 03
32
Atribuição
• Lembre-se que Python a tipagem é dinâmica!
• Declarar variáveis sem atribuí-las irá levantar um erro!
Python Aula 03
33
Atribuição
• Você pode inicializar várias variáveis de uma só vez!
• x = y = z = 2.0
Python Aula 03
34
Atribuição
• Entendendo manipulação de atribuição de referências
• x = y não significa que você fez uma cópia de y!
• x = y o que realmente faz é x referencia ao objeto que y referencia!
Python Aula 03
35
Atribuição
• Mas e se fizermos isso ?! Qual será o valor de x ?
>>> x = “casa”
>>> y = x
>>> x = “fazenda”
>>> print x
Python Aula 03
36
Atribuição
• Mas e se fizermos isso ?! Qual será o valor de x ?
>>> x = “casa”
>>> y = x
>>> y = “fazenda”
>>> print x
Python Aula 03
38
Listas, Strings e Tuplas
• Todos os três são Sequências!
• Podem ser indexados por algum valor ordinal posicional
• Todas as operações apresentadas aqui nesta seção podem ser aplicadas em
todos os tipos de sequência
• Listas
• li = [1,2,3, ‘abc’]
• Tuplas
• li = (23, ‘abc’, 4.56, (2,3), ‘def’)
• Strings
• st = “Hello World” st = ‘Hello World’ Exemplos2
Python Aula 03
39
Listas, Strings e Tuplas
• Manipulando sequências!
• Pelo índice a partir de 0 Ex: ti [0]
• Índices podem ser positivos ou negativos! Ex: ti[1] (esq.) ti[-4] (dir.)
• Fracionamento e matrizes!
• li[1:3] L[1:] matrix = [[1,3,4] , [3,5,6] , [7,8,9]]
• Operador in
• retorna um booleano. Checa se um valor está em uma sequência!
• 4 in li
Exemplos2
Python Aula 03
40
Listas, Strings e Tuplas
Exemplos2
Python Aula 03
41
Operacões em Listas
• Operador + , *
• a = “Hello” + “ World” (concatenação)
• [3] * 4 (repetição)
• Atribuição
• list[0] = ‘3’
Python Aula 03
42
Operacões em Listas
• Qual será o valor de b ?
>>> a = [1,2,3]
>>> b = a
>>> a.append(4)
>>> print b
Python Aula 03
43
Operacões em Listas
• Qual será o valor de b ?
>>> a = [1,2,3]
>>> b = a
>>> a.append(4)
>>> print b
• Surpresa!
>>> b = [1,2,3,4]
Python Aula 03
44
Operacões em Listas
Python Aula 03
45
Operacões em Listas
• Para fazer cópias de listas
• a = b[:] (2 cópias independentes)
• a = b (os 2 referenciam o mesmo objeto)
Exemplos2
Python Aula 03
46
Tuplas x Listas
• Listas são mais lentas porém mais poderosas que tuplas
• Listas podem ser modificadas e tem diversos operadores que podem ser
utilizados
• Tuplas são imutáveis e tem menos funcionalidades!
Exemplos2
Python Aula 03
47
Métodos muito usados
• reverse() , sort()
• etc.
Exemplos2
Python Aula 03
48
Exercício 02
Python Aula 03
49
Strings
Exemplos2
Python Aula 03
50
Strings
• Também uma sequência e é Imutável!
• “42” + 1 (erro!) Use “42” + str(1)
• float(), int() -> string para numéro
• Atribuição
• S = ‘spam’ S[0] = ‘x’ ERRO!!!
• Strings são imutáveis!
• String -> Lista -> String (.join)
• Formatação de string
Exemplos2
Python Aula 03
51
Métodos mais usados
• etc.
Exemplos2
Python Aula 03
52
Exercício 03
• Crie uma lista com o nome de 10 pessoas e sorteie uma
pessoa, depois embaralhe novamente e sorteie outra (sem
repetição)
Python Aula 03
53
Dicionários
Um “hash map” pythonico!
Python Aula 03
54
Dicionários
• Estrutura de dados em forma de coleções onde os items são
armazenados e buscados pela chave em vez do deslocamento
posicional.
• Chaves podem ser quaisquer objetos do tipo imutável
• Valores podem ser de qualquer tipo
• Um dicionário pode armazenar diferentes tipos de valores e é mutável!
Exemplos3.py
Python Aula 03
55
Dicionários
• Algums métodos:
• has_key(‘eggs’) , clear() , del d[‘key’] , keys(), values(), items(), get() ,
update()
• copy() fazer cópias de dicionários ! (Lembre-se que dicionario é mutável!)
Exemplos3.py
Python Aula 03
56
Arquivos
Como é fácil manipular um arquivo!
Python Aula 03
57
Arquivos
Exemplos3.py
Python Aula 03
58
Booleanos
Expressões lógicas
Python Aula 03
59
Expressões lógicas
Exemplos3.py
Python Aula 03
60
Expressões lógicas
• None é similar ao NULL em linguagem C
• L = [None] * 100 (declara uma lista de 100 items None )
• isinstance(element,type)
• Verifica se um elemento é do tipo type
Exemplos3.py
Python Aula 03
61
Exercícios 04
Exemplos3
Python Aula 03
62
Exercícios 05
Exemplos3
Python Aula 03
63
Instruções compostas
If python == “cool”:
print “Oh yeah!”
Python Aula 03
64
Fluxo de Controle
Python Aula 03
65
Instruções if
• Não esqueçam da identação em blocos!
Exemplos4
Python Aula 03
66
Instruções if
Exemplos4.py
Python Aula 03
67
Instrução assert
assert(number_of_players < 5)
Python Aula 03
68
Instruções while
• Você pode usar o comando break para sair do loop mais
próximo que a envolve.
• Você pode usar o comando pass quando você não quer que se
faça nada (instrução vazia)
Python Aula 03
69
Instruções while
Exemplos4
Python Aula 03
70
Instruções for
• Loops for iteram sobre uma sequência de items (listas, tuplas,
string ou quaisquer outros objetos cuja a linguagem considere
como um “iterator”)
Python Aula 03
71
Instruções for
Exemplos4.py
Python Aula 03
72
Instrução zip
•zip() é bastante poderoso, pode unir sequências onde retorna uma
lista de tuplas que se distribuem em pares os items paralelos
extraídos dessas sequências.
Exemplos4.py
Python Aula 03
73
Compreensão de listas
[i for i in “python é fácil demais”]
Python Aula 03
74
Compreensão de listas
Python Aula 03
75
Compreensão de listas
Exemplos4.py
Python Aula 03
76
Compreensão de listas
Exemplos4.py
Python Aula 03
77
Exercícios 05
Python Aula 03
78
Exercícios 05
Python Aula 03
79
Exercícios 05
Python Aula 03
80
QuickSort
• Algoritmo de ordenação bastante utilizado e muito eficiente
• Complexidade BigO(nlogn)
2. Colocar todos itens com chave menor que a de x à esquerda de x, formando uma seqüência S1;
3. Colocar todos itens com chave maior que a de x à direita de x, formando uma seqüência S2;
4. Isto feito, o mesmo processo é aplicado às seqüências S1 e S2, que por sua vez
produzirão novos segmentos;
Python Aula 03
81
QuickSort
• Você pensaria assim...
Python Aula 03
82
QuickSort
• Agora que você sabe compreensão de listas, você pode fazer
assim!
def qsort(L):
if len(L) <= 1: return L
return qsort( [ lt for lt in L[1:] if lt < L[0] ] ) + [ L[0] ] + \
qsort( [ ge for ge in L[1:] if ge >= L[0] ] )
Python Aula 03
83
Ordenação
• Mas um programador Pythonico, ainda faria mais eficiente!
list.sort()
Python Aula 03
84
Python é muito poderoso!
• Não precisa reinventar a roda! Molde-a para adaptar ao seu
problema!
Python Aula 03
85
Referências
Python Aula 03
86
Python Básico
Marcel Pinheiro Caraciolo
Python Aula 03
87