101
Introdução à Python 3 Minicurso de Introdução a linguagem de programação Python. II JTIMS - Jornada de Tecnologias da Informação de Mato Grosso do Sul M 2

Introdução à Python - Módulo 2

  • Upload
    jhoonb

  • View
    152

  • Download
    6

Embed Size (px)

DESCRIPTION

Introdução a Python - II JTIMS - Módulo 2 Mini curso - 2013 www.jhoonb.coom

Citation preview

Page 1: Introdução à Python - Módulo 2

Introdução à Python 3

Minicurso de Introdução a linguagem de programação Python.

II JTIMS - Jornada de Tecnologias da Informação de Mato Grosso do Sul

M 2

Page 2: Introdução à Python - Módulo 2

CONTEÚDO PROGRAMÁTICO

Os módulos e arquivos usados, serão disponíveis no site após o termino de cada aula, url:

jhoonb.com/courses

Page 3: Introdução à Python - Módulo 2

CONTEÚDO PROGRAMÁTICO

Módulo 2:1. Funções.

a. Definindo, parâmetros, variável global, multíplos retornos2. Paradigmas de Programação.

a. Exemplo de POO.b. Programação Funcional, List comprehension

3. Tipo de Dados (métodos).a. list, dic, str, tuple

4. Exemplos.5. Exercícios.

Page 4: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

Dividir para Conquistar!

Page 5: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

Um problema é dividido em diversos subproblemas. As soluções dos sub-problemas são combinadas numa solução do problema maior.

Page 6: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

“It is better to have 100 functions operate on one data structure than 10 functions on 10 data

structures.” - Alan Perlis.

Page 7: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

Uma função é um bloco de código ao qual são opcionalmente passados parâmetros e pode opcionalmente também retornar valores.Uma função é definida pela instrução def que é seguida pelo nome da função e por parêntesis, que contêm a lista de parâmetros. Opcionalmente uma função pode usar a instrução return que termina a função e retorna ao chamador.

Page 8: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

Para criar uma função em Python, usa-se a palavra reservada: def

def <nomefuncao>(<parametros>):

<indentação> <comandos>

Page 9: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

❖ Não é necessário especificar os tipos dos dados nos parâmetros.

❖ As variáveis declaradas dentro das funções tem escopo local, quando a função termina elas são destruídas.

Page 10: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

❖ Pode-se usar funções com retornos, usando return no final da função.

def soma(a,b):

return a+b

>>> soma(2,3)

>>> 5

Page 11: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

def foo(x):

x = x+1

print(x)

x = 10

print(x) -> 10

foo(x) -> 11

print(x) -> 10

Page 12: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

def funcao1():

print("a função 1 é essa")

def funcao2():

print("a funcao 2 é essa")

a,b = 2,3

print(" a + b é igual a ", a + b )

Page 13: Introdução à Python - Módulo 2

MÓDULO 2: Criando Funções

>>> funcao1()

>>> a função 1 é essa

>>> funcao2()

>>> a funcao 2 é essa

>>> a mais b é igual = 5

Page 14: Introdução à Python - Módulo 2

MÓDULO 2: Passagem por parâmetros

Parâmetros são variáveis que recebem valor do chamador, essas variáveis serão usadas localmente, no escopo da função.Pode-se passar N parâmetros para um função, e no Python NÃO é necessário especificar o tipo da variável.Veja o exemplo:

Page 15: Introdução à Python - Módulo 2

MÓDULO 2: Passagem por parâmetros

def spam(eggs, foo):

print(eggs, foo)

>>> spam(2,3)

>>> 2 3

>>> spam(‘zaz zaz’, ‘ e zaz’ )

>>> zaz zaz e zaz

Page 16: Introdução à Python - Módulo 2

MÓDULO 2: Passagem por parâmetros

Passagem por parâmetro não altera a variável chamada:

def spam(x):

x = ‘CHAPOLIN’

>>> x = ‘CHAVES’

>>> spam(x)

>>> x <- ‘CHAVES’

Page 17: Introdução à Python - Módulo 2

