Você está na página 1de 27

14/05/2016 Minicurso 

Python

Introdução à Linguagem Python

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 1/27
14/05/2016 Minicurso Python

Sobre o Autor
Tales Moreira
Formado em Sistemas para Internet pelo Instituto Federal Minas Gerais
Mestrando em Modelagem Matemática e Computacional pelo CEFET­MG
Iniciou no mundo da programação em 2006 com Pascal e Delphi
Programador python desde 2011
Conecimento em outras linguagens, como Java, PHP, Javascript (client­side)
Larga experiencia em frameworks de desenvolvimento, como:
PHP
Laravel
Zend
CakePHP
Javascript Frontend
ReactJS desenvolvido e utilizado em produção pela equipe do Facebook
AngularJS desenvolvido pela equipe do Google
KnockoutJS
JQuery
Bootstrap desenvolvido pela equipe do Twitter
Python para Web
Django
Flask

Projetos atuais voltados para Web estão sendo desenvolvidos Com Django, Bootstrap,
JQuery e ReactJS

História do Python
Monty Python! Grupo de humoristas ingleses;
Criada por Guido van Rossum em 1989;
Publicada em 1991 ­ versão 0.9.0;
Criada para substituir a linguagem ABC, usada no Amoeba OS (SO distribuído criado por
Andrew Tanenbaum);
Baseada na linguagem ABC, com parte da sintaxe derivada do C, Haskell, Icon, Modula­3,
e Perl;
Linguagem de propósito geral de alto nível (OO, imperativo, funcional, prodedural);
Uma das linguagens mais utilizadas no mundo;

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 2/27
14/05/2016 Minicurso Python

Instalação
Linux: Python já vem pré­instalado nas distribuições Linux;

Windows: Basta realizar o download e instalar, lembrando de adicionar o path nas variáveis de
ambiente do SO;

Como executar os primeiros comandos em Python? Basta abrir o terminal e digitar o comando

$ python 

Posteriormente, o programa será codigicado em arquivos com extensão ".py" e executado através
do comando "python". Exemplo:

$ python main.py 

Como o computador entende a linguagem?
$ python programa.py 

Executa o interpretador Python que lê todas instruções do arquivo (script) passado por parâmetro,
compila e gera um arquivo .pyc ou .pyo (otimizado), e executa o programa. O programa é
executado em ordem (fluxo de execução), de cima para baixo, linha a linha, instrução por
instrução.

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 3/27
14/05/2016 Minicurso Python

Python – Hashbang (shebang)
#!/usr/bin/env python3  
print('Olá mundo!') 

O hashbang é respeitado somente se o programa for executado sem informar o interpretador
explicitamente. Por exemplo:

./script.py # Ao invés de: python script.py 

Python – Encoding dos arquivos
No Python 3 o encoding padrão é UTF­8. No Python 2, era necessário adicionar uma linha
chamada magic comment informando o encoding.

O interpretador identifica ela nas 2 primeiras linhas do arquivo. Por exemplo:

#!/usr/bin/env python  
# ‐*‐ coding: utf‐8 ‐*‐  

print('Olá mundo!') 

Python – Comentários
#!/usr/bin/env python3  
# Comentário  
print('Olá mundo!')  

"""  
Outro comentário  
"""  

''' Mais um comentário ''' 

Python – Variáveis
Reserva um espaço na memória para armazenar um dado/valor de um determinado tipo, e o
associa a um nome.

In [1]:

var1 = 5  
var2 = 10  
var3 = var1 * var2 
print (var3) 

50 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 4/27
14/05/2016 Minicurso Python

Restrições de nomenclatura

Somente letras, números, underscore;
Não pode iniciar com número;
Não pode ser uma palavra reservada:

and, as, assert, break, class, continue, def, del, elif, else, exce
pt, exec, finally, for, from, global, if, import, in, is, lambda, n
ot, or, pass, print, raise, return, try, while, with, yield 

Alguns tipos importantes

‐ str (‐ing) 'Texto entre aspas', 'palavra'  
 ‐ bool (‐ean) True ou False  
 ‐ int (‐eger) 1, 2, 10, 5000  
 ‐ float 3.1415, 9.8, 1.61803398875  
 ‐ list [ 'palavra', True, 1, 3.1415 ] 
 ‐ dict { 'prop':'nome', 'tem':True }  
 ‐ tuple ( 'palavra', True, 1, 3.1415 )  
 ‐ type Tipo dos tipos :‐)

Tipagem forte e dinâmica

O último valor atribuído à variável indicará o tipo dela.

In [2]:

var1 = "valor" # atribuição de string  
var2 = 'valor' # atribuição de string  
var1 = 5 # atribuição de inteiro  
var2 = 3.1337 # atribuição de float  
print(var2, type(var2)) 
print() 
# múltiplas atribuições 
a, b, c = 1, 2.5, 'teste'  
print(a, b, c) 
print(type(a), type(b), type(c)) 

3.1337 <class 'float'> 

1 2.5 teste 
<class 'int'> <class 'float'> <class 'str'> 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 5/27
14/05/2016 Minicurso Python

str

– Tipo composto por um conjunto imutável de caracteres, texto.

In [36]:

fruta = "banana"  
marca = """Tesla"""  
str1 = 'abc'  
str2 = '''teste'''  
print(len(fruta)) # retorna o comprimento, 6  
print(fruta[0]) # retorna 'b'  
print(fruta[2:5]) # retorna 'nan'  
print(fruta.upper()) # retorna 'BANANA' 
print(fruta.find('n', 3)) 
print(fruta.split('n')) 



nan 
BANANA 

['ba', 'a', 'a'] 

bool

– Verdadeiro ou falso.

George Boole? Matemático Inglês autodidata que definiu o primeiro sistema de lógica algébrica na
metade do século XIX, nomeado álgebra booliana, ou de Boole.

In [4]:

var1 = True # verdadeiro  
var2 = False # falso  
print(var1, var2) 

True False 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 6/27
14/05/2016 Minicurso Python

int

– Números inteiros ­ sem limite de bits!

NOTA: int e long eram diferentes antes do Python 3 – a PEP 237 unificou. * PEP: Python
Enhancement Proposal

In [5]:

var1 = 1991  
var2 = 2016  
print(var1, var2) 

1991 2016 

float

– Números decimais (double).

In [6]:

var1 = 1.2345  
var2 = 3.141592 
print(var1, var2) 

1.2345 3.141592 

constantes

– ”Variáveis” não mutáveis.

Não são formalmente definidas pela linguagem, mas a convenção é nomear variáveis utilizando
apenas letras maiúsculas.

OBS: Podemos contornar utilizando class properties.

In [7]:

PI = 3.141592  
MAX_LENGTH = 255 
print(PI, MAX_LENGTH) 
PI = 3.14 
print(PI) 

3.141592 255 
3.14 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 7/27
14/05/2016 Minicurso Python

Objetos e valores

No exemplo abaixo, a e b apontam para a mesma string?

a = 'banana'  
b = 'banana' 

No primeiro caso, a e b se referem a duas coisas diferentes com o mesmo valor. No segundo caso,
elas se referem à mesma coisa.

Todo objeto possui um identificador único que pode ser obtido com a função id().

Se 2 objetos possuem o mesmo identificador, significa que apontam para (referenciam) o mesmo
valor.

print(id(a)) #135044008 
print(id(b)) #135044008 

Exemplo com Listas

In [8]:

a = [1, 2, 3]  
b = [1, 2, 3] 
print(id(a), id(b)) 

189958878984 189958880200 

Referências, apelidos (aliases)

In [9]:

a = [1, 2, 3]  
b = a 
print(id(a), id(b)) 

189958902024 189958902024 

Escopos
Escopo Global: Variáveis criadas fora do escopo de qualquer função/classe são criadas no
escopo global. O valor das variáveis globais é "esquecido" quando o programa termina.
Escopo Local Variáveis criadas dentro do escopo de funções ou classes tem escopo local.
O valor das variáveis locais é "esquecido” automaticamente quando a função termina, ou
quando o interpretador identifica que o objeto em questão não está mais sendo utilizado ­
neste caso, pode ser forçado via gc.collect().

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 8/27
14/05/2016 Minicurso Python

Indentação
Recuo do texto em relação a margem. No caso específico do Python, é determinante para a
definição do escopo de um bloco de código.

In [10]:

def teste():  
'''retorna um número'''  
my_int = 12  
return my_int  

print(teste()) 

  File "<ipython‐input‐10‐64f8a593a4cd>", line 2 
    '''retorna um número''' 
                          ^ 
IndentationError: expected an indented block 

Operadores
Operadores são utilizados em expressões. Os tipos são:

Aritméticos
Atribuição
Lógicos
Bitwise
Comparação
Membership (filiação?)
Identity (identidade)

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 9/27
14/05/2016 Minicurso Python

Aritméticos