MÓDULO 2: Variável Global

Para se usar uma variável do escopo global dentro do escopo de uma função (que é local), usa-se a palavra reservada global na frente da variável.

global x

Page 18: Introdução à Python - Módulo 2

MÓDULO 2: Variável Global

def foo():

global x

x += 1

print(x)

x = 10

print(x) -> 10

foo() -> 11

print(x) -> 11

Page 19: Introdução à Python - Módulo 2

MÓDULO 2: Retorno de função

Python fornece múltiplos retornos de função,ex.:

def spam(x):

return x,x,x,x

>>> spam(‘spam’)

>>> (‘spam’,’spam’,’spam’,’spam’)

>>> a,b,c,d = spam(‘eggs’)

>>> print(a,b,c,d)

>>> ‘eggs’ ‘eggs’ ‘eggs’ ‘eggs’

Page 20: Introdução à Python - Módulo 2

MÓDULO 2: Exercícios.

Exercícios!

Page 21: Introdução à Python - Módulo 2

MÓDULO 2:

Paradigmas de Programação

Page 22: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

Python é uma linguagem multiparadigma, isso quer dizer que existe mais de uma maneira de programar e abstrair os códigos.

Page 23: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

Existem vários paradigmas, como por exemplo:

Programação Orientada a Objetos.Programação Funcional.Programação Estruturada/Imperativa.Programação Lógica.

Page 24: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

Programação Funcional:Python, Erlang, Haskell, F#, OCaml ...

Trata a computação como uma avaliação de funções matemáticas. [tipos imutáveis]

Page 25: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

Programação Orientada a Objetos:Python, JAVA, C++, Smaltalk, Ruby ...

Trata a computação como baseada na composição e interação entre diversas unidades de software chamadas de objetos.

Page 26: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

Programação Estruturada/Imperativa:Python, C, Go, Pascal, Lua ...

Page 27: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

Programação Lógica:Prolog, Lisp, Planner ...

Baseada na Lógica matemática, de construção, demostrações e inferências.

tem como objetivo realizar funções ou esquemas lógicos por meio de parâmetros e metas.

Page 28: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

Page 29: Introdução à Python - Módulo 2

MÓDULO 2: Paradigmas de Programação

“A language that doesn't affect the way you think about programming, is not worth

knowing.” Alan Perlis

Page 30: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

Uma Breve, rápida, curta, pequena demonstração

Page 31: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

class Chapolin(object):

‘’’ Mais rapido que uma lesma mais forte que um gambá

é o chapolin colorado!! ‘’’’

def __init__(self):

self.forca = ‘ de um gamba’

self.qi = ‘ de uma mula’

self.velocidade = ‘ de lesma’

Page 32: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

class Chapolin(object):

‘’’ Mais rapido que uma lesma mais forte que um gambá

é o chapolin colorado!! ‘’’’

def __init__(self):

self.forca = ‘ de um gamba’

self.qi = ‘ de uma mula’

self.velocidade = ‘ de lesma’

new Style Class

Page 33: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

class Chapolin(object):

‘’’ Mais rapido que uma lesma mais forte que um gambá

é o chapolin colorado!! ‘’’’

def __init__(self):

self.forca = ‘ de um gamba’

self.qi = ‘ de uma mula’

self.velocidade = ‘ de lesma’

new Style Class

DOCSTRING

Page 34: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

class Chapolin(object):

‘’’ Mais rapido que uma lesma mais forte que um gambá

é o chapolin colorado!! ‘’’’

def __init__(self):

self.forca = ‘ de um gamba’

self.qi = ‘ de uma mula’

self.velocidade = ‘ de lesma’

new Style Class

DOCSTRING

Construtor

Page 35: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

class Chapolin(object):

‘’’ Mais rapido que uma lesma mais forte que um gambá

é o chapolin colorado!! ‘’’’

def __init__(self):

self.forca = ‘ de um gamba’

self.qi = ‘ de uma mula’

self.velocidade = ‘ de lesma’

new Style Class

DOCSTRING

Construtor

Page 36: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

class Chapolin(object):