# Soma  
a + b, a + 2, 100 + 20  
# Subtração 
a – b, a ‐ 2, 100 ‐ 20  
# Multiplicação 
a * b, a * 2, 100 * 20  
# Divisão 
a / b, a / 2, 100 / 20 
# Módulo* 
a % b, a % 2, 100 % 2 
# Divisão floor* 
a // b, a // 2, 100 // 2 
# Exponenciação 
a ** b, a ** 2, 100 ** 3  

""" 
* Módulo é o resto da divisão. Exemplo: 3 % 2 == 1.  
* Divisão floor é o quociente inteiro da divisão, sem decimais. Exemplo: 9 
// 2 == 4 
""" 

Os operadores de soma (+) e ”módulo” (%) podem ser utilizados com strings
também. O operador de módulo para strings tem outro nome, operador de
formatação de string.

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 10/27
14/05/2016 Minicurso Python

In [11]:

var1 = 'abc' + 'def' # soma de 2 strings literais  
print(var1) 
var2 = var1 + var1 # soma de 2 variáveis do tipo str  
print(var2) 
var3 = 'Teste ' + var1 # soma de 1 variável do tipo str e uma string literal.  
var3 = 'Teste %d' % 123 # formata a string. Como o tipo str é imutável, uma nova s
tr é criada em cada operação. 
print(var3) 

data_formatada = "Hoje é %d de %s" % (14, 'Maio') 
print(data_formatada) 

abcdef 
abcdefabcdef 
Teste 123 
Hoje é 14 de Maio 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 11/27
14/05/2016 Minicurso Python

Atribuição

Como armazenar um valor em uma variável?

a = b 

Atribui o valor do operando da direita ao operando da esquerda. O operador de atribuição requer
que o operando da esquerda seja uma variável.

No Python, especificamente, é possível realizar múltiplas atribuições utilizando um único operador
de atribuição:

a, b = x, y  
(a, b) = x, y  
a, b, c = x, y, z  
a, (b, c) = [x, [y, z]] 

Atribuição Existem outros operadores de atribuição:

a = a + b 
a += b 
a /= b 
a //= b 
a ‐= b 
a %= b 
a *= b 
a **= b 

Lógicos

Lembram do tipo bool? True e False?

Tabela verdade (1922);

a and b # and
a or b # or 
not a # not 

Comparação

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 12/27
14/05/2016 Minicurso Python

< # menor que 
> # maior que  
<= # menor ou igual a  
>= # maior ou igual a  
== # igual a  
!= # diferente de 

Membership?

in # True se o valor está presente numa sequência, False caso contrário (x 
in y)  
not in # False se o valor está presente numa sequência, True caso contrári
o (x not in y) 

Identity

is # True se os operandos referenciam o mesmo objeto, False caso contrário 
(x is y, id(x) equals id(y))  
is not # False se os operandos referenciam o mesmo objeto, True caso contr
ário (x is not y, id(x) not equal id(y)) 

Conversões
str(10) integer ­> string
str(10.1) float ­> string
str({'v':True}) object ­> string
int('10') string ­> integer
float('10.1') string ­> float
int(10.1) float ­>
int float(10) int ­> float

Formatadores de string

In [12]:

nome = input('Qual é o seu nome?n')  
idade = int(input('Qual é o sua idade?n'))  
print('Olá %s!' % nome)  
print('%s, %d anos' % (nome, idade))  
print('{0}, {1} anos'.format(nome, idade))  
print('{}, {} anos'.format(nome, idade))  
frase = '{a}, {b} anos'.format(a=nome, b=idade)  
print(frase) 

Qual é o seu nome?nTales 
Qual é o sua idade?n28 
Olá Tales! 
Tales, 28 anos 
Tales, 28 anos 
Tales, 28 anos 
Tales, 28 anos 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 13/27
14/05/2016 Minicurso Python

Listas
Conjunto mutável de valores (elementos) de qualquer tipo, com índices de 0 a N.

In [13]:

# Criando  
# vazia  
lista = []  
lista = list()  
print(lista) 

# contendo números de 0 a 29  
lista = list(range(30))  
print(lista) 

# contendo números de 5 a 29  
lista = list(range(5, 30))  
print(lista) 

# contendo números múltiplos de 5 entre 0 e 29  
lista = list(range(0, 30, 5)) 
print(lista) 

# Clonando  
lista2 = list(lista) 
print(id(lista), id(lista2)) 

[] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1
9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29] 
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2
3, 24, 25, 26, 27, 28, 29] 
[0, 5, 10, 15, 20, 25] 
189974783240 189974783688 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 14/27
14/05/2016 Minicurso Python

In [14]:

lista = list(range(10))  
print(lista) 

# Adicionando itens  
lista.append(12)  
print(lista) 

# Removendo itens  
lista.remove(5)  
print(lista) 

i = 2 
lista.pop(i) 
print(lista) 

del lista[0] 
print(lista) 

del lista[2:4] 
print(lista) 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12] 
[0, 1, 2, 3, 4, 6, 7, 8, 9, 12] 
[0, 1, 3, 4, 6, 7, 8, 9, 12] 
[1, 3, 4, 6, 7, 8, 9, 12] 
[1, 3, 7, 8, 9, 12] 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 15/27
14/05/2016 Minicurso Python

In [15]:

lista = list(range(10))  
print(lista) 

# Acessando itens  
print(lista[0]) 
print(lista[1]) 
print(lista[4‐2]) # Qual índice será acessado?  

print(lista[‐1]) # Qual índice será acessado?  
print(lista[‐2]) # Qual índice será acessado?  

# Alterando itens  
lista[0] = 1000 
print(lista) 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 





[1000, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [16]:
lista = list(range(10))  
print(lista) 

# Tamanho, comprimento  
len(lista) # retorna o # de itens na lista  

#inverso 
lista.reverse() 
print(lista) 

# Ordenando  
print(sorted(lista)) # retorna uma nova lista ordenada  
print(lista) 

lista.sort() # muda a própria lista 
print(lista) 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 16/27
14/05/2016 Minicurso Python

In [17]:

# Testando existência do item  
print(10 in lista) # retorna True ou False  
# Repartindo  
start = 2 
end = 5 
print(lista[start:end]) # items de start até end‐1  
print(lista[start:]) # items de start até o fim  
print(lista[:end]) # items do início até end‐1  
print(lista[:]) # uma cópia da lista inteira 

False 
[2, 3, 4] 
[2, 3, 4, 5, 6, 7, 8, 9] 
[0, 1, 2, 3, 4] 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

In [18]:
# Matrizes Representadas por listas aninhadas (lista de listas, ou array de array
s).  

m3x2 = [[1, 7, 9],[8, 4, 2]]  
m3x2[0] == [1, 7, 9]  
m3x2[1] == [8, 4, 2]  
print(m3x2) 

m3x2[0][0] == 1  
m3x2[1][1] == 4  