‘’’ Mais rapido que uma lesma mais forte que um gambá

é o chapolin colorado!! ‘’’’

def __init__(self):

self.forca = ‘ de um gamba’

self.qi = ‘ de uma mula’

self.velocidade = ‘ de lesma’

new Style Class

DOCSTRING

Inicializador

Page 37: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetosdef frase1(self):

print(‘Não contam com minha ASTUCIA!’)

def frase2(self):

print(‘PALMA PALMA NAO PRIEMOS CANICO!’)

def frase3(self):

print(‘Meus novimentos sao FRIAMENTE calculados’)

def frase4(self):

print(‘se aproveitam de minha nobreza’)

Page 38: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetosdef frase1(self):

print(‘Não contam com minha ASTUCIA!’)

def frase2(self):

print(‘PALMA PALMA NAO PRIEMOS CANICO!’)

def frase3(self):

print(‘Meus novimentos sao FRIAMENTE calculados’)

def frase4(self):

print(‘se aproveitam de minha nobreza’)

Métodos

Page 39: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetosdef frase1(self):

print(‘Não contam com minha ASTUCIA!’)

def frase2(self):

print(‘PALMA PALMA NAO PRIEMOS CANICO!’)

def frase3(self):

print(‘Meus novimentos sao FRIAMENTE calculados’)

def frase4(self):

print(‘se aproveitam de minha nobreza’)

Métodos

self: explicito

Page 40: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

def atributos(self):

print(‘Força: ’,self.forca)

print(‘Q.I.: ’, self.qi)

print(‘Velocidade: ’, self.velocidade)

def troca_atributos(self, f,q,v):

self.forca = f

self.qi = q

self.velocidade = v

Page 41: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

def atributos(self):

print(‘Força: ’,self.forca)

print(‘Q.I.: ’, self.qi)

print(‘Velocidade: ’, self.velocidade)

def troca_atributos(self, f,q,v):

self.forca = f

self.qi = q

self.velocidade = v

self: referencia os tributos da classe

Page 42: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

def quem_podera_me_defender(self):

print(‘EEEEEEEEEEEEEEEEU!!!!!’)

Page 43: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

>>> chapolin = Chapolin()

Page 44: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

>>> chapolin = Chapolin()

Instância da Classe, um novo objeto

Page 45: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

>>> chapolin = Chapolin()

>>> chapolin.quem_podera_me_defender()

Page 46: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

>>> chapolin = Chapolin()

>>> chapolin.quem_podera_me_defender()

chama um dos métodos pelo operador .

Page 47: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

>>> chapolin = Chapolin()

>>> chapolin.quem_podera_me_defender()

‘EEEEEEEEEEEEEEEEU!!!!!’

Page 48: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

>>> chapolin = Chapolin()

>>> chapolin.quem_podera_me_defender()

‘EEEEEEEEEEEEEEEEU!!!!!’

>>> chapolin.frase2()

‘PALMA PALMA NAO PRIEMOS CANICO!’

Page 49: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

Isso sem mencionar:Polimorfismo.

Page 50: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

Isso sem mencionar:Polimorfismo.Encapsulamento.

Page 51: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

Isso sem mencionar:Polimorfismo.Encapsulamento.Classes abertas.

Page 52: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

Isso sem mencionar:Polimorfismo.Encapsulamento.Classes abertas.Herança Múltipla.

Page 53: Introdução à Python - Módulo 2

MÓDULO 2: Orientação a Objetos

Isso sem mencionar:Polimorfismo.Encapsulamento.Classes abertas.Herança Múltipla.Sobrecarga de Operadores

Page 54: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Paradigma Funcional

Page 55: Introdução à Python - Módulo 2

MÓDULO 2: Programação funcional

Uma Breve, rápida, curta, pequena demonstração

Page 56: Introdução à Python - Módulo 2

MÓDULO 2: Programação funcional

Em programação Funcional, as funções são tratadas como valores de primeira importância(First Class Function), o que é o mesmo que dizer que funções podem ser parâmetros ou valores de entrada para outras funções e podem ser os valores de retorno ou saída de uma função. Então podemos entender paradigma funcional como um mapeamento dos valores de entrada nos valores de retorno, através de funções.