m3x3 = [  
    [1,0,0],  
    [0,1,0],  
    [0,0,1]  

print(m3x3) 

[[1, 7, 9], [8, 4, 2]] 
[[1, 0, 0], [0, 1, 0], [0, 0, 1]]

Dicionários
Tipo composto que utiliza qualquer tipo como índice.

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 17/27
14/05/2016 Minicurso Python

In [19]:

# Criando  
# vazio  
d = dict()  
d = {}  

# contendo propriedades  
d = {'name': 'value'} 
print(d) 
d = {'x': 1, 'y': 2}  
print(d) 

# usando uma lista de tuples  
d = dict([('x', 1), ('y', 2)]) 
print(d) 

# Clonando  
d2 = d.copy()  

# Adicionando propriedades  
d = {} 
d['nome'] = 'Bruce Lee' 
d['ano'] = 1940  
print(d) 

# Removendo propriedades  
del d['nome']
print(d) 
d['nome'] = 'Bruce Lee' 

#Outras operações:  
print(len(d)) # Retorna tamanho, compimento  
print(d.keys()) # Retorna chaves (nome das propriedades)  
print(d.values()) # Retorna valores (das propriedades)  
print(d.items()) # Retorna lista de tuplas de chave‐valor  
print('nome' in d) # A propriedade existe? True ou False 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 18/27
14/05/2016 Minicurso Python

{'name': 'value'} 
{'x': 1, 'y': 2} 
{'x': 1, 'y': 2} 
{'ano': 1940, 'nome': 'Bruce Lee'} 
{'ano': 1940} 

dict_keys(['ano', 'nome']) 
dict_values([1940, 'Bruce Lee']) 
dict_items([('ano', 1940), ('nome', 'Bruce Lee')]) 
True 

Tuplas
Lista de valores separados por vírgula, similar a lista, porém imutável.

In [20]:

# Criando  
t = 'a', 'b', 'c', 'd', 'e'  
print(t) 
t = ('a', 'b', 'c', 'd', 'e')  
print(t) 
t = ('a',) # Note a vírgula no final Sem a vírgula, o interpretador entenderá que 
é apenas uma string entre parênteses. 
print(t) 

# Tamanho, comprimento  
print(len(t)) # retorna o # de itens na tupla 

('a', 'b', 'c', 'd', 'e') 
('a', 'b', 'c', 'd', 'e') 
('a',) 

In [21]:

# Alterando elementos 
t[0] = 'x' 

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐ 
TypeError                                 Traceback (most recent call 
last) 
<ipython‐input‐21‐e00e67af15c8> in <module>() 
      1 # Alterando elementos 
‐‐‐‐> 2 t[0] = 'x' 

TypeError: 'tuple' object does not support item assignment

In [ ]:

# Removendo elementos  
del t[0] 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 19/27
14/05/2016 Minicurso Python

In [ ]:

# Testando existência do item  
print('a' in t) # retorna True ou False  

# Repartindo  
t = ('a', 'b', 'c', 'd', 'e')  
start = 2 
end = 4 
print(t[start:end]) # items de start até end‐1  
print(t[start:]) # items de start até o fim  
print(t[:end]) # items do início até end‐1  
print(t[:]) # uma cópia da lista inteira 

In [ ]:

# Trocando valores (sem tupla)  
a = ('a',) 
b = ('b',) 
print(a, b) 
temp = a  
a = b  
b = temp  
print(a, b) 

In [22]:

# Trocando valores usando atribuição de tupla  
a = ('a',) 
b = ('b',) 
print(a, b) 
a, b = b, a 
print(a, b) 

('a',) ('b',) 
('b',) ('a',) 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 20/27
14/05/2016 Minicurso Python

Condições e condicionais
Condições podem ser verdadeiras ou falsas. Por exemplo: A expressão x > 10 é verdadeira se o
valor da variável x for maior que 10, caso contrário a expressão é falsa.

Condicionais dependem de condições, portanto elas permitem que você faça uma coisa ou outra,
dependendo do resultado da condição.

A condicional mais comum é a palavra­chave if. Por exemplo:

if x > 10: print('maior que 10') 

As vezes você quer fazer uma coisa quando a condição é verdadeira, e outra coisa quando ela é
falsa. A palavra­chave else permite que você faça isto. Exemplo:

if x > 10: print('maior que 10') else: print('menor que 10') 

Condicionais aninhados:

In [23]:

x = 1 
y = 2 

if x == y:  
    print(x, 'e', y, 'são iguais')  
else:  
    if x < y:  
        print(x, 'é menor que', y)  
    else: print(x, 'é maior que', y) 

1 é menor que 2 

Também é possível testar várias condições, e fazer uma coisa somente para a primeira condição
que for verdadeira. Para isto usamos a palavra­chave elif (abrev de else if). Exemplo:

In [24]:
x = 1 
y = 2 

if x == y:  
    print(x, 'e', y, 'são iguais')  
elif x < y:  
    print(x, 'é menor que', y)  
else:  
    print(x, 'é maior que', y) 

1 é menor que 2 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 21/27
14/05/2016 Minicurso Python

Operador ternário (desde Python 2.5)

a if cond else b 

Testa a condição cond, e retorna a ou b, dependendo do resultado da condição.

In [25]:

resultado = 'maior' if x > 10 else 'menor'  
print('x é %s que 10' % resultado) 

x é menor que 10 

In [26]:
import time  
agora = time.localtime()  
hora = agora.tm_hour  

if hora < 7:  
    print('dormindo')  
elif hora < 8:  
    print('indo trabalhar')  
elif hora < 13 and hora > 12:  
    print('almoçando')  
elif hora < 18:  
    print('trabalhando')  
elif hora < 19:  
    print('voltando pra casa')  
elif hora < 20:  
    print('jantando')  
elif hora < 22:  
    print('descansando')  
else:  
    print('dormindo') 

trabalhando 

Loops (laços)
É comum a necessidade de repetir uma ou mais instruções um determinado número de vezes.
Para isto, podemos usar a palavra­chave while. Exemplo:

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 22/27
14/05/2016 Minicurso Python

In [27]:

lista = [0,10,20,30,40,50]  
indice = 0  
while indice < len(lista):  
    print('num = %d' % lista[indice])  
    indice += 1 

num = 0 
num = 10 
num = 20 
num = 30 
num = 40 
num = 50 

Utilizar um índice para percorrer um conjunto de valores é tão comum que o Python oferece uma
alternativa simplificada, as palavras­chave for­in. Exemplo:

In [28]:

lista = [0,10,20,30,40,50]  
for num in lista:  
    print('num = %d' % num)  

for i, num in enumerate(lista):  
    print('lista[%d] = %d' % (i, num)) 

num = 0 
num = 10 
num = 20 
num = 30 
num = 40 
num = 50 
lista[0] = 0 
lista[1] = 10 
lista[2] = 20 
lista[3] = 30 
lista[4] = 40 
lista[5] = 50 

Outro exemplo:

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 23/27
14/05/2016 Minicurso Python

In [29]:

prefixos = 'JKLMNOPQ'  
sufixo = 'ython'  
for letra in prefixos:  
    print(letra + sufixo) 

Jython 
Kython 
Lython 
Mython 
Nython 
Oython 
Python 
Qython 

Funções
Função é uma sequência nomeada de instruções ou comandos que realizam uma operação
desejada.

Deve ser definida/declarada ANTES de ser utilizada, chamada, invocada;
Pode ser chamada repetidamente;
Pode chamar outra função (composição), inclusive a si mesma (recursividade);
Pode receber argumentos (parâmetros) ou não;
Pode retornar um resultado ou não;

A definição de uma função não altera o fluxo de execução do programa;

Os comandos dentro da função não são executados até a função ser chamada;
Chamadas de função são como um desvio no fluxo de execução. Em vez de ir para o
próximo comando, o fluxo salta para a primeira linha da função chamada, executa todos
os comandos lá e então volta atrás para retomar de onde havia deixado.

Como declarar uma função?

def NOME():  
    COMANDOS # corpo da função, function’s body  

def NOME():  
    pass # função vazia, sem implementação 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 24/27
14/05/2016 Minicurso Python

In [30]:

def OlaMundo():  
    texto = 'Olá mundo!'  
    print(texto)  
         
def OlaNovamente():  
    texto = 'Olá novamente!'  
    print(texto) 
     
# Como chamar (invocar, executar) uma função?  
OlaMundo()  
OlaNovamente() 

Olá mundo! 
Olá novamente! 

Argumentos
Argumentos são valores passados para a função, e podem influenciar no fluxo de execução, ou
comportamento, da função. Argumentos tem escopo LOCAL.

Como declarar uma função com argumentos?

def NOME(ARGUMENTOS):  
    pass  

def NOME(arg1, arg2, arg3):  
    pass 

In [31]:

def nome1(arg1):  
    print('Olá', arg1)  

def nome2(arg1, arg2):  
    print('Olá', arg1, arg2)  

nome1('Tales')  
nome2('Tales', 'Moreira')  

Olá Tales 
Olá Tales Moreira 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 25/27
14/05/2016 Minicurso Python

In [32]:

nome1('Tales', 'Moreira')  

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐ 
TypeError                                 Traceback (most recent call 
last) 
<ipython‐input‐32‐1985d3af6032> in <module>() 
‐‐‐‐> 1 nome1('Tales', 'Moreira') 

TypeError: nome1() takes 1 positional argument but 2 were given

In [33]:
nome2('Tales')  

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐ 
TypeError                                 Traceback (most recent call 
last) 
<ipython‐input‐33‐9a96a51352b4> in <module>() 
‐‐‐‐> 1 nome2('Tales') 

TypeError: nome2() missing 1 required positional argument: 'arg2'

Retorno
O resultado de uma função é chamado de valor de retorno. A palavra chave return permite que
uma função retorne valores, e também permite terminar a execução de uma função antes de ela
alcançar seu fim. Um uso comum para isto é ao detectar uma condição de erro.

Exemplo de retorno precoce (antecipado):

In [34]:

def calculaPotencia(num, pot):  
    if num <= 0 or pot <= 0:  
        print('Somente números positivos')  
        return  
    return num ** pot 

print(calculaPotencia(‐1, 2)) 
print(calculaPotencia(2, 2)) 

Somente números positivos 
None 

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 26/27
14/05/2016 Minicurso Python

def nada():  
    return # ou return None  

def potencia(valor, potencia):  
    return valor ** potencia  

def fatorial(num):  
    import math  
    return math.factorial(num)  

def tupla():  
    return True, 'Teste' 

Objetos

In [38]:

class Nome(object): 
     
    nome = None 
     
    def __init__(self, nome): 
        self.nome = nome 

obj = Nome("Tales") 
print(obj.nome) 

Tales 

In [ ]:

  

http://localhost:8888/nbconvert/html/Minicurso%20Python.ipynb?download=false 27/27

Você também pode gostar