Page 57: Introdução à Python - Módulo 2

MÓDULO 2: Programação funcional

● Legibilidade e manutenibilidade gerados. Isso é porque cada função é criada para realizar uma determinada tarefa específica seus argumentos.

● Como o código é mais fácil ao refatorar, as alterações no design são geralmente mais fáceis de implementar.

Page 58: Introdução à Python - Módulo 2

MÓDULO 2: Programação funcional

Python, conceitos Funcionais:

Lambdafirst-class functionsHigher-order functionsmap()functools.reduce()filter()

Page 59: Introdução à Python - Módulo 2

MÓDULO 2: Programação funcional

Python, conceitos Funcionais:

Lambdafirst-class functionsHigher-order functionsmap()functools.reduce()filter()

Page 60: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Todos os números pares de 1 a 5 milhões:

...

Page 61: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Todos os números pares de 1 a 5 milhões:

par = lambda x: x % 2 == 0

todos = list(filter(par,range(1,5000001)))

Page 62: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Todos os números pares de 1 a 5 milhões:

ou

Page 63: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Todos os números pares de 1 a 5 milhões:

todos = list(filter(lambda x: x % 2 == 0,range(1,5000001)))

Page 64: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

criptografar uma texto, com a criptografia de Cezar:

...

Page 65: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

criptografar uma texto, com a criptografia de Cezar:

texto = list(“as arveres samos nozes”)

crip = lambda x: chr(ord(x)+1)

novo = list(map(crip, texto))

Page 66: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

decriptar o texto:

decrip = lambda x: chr(ord(x)-1)

novo = list(map(crip, novo))

Page 67: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Somar todos os números de 1 a 1000:

from functools import reduce

soma = reduce(lambda x,y: x+ y, range(1,1001))

Page 68: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Somar todos os números de 1 a 1000:

from functools import reduce

soma = reduce(lambda x,y: x+ y, range(1,1001))

Existe uma maneira bem mais fácil e poderosa em Python...

Page 69: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

List comprehension!

Page 70: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

List comprehension!

Elimina o uso de:

Page 71: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

List comprehension!

Elimina o uso de:functools.reduce()

Page 72: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

List comprehension!

Elimina o uso de:functools.reduce()filter()

Page 73: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

List comprehension!

Elimina o uso de:functools.reduce()filter()map()

Page 74: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

List comprehension!

Uma compreensão de lista é uma construção sintática disponível em algumas linguagens de programação para criação de uma lista baseada em listas existentes. Ela segue a forma da notação de definição de conjunto matemática (Teoria formal de Conjunto) como forma distinta para uso de funções de mapa e filtro.

Page 75: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

Exemplo do poder dessa feature na linguagem Python.

Page 76: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

Page 77: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

S é o conjunto de todos os números "2 vezes x" onde x é um elemento do conjunto dos números naturais N, pelo qual x ao quadrado é maior que 3

Page 78: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

Em Python usando List comprehension

Page 79: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

Em Python usando List comprehension

S = [2 * x for x in range(101) if x ** 2 > 3]

Page 80: Introdução à Python - Módulo 2

MÓDULO 2: List comprehension

S = [2 * x for x in range(101) if x ** 2 > 3]

Page 81: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Finalizando

Page 82: Introdução à Python - Módulo 2

MÓDULO 2: Funcional

Finalizando

Page 83: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Estrutura/tipos de Dadoslist, str, dict

Page 84: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

List em Python é:Listas são conjuntos de elementos de qualquer tipo separados por vírgula e que estão entre colchetes, e que podem ser modificados.>>> lista = [2, 3, 4, ‘eggs’]

>>> lista[2] = 5

>>> print(lista)

[2,3, 5, ‘eggs’]

Page 85: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Métodos de list:

.append(x) adiciona um elemento ao fim da lista

.count() retorna o número de vezes que x aparece na lista

.extend([x]) estende a lista com novos elementos passados

.index(x) retorna o índice (ou posição) de um determinado elemento da lista.

.insert(x,y) insere x na posicao y posição.

Page 86: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Métodos de list:

.pop(x), .pop() remove o elemento da posição indicada e o retorna, ou o ultimo se não passar nenhuma elemento

.remove() remove o primeiro elemento da lista.

.reverse() estende a lista com novos elementos passados

.sort() ordena os elementos da lista.

Page 87: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

exemplos...

Page 88: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Dict, dicionários(Mapeamento):

Page 89: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Dicionários são conjuntos não ordenados de pares, onde o primeiro elemento do par, o índice, é chamado de chave e o outro de valor. Um dicionário, em Python, suporta qualquer tipo de objeto, seja ele uma lista ou até mesmo outros dicionários e pode ser modificado. Para criar um dicionário basta declarar pares “chave:valor” separados por vírgula e delimitados por chaves.

Dict, dicionários(Mapeamento):

Page 90: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

>>> dic = {1:'um', 2:'dois', 3:'tres'}

>>> dic[1]

'um'

>>> dic[4]='quatro'

>>> dic

{1: 'um', 2: 'dois', 3: 'tres', 4: 'quatro'}

Dict, dicionários(Mapeamento), exemplo:

Page 91: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

.keys() - retorna as chaves do dicionário

.values() - retorna os valores do dicionário

.items() - returna uma tupla contendo chave/valor.

x in y.keys() - verifica se a chave x existe no dicionario y

x in y.values() - verifica se o valor x existe no dicionário y

del x[key] - deleta a chave/valor do key do dicionário x

Dict, dicionários(Mapeamento), Métodos:

Page 92: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

.clear() - remove todos os elementos do dicionário

x in d - verifica se a chave x existe no dicionário d

x not in d - verifica se a chave x não está no dict d

.update(d) atualiza o dict com outro o dict d passado

Dict, dicionários(Mapeamento), Métodos:

Page 93: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Strings são seqüências de caracteres entre aspas que não podem ser modificadas, a menos que você reatribua. Podem ser acessadas via [].

Strings, str:

Page 94: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Podemos acessar o conteúdo de uma string usando colchetes []. Exemplo:

>>> nome = “KIKO”

>>> nome[0]

‘K’

Strings, str, fatiando strings (slice):

Page 95: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

>>> nome = “KIKO”

>>> nome[0]

‘K’

>>> nome[0:2]

‘KI’

>>> nome[:2]

‘KI’

Strings, str, fatiando strings (slice):

Page 96: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

>>> nome = “KIKO”

>>> nome[2:]

>>> ‘K0’

>>> nome[:]

>>> ‘KIKO’

>>> nome[0::2]

>>> ‘KK’

Strings, str, fatiando strings (slice):

Page 97: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

Técnica:

STRING[INICIO : FINAL - 1: INCREMENTO]

Strings, str, fatiando strings (slice):

Page 98: Introdução à Python - Módulo 2

MÓDULO 2: Estrutura/tipos de Dados

.find(x) - retorna o posicao do valor x se existir

.replace(x,y) - retorna a string trocando x por y

.upper() - retorna a string com as letras maiúsculas.

.lower() - retorna a string com as letras minúsculas.

.count(x) - retorna o número de ocorrências de x na string

.strip() - retorna a string se espaços no começo e final.

Strings, str, métodos:

Page 99: Introdução à Python - Módulo 2

Exercícios/Dúvidas?

MÓDULO 2: Exercícios

Page 100: Introdução à Python - Módulo 2

list: http://docs.python.org/3/library/stdtypes.html#list

dict: http://docs.python.org/3/library/stdtypes.html#mapping-types-dict

str: http://docs.python.org/3/library/stdtypes.html#text-sequence-type-str

tuple: http://docs.python.org/3/library/stdtypes.html#tuple

range: http://docs.python.org/3/library/stdtypes.html#range

MÓDULO 2: Referências

Page 101: Introdução à Python - Módulo 2

MÓDULO 2: FIM

Material disponível em:jhoonb.com/courses