Você está na página 1de 22

Universidade Federal Fluminense

Centro Tecnolgico
Escola de Engenharia
Curso de Engenharia de Telecomunicaes
Programa de Educao Tutorial
Grupo PET-Tele

Tutorial de Introduo ao Python


(Verso: 2k9)
Niteri - RJ
Maio / 2009

Sumrio
1 Caractersticas bsicas da linguagem

2 Obteno e instalao

3 Variveis

4 Strings
4.1
Manipulando Strings

3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Operaes matemticas

6 Entrada de Dados

7 Estruturas de controle
7.1
While . . . . . . . .
7.2
If . . . . . . . . . . .
7.3
For . . . . . . . . . .

7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 Funes

8.1

Variveis em funes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

8.2

Recursividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

8.3

Mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

9 Listas

13

9.1

Inserindo um novo dado a uma lista . . . . . . . . . . . . . . . . . . . . . .

15

9.2

Impresso dos contedos da lista

9.3

Determinar em que ordem um elemento aparece na lista

9.4

Remover um elemeto de uma lista . . . . . . . . . . . . . . . . . . . . . . .

16

9.5

Descobrir o tamanho de uma lista . . . . . . . . . . . . . . . . . . . . . . .

16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

9.6

Range

10 Expresses booleanas

. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .

15
16

17

Introduo
A idia de um ser humano, enquanto for apenas um pensamento, algo amorfo, que existe
por si mesma, no necessitando de nada, alm de si, para descrev-la. Entretanto para
compartilh-la com outras pessoas precisamos descrever esta idia com palavras e frases,
transformando este pensamento em uma linguagem natural humana.
Computadores e outros dispositivos eletrnicos programveis possuem sua prpria
forma de pensar", isto , o cdigo binrio. Mquinas seguem instrues determinadas
pela energizao (ou no) de determinadas partes em seus componentes.
Ento para transmitir uma idia para uma mquina devo me comunicar em zeros e uns?
A resposta para esta pergunta um sim e um no". Um sim pois, de fato, a idia
que ser recebida pela mquina ser descrita como uma sequncia de zeros e uns. O no
se refere a dizer que embora seja possvel traduzir sua idia para uma linguagem natural
da mquina (binrio), este no o processo mais comum. A programao diretamente em
binrio algo demasiadamente complexo para humanos, pois a forma bsica de expresso
do ser humano so as palavras e no sequncias numricas.
Para contornar este problema foram criadas as linguagens de programao, que so
pontes entre a linguagem natural humana e a linguagem da mquina (binria), mesclando
conceitos das linguagens de mquina e natural humana. As linguagens de programao so
classicadas em vrios nveis de acordo com sua proximidade com a linguagem humana.
Linguagens de baixo nvel tem a funo de descrever uma situao mais prxima do
ponto de vista de uma mquina, ao passo que linguagens de alto nvel so concebidas com
o propsito de tornar fcil a traduo de um pensamento (algoritmo), se assemelhando
com delidade linguagem humana que seria necessria para descrever aquela idia.
Neste tutorial descreveremos a linguagem de programao Python cujo objetivo se
aproximar bastante da linguagem humana, sendo assim intuitiva, fcil e ao mesmo tempo
sendo bastante exvel, se adequando ao uso em diversas situaes.

Caractersticas bsicas da linguagem

Python uma linguagem de programao interpretada, de cdigo-fonte aberto e disponvel


para vrios sistemas operacionais.

Ser uma linguagem interpretada signica dizer que

ao se escrever um programa, este no ser compilado (traduzido para uma linguagem


de mquina), mas sim lido por um outro programa (chamado de interpretador) que
traduzir para a mquina o que seu programa quer dizer.
O interpretador para Python interativo, ou seja, possvel execut-lo sem fornecer
um script (programa) para ele. Ao invs disso, o interpretador disponibilizar uma interface interativa onde possvel inserir os comandos desejados um por um e ver o efeito
de cada um deles.

Neste tutorial, se encontra a representao  >>> antes da maioria

dos comandos apresentados , o que quer dizer que este comando est sendo inserido no
interpretador interativo (e sempre abaixo, o resultado gerado).

Obteno e instalao

Caso o usurio esteja utilizando um sistema Linux ou OS X (Apple), o interpretador para


Python j vem instalado por padro, sendo apenas necessrio escrever o comando python

no seu programa de terminal favorito. Para usurios do sistema operacional Windows,


o interpretador para Python deve ser baixado atravs do site http://www.python.org e
instalado. Neste ltimo sistema o usurio encontra um utilitrio para fazer o papel de
terminal (e editor de python) no Windows, denominado IDLE.

Variveis

Variveis so formas de se armazenar dados para uso posterior. Estas podem ser classicadas em 3 tipos bsicos (existem outros, que sero abordados mais a frente):

int

- Um nmero inteiro

oat

- Um ponto utuante

string

- Uma sequncia de caracteres

Ao contrrio da maioria das outras linguagens, em Python, no necessrio declarar


as variveis que sero usadas, tampouco denir seu tipo.

A prpria sintaxe do dado a

ser armazenado identica o tipo da varivel para armazen-lo. Por exemplo, caso desejese atribuir o valor 3 varivel
inteiro(tipo 

int ").

A,

basta digitar

A=3.

Python saber que

um

Por outro lado, se o valor a ser armazenado fosse 3,2 que um dado

do tipo ponto utuante, este deveria ser expresso como

A=3.2.

Observe que, para

Python, A=3 e B=3.0 so variveis de tipos diferentes e isto deve ser levado em conta ao
se realizar certos tipos de manipulaes de dados.

Strings

String um tipo de objeto formado por uma sequncia imutvel de caracteres que nos
permite trabalhar com textos. Exemplo:

>>>
>>>

a = Bom Dia
print a

Bom Dia
Percebemos que elas so delimitadas por aspas, podemos utilizar tanto aspas duplas
como as simples. Se utilizarmos aspas duplas, como o mostrado no exemplo acima, podemos usar as simples para aplicaes dentro do texto que estamos escrevendo, o contrrio
tambm verdadeiro.
Exemplo:

>>>
>>>

b = 'O lema do governo JK era:\n Cinquenta anos em cinco. '


print b

O lema do governo JK era:


Cinquenta anos em cinco.
No exemplo acima utilizamos um outro artifcio para trabalharmos com strings, o

\n.

Este por sua vez, tem a funo de pular uma linha e escrever o texto, que est depois
do

\n,

nessa nova linha. Tanto isso verdade que no mesmo exemplo, quando usamos o

comando print mostrada a parte do texto que diz: Cinquenta anos em cinco., impresso
na linha seguinte.
Outro artifcio parecido com

\n, o \t que tem o objetivo de acrescentar ao texto que

vem aps, um espao de tabulao.


H tambm outra aplicao para as aspas, que consiste na delimitao do texto por
trs aspas (duplas ou simples).
Exemplo:

>>>

a =  ' Quatro times do Rio de Janeiro:

Botafogo
Vasco
Fluminense
Flamengo '

>>>

print a

Quatro times do Rio de Janeiro:


Botafogo
Vasco
Fluminense
Flamengo
Nessa aplicao para as aspas, quando usamos o comando print, tudo o que estiver
entre as trs aspas ser impresso exatamente da mesma forma como foi escrito.

Manipulando Strings

4.1

Pelo fato de uma string ser uma sequncia imutvel, isso nos d a possibilidade de manipularmos essa sequncia, consideremos o exemplo abaixo:

>>>
>>>

a = 'matemtica'
a[2]+a[-5]+a[-4:]

'ttica'
Isso nos mostra que uma string segue uma determinada indexao onde cada caractere
assume um endereo que, pode ser acessado colocando o nome da varivel, que contm a
string, e aps, entre os colchetes, o endereo da clula que contm o caractere desejado.
Existe tambm um recurso conhecido como operador %, que serve para formatar as
strings, basicamente so trs os tipos de formatao que temos:

%s

- Serve para substituir string;

%d

- Serve para substituir nmeros inteiros em uma frase destinada a um print;

%f

- Serve substituir oats (nmeros em aritmtica de ponto utuante).

Observao:
As trs formataes acima relacionadas so normalmente para aplicaes em uma frase
destinada a um print.
Exemplo:

>>>
>>>

compra= 'ma'
tipo='verde'

>>>
>>>

quilos = 1,5
print 'Maria comprou %f quilos de %s %s .' %(quilos,compra,tipo)

Maria comprou 1,5 quilos de maa verde.


Observao:
Com vimos acima o operador % pode ser utilizado para formatao de nmeros tambm.
Com ele possvel tambm determinar a quantidade de nmeros, aps a vrgula de um
oat.
Exemplo:

>>>
>>>

num=245.47876749
print '%.2f ' %(num)

245.48
Percebemos que Python fez uma aproximao do nmero real, possibilitando que o
resultado de uma futura operao seja o mais preciso possvel.

Operaes matemticas

Alm de ser uma poderosa linguagem de programao, Python sabe lidar bem com
matemtica.

Suas capacidades matemticas se extendem desde operaes bsicas at

operaes com nmeros complexos.


Abaixo, vamos comear aprendendo as 4 operaes matemticas bsicas. Lembre-se
que  >>> signica a digitao de um comando no interpretador.
Soma:

>>>2+3
5

Subtrao:

>>>2-3
-1

Multiplicao:

>>>2*3
6

Diviso:

>>>2/3
0

Na diviso, pode-se optar por resultados como nmeros inteiros (ou o inteiro mais
prximo) ou resultado exato (um ponto utuante). Para isso, deve-se fornecer um inteiro
(para se obter um inteiro como resultado) ou um ponto utuante (para se obter o resultado exato).
Diviso:

>>>2.0/3.0
0.66666666666666663

A operao aritimtica de potenciao tambm pode ser feita, assim como a sua inversa, a radiciao.
Potenciao:

>>>

2**3

No existe um comando especco para a radiciao em Python (exceto para a raiz


quadrada). Entretanto, para obter a raiz n-sima de um nmero basta elev-lo por

1/n

onde   o ndice da raiz. As regras para a obteno de nmeros inteiros ou pontos


ututante tambm se aplicam a este caso.
Radiciao:

>>>8**(1.0/3.0)
2.0
8

Entrada de Dados

Atravs do comando

string
>>>

raw_input

podemos receber do usurio uma

pode ser conhecido pelo comando

len() .

string.

O tamanho da

nome = raw_input('Digite seu nome: ')

Digite seu nome: Pedro

>>>

nome

'Pedro'

>>>

len(nome)

>>>

sobrenome = raw_input('Agora digite o sobrenome: ')

Agora digite o sobrenome: Albuquerque

Operaes matemticas no podem ser feitas com


porm se somarmos
multiplicarmos uma

>>>

strings, apenas com oats e inteiros,

strings, Python as juntar, num processo chamado concatenao e se


string ela ser repetida.

nome + sobrenome

'PedroAlbuquerque'

>>>nome*3
'PedroPedroPedro'

Se a priori sabemos que o dado digitado pelo usurio no ser uma


utilizar como entrada de dados o comando

>>>

input():

idade = input('Digite sua idade: ')

Digite sua idade: 27

>>>

altura = input('Qual a sua altura: ')

Qual a sua altura: 1.75

>>>

type(idade)

<type 'int'>

>>>

type(altura)

<type 'oat'>

string,

podemos

Observao: O dado inserido pelo usurio j dinamicamente tipado. Para saber qual o
tipo da varivel atribuda, basta digitar o comando

type()

que ele devolver a varivel

referente ao objeto entre parnteses.

Estruturas de controle

Os comandos de Python so executados pelo computador, linha por linha e as estruturas


de controle permitem ao programador modicar a ordem em que cada comando ser
executado bem como se ele ser ou no executado.

7.1

While

Comearemos por uma estrutura de repetio.

loop while

tem como funo repetir

determinado bloco de comando, at que uma determinada condio pare de ser atendida.
Para que o bloco seja executado no momento correto, devemos manter uma rgida identao, ou seja, tudo que pertencer ao bloco do

while, deve estar um espao a frente, isto

ajuda a deixar o cdigo legvel e organizado.

>>>

while #condio for verdadeira :

...

#bloco de comandos pertencentes ao while

#continuao do programa

Vejamos, por exemplo, como calcular um nmero fatorial:

>>>

resultado = 1

>>>

num_org = input('Entre com um nmero inteiro: ')

>>>

Entre com um nmero inteiro: 6

>>>

num = num_org

>>>

while num > 1:

...

resultado = resultado * num

...

num = num - 1

...
>>>

print 'O nmero ', num_org, ' ! : ',resultado

>>>

O nmero 6! : 720

Se a condio estabelecida no

while

for sempre verdadeira, como 2 < 1, o seu

ser innito, pois a condio ser sempre atendida.


usar tambm o comando

7.2

loop

Caso esse seja seu desejo, pode-se

while 1 em vez de estabelecer uma condio qualquer.

If

Outra estrutura que estudaremos a condicional. O comando

if

direciona o computador

a tomar uma deciso, baseado nas condies determinadas. Se a condio for atendida,
um bloco de comandos ser executado, caso contrrio, o computador executa outros comandos.

>>>if

#condio1 for verdadeira:

...

#bloco de comandos 1

...elif

#condio2 for verdadeira:

...

#bloco de comandos 2

...else:
...

#bloco de comandos 3

Nessa estrutura podemos utilizar quantas condies forem necessrias, para isso, basta
repertimos o

elif

seguido das condies desejadas. Tendo isso em vista, vejamos um pro-

grama de adivinhao de um nmero:

>>>num
>>>adv

= 23
= 0

>>>while

adv != num:

...

adv = input('Insira um nmero: ')

...

if adv < num:

...

print ' maior!'

...

elif adv > num:

...

print ' menor!'

...

else:

...

print 'Voc acertou!'

...
>>>Insira

um nmero:

Como vimos, em Python no necessrio que utilizemos a


uma estrutra.

Isto devido a identao do programa.

terminada automaticamente quando a

7.3

tag

tag end para terminarmos

Em Python, uma estrutura

da prxima linha comea no incio da linha.

For

O comando

for,

em Python, difere do que normalmente se v em outras linguagens de

programao, onde esse comando tem a nalidade de realizar uma iterao baseada numa
progresso aritimtica, percorrendo os nmeros denido pelo usurio, enquanto em Python
a iterao feita percorrendo os itens de uma sequncia, seja ela uma lista ou at mesmo
uma

>>>
...

string.

Vamos analisar o cdigo abaixo:

for contador in range(1, 11):


print contador

A estrutura acima utiliza uma varivel criada, no caso


elemento da lista criada com o comando

contador, para percorrer cada

range(1,11), com isso, cada repetio feita pelo

loop for far com que a varivel contador aponte para um diferente valor dentro da lista
range e logo em seguida imprima esse valor.

formada pela funo

A sada que teramos neste caso seria:


1

2
3
4
5
6
7
8
9
10

Ou seja, um print de todos os elementos da lista.


A funo

for tambm pode ser aplicada com o uso de strings, observemos o caso abaixo:

>>>

lista = ['vida', 42, 'o universo', 6, 'e', 7, 'tudo']

>>>

for item in lista:

...

print 'O item atual :',print

E obteramos como sada:

O item atual : vida


O item atual : 42
O item atual : o universo
O item atual : 6
O item atual : e
O item atual : 7
O item atual : tudo

Funes

As linguagens de programao em geral tm o intuito de automatizar aes tornando-as


mais rpidas.
Se houver alguma ao que seja grande e utilizada com frequncia, temos a opo
de criar uma funo que cumpra o seu objetivo, reduzindo o espao ocupado pelo nosso
programa nal, alm de deix-lo com uma aparncia mais limpa, visto que o tamanho
do cdigo ir diminuir. Essas funes tambm so muito teis na tarefa de debuggar o
seu cdigo, visto que voc no precisar vasculhar o cdigo atrs do erro, basta entrar na
funo e modic-la. Um exemplo de como podemos diminuir um cdigo est descrito
abaixo.
Se em um determinado problema, precisarmos descobrir se dois valores absolutos so
iguais podemos utilizar o cdigo 1, descrito abaixo, todas as vezes que precisarmos realizar essa descoberta, ou podemos simplesmente usar o cdigo 2 criando uma funo que
cumpra esse objetivo exigindo apenas que apresentemos os valores que devemos analisar.

Dado que temos os valores:


a = 23 b = -23
Funo 1:

>>>

if a < 0:

...
>>>

a = -a
if b < 0:

...
>>>

b = -b
if a == b:

...
...

print 'Os valores absolutos de ', a, ' e ', b, ' so iguais'


else:

...

print 'Os valores absolutos de ', a, ' e ', b, ' so iguais'

Funo 2:

>>>def

compara_absolutos(a,b):

...

" Essa funo retorna se os valores absolutos das variveis requeridas so iguais

...

if a < 0:

...

a = -a

...

if b < 0:

...

b = -b

...

if a == b:

...

print 'Os valores absolutos de ', a, ' e ', b, ' so iguais'

...

else:

...

print 'Os valores absolutos de ', a, ' e ', b, ' so iguais'

...
Abaixo apresentamos a sintaxe necessria para criao de funes utilizando a linguagem Python.

>>>def

funcao(variavel1,variavel2,...,variavelN):

...

bloco de comandos

...

return

que ao chamar uma funo, podemos passar a esta alguns parmetros (valores ou

strings ): funcao(1234,"pet-tele","UFF-1234"),

porm em algumas funes ao colo-

carmos nosso cdigo na seo bloco de comandos, a funo automaticamente denir os


parmetros necessrios. Por exemplo, se houver uma funo que faa clculos matemticos, devolvendo um resultado numrico, ser necessrio que todas as variveis chamadas
pela funo sejam inteiros ou

oats.

10

8.1

Variveis em funes

Em geral, quando estamos eliminando cdigo repetitivo por meio de funes tambm
temos algumas variveis repetidas neste cdigo.

Em Python, as variveis podem ter

tratamentos diferentes em funo de onde se encontram. Todas as variveis que vimos at


agora so chamadas de variveis globais, ou seja, em qualquer momento ou em qualquer
parte do cdigo do seu programa, voc poder utiliz-las (seja para ler seu contedo ou
atribuir valores).
Funes tem um tipo especial de variveis que so chamadas de variveis locais. Estas
variveis existem apenas dentro da funo, de forma que caso o programador determine
uma funo e armazene um certo dado em uma varivel local, ao trmino desta funo a
varivel ser destruda, no sendo possvel recuperar seu valor.
Mas como ento, pode-se recuperar um valor de uma funo?
comando

return

seguido de algum valor ou uma varivel.

Para isto usamos o

Neste caso, a varivel local

esconder a varivel global, enquanto a funo estiver rodando.

Um pouco confuso?

Ento conra o exemplo abaixo:

>>>a

= 4

>>>def

print_func():

...

a = 17

...

print 'in print_func a = ', a

...
Agora chame a funo

print_func()

e pea o valor a utilizando o comando

print,

seu resultado deve ser este:

>>>print_func()
in print_func a = 17

>>>print

'a = ', a

a = 4

Com isto, podemos concluir que variveis criadas dentro de uma funo (variveis
locais), no afetam as variveis que esto fora dela (variveis globais). As variveis locais
existem apenas dentro do espao limitado pela funo, no podendo assim nem ser usada,
nem afetar nada fora deste espao.

8.2

Recursividade

A recursividade um tipo de iterao (repetio) na qual uma funo chama a si mesma


repetidamente at que uma condio de sada seja satisfeita. Abaixo temos um exemplo
de uma funo responsvel por calcular o fatorial de nmeros positivos inteiros e demonstra como uma funo pode chamar a ela mesma utilizando a propriedade recurssiva.

>>>def
...
...
...

fatorial(n):
if n <= 1:
return 1
return n * fatorial(n - 1)

11

...
>>>print

'2! = ',fatorial(2)

2! = 2

>>>print

'3! = ',fatorial(3)

3! - 6

>>>print

'4! = ',fatorial(4)

4! = 24::

>>>print

'5! = ',fatorial(5)

5! = 120

Um passo-a-passo de como a funo executada, utilizando o comando

fatorial(n),

para n = 3:

1. Quando chamamos a funo

fatorial(3),

fornecemos funo o valor 3 para o

parmetro de entrada n.
2. O comando

if

testa se n menor ou igual a 1, como este no , a funo continua.

n*fatorial(n-1), ou seja, 3*fatorial(2). Entretanto, ela ainda no possui o valor de fatorial(2). Para isso, a funo
fatorial novamente chamada com n = 2, retornando o valor 2*fatorial(1).

3. Nesta parte a funo pretende retornar o valor

4. Como ainda no temos

fatorial(1), a funo chama a si mesma mais uma vez para

calcul-lo.
5. Com isto, atingimos a condio de sada do

if

que est na funo

fatorial

e ento

o valor retornado 1.
Vamos fazer uma retrospectiva do que aconteceu ao se executar esta funo:
fatorial(3)
3 * fatorial(2)
3 * 2 * fatorial(1)
3 * 2 * 1 = 6

8.3

Mdulos

Pensando na reutilizao de cdigo, a linguagem Python j possui um conjunto de funes


prontas para serem usadas ou agregadas em seus programas. Essas funes esto agrupadas em estruturas denominadas mdulos. Para a utilizao desses mdulos preciso
utilizar o comando

import nome_do_mdulo.

Aps ter importado o mdulo, qualquer funo pertencente a ele pode ser utilizada
atravs do comando

nome_do_mdulo.funo(argumento).

possvel importar do mdulo apenas a funo desejada.


comando

Para isso, utilizamos o

from nome_do_mdulo import funo, e a funo estar disponvel para

12

utilizao.
Voc tambm pode denir o seu prprio mdulo. Deni-se as funes desejadas e ao
nal, voc salva o seu mdulo com a extenso .py . Exemplo:
Digite em um editor de texto simples:

#IMC.py

def indice(altura,peso):
imc = peso/(altura**2)
return imc

def estado(imc):
if imc < 24.9:
print 'NORMAL'
elif 24.9 < imc < 29.9:
print 'PESO A MAIS'
elif 29.9 < imc < 40:
print 'LIGEIRA OBESIDADE'
elif imc > 40:
print 'OBESIDADE'
else:
print 'MAGRO DEMAIS'

def pesoideal(peso,altura):
a = 20*(altura**2)
b = 24.9*(altura**2)
print 'Seu peso ideal se encontra entre %f e %f ' %(a,b)

Agora, salve o seu arquivo como IMC.py .

De agora em diante, o mdulo j pode ser

utilizado por qualquer programa em Python.

Listas

Listas so sequncias de variveis.

Aps denidas, podem ser modicadas de vrias

maneiras, pois so mutveis.


Para denir uma lista basta digitar:

lista = [9,8,7]
O endereamento dos componentes comea no 0.
determinado elemento da lista, basta cham-lo:
ao elemento de posio x na lista.
Alguns comandos referentes a listas:

len(lista)

informa o tamanho da lista

13

lista[x].

Ento, se voc deseja usar um


Com isso, voc est se referindo

lista.append(x)

adiciona o elemento x no nal da sua lista

lista.extend([6,5,4])
lista[y]= x

adiciona uma lista inteira no nal da sua lista

insere o valor y na posio x da lista

Ns j vimos anteriormente que variveis comuns armazenam um nico valor.

En-

tretanto, existem outros tipos de variveis capazes de armazenar mais de um valor. Em


Python, chamamos essas variveis com capacidade de armazenamento de listas ou vetores.
Vamos explicar a sintaxe de uma lista atravs das linhas de cdigo exibidas abaixo:

>>>

meses = ['Janeiro', 'Fevereiro', 'Maro', 'Abril', 'Maio', 'Junho', 'Julho','Agosto', 'Setembro', 'Outubro', 'Novembro',

'Dezembro']

>>>

while 1:

...

qual_mes = input("Escolha um ms (1-12)? )

...

if 1 <= which_one <= 12:

...

print O ms , meses[qual_mes - 1]

Ao rodar este programa obteremos a seguinte sada como exemplo:

>>>

Escolha um ms (1-12)? 5

O ms Maio

>>>

Escolha um ms (1-12)? 12

O ms Dezembro

>>>

Escolha um ms (1-12)?

Primeiramente criamos a nossa lista, a denio de uma lista anloga a de uma


varivel qualquer, porm isolando o contedo com colchetes. O uso das aspas (duplas ou
simples) apenas necessrio caso estejamos inserindo na lista uma

string, se armazensse-

mos apenas um nmero, no seria necessrio.


Exemplo:

teste = ['vida', 42, 'universo', 6, 'e', 7]

Depois inserimos o comando 

loop.

while

1: que faz com que o nosso programa entre em

O programa vai rodar indenidamente at ser dado o comando Ctrl+D, ou at

que o programa seja fechado.

Uma vez nesse

loop,

denida pelo usurio a varivel

qual_mes", e depois de um tratamento de erros, feito com a utilizao de um comando

if, nos devolvido o nome do ms selecionado, Na ltima linha do cdigo utilizamos uma
propriedade da lista, que buscar um dado da lista, que se d escrevendo o nome da
lista e entre colchetes o nmero referente ao local da lista onde est o dado requerido
(lista[nmero]). Observe que na nossa linha de cdigo

print

dado pelo ms escolhido

menos um, ou seja: o Python indexa suas listas partindo do zero.


Alm de selecionar um elemento de uma lista, temos algumas outras propriedades que
apresentaremos em seguida.

14

9.1

Inserindo um novo dado a uma lista

Para inserir um novo dado a uma lista qualquer, chamamos uma mtodo chamado

pend :
>>>teste

.ap-

= []

>>>teste.append('zero')
>>>teste.append('um')
>>>teste
['zero','um']

append

Infelizmente o comando .

s consegue adicionar um dado na lista por vez, mas

se quisermos adicionar mais dados podemos simplesmente somar listas, multiplic-las, ou


utilizar o comando

.extend :

>>>teste.extend(['dois','trs',]
>>>soma

= ['quatro','cinco']

>>>teste

+= soma

>>>teste

+ ['seis']

['zero','um','dois','trs','quatro','cinco','seis']

>>>teste*2
[zero','um','dois','trs','quatro','cinco','seis',zero','um','dois','trs','quatro','cinco','seis']

Observao: o cdigo

9.2

teste += soma o mesmo que escrever teste = teste + soma.

Impresso dos contedos da lista

Ao chamarmos a lista

teste

sem referenciarmos nenhum elemento especco estamos li-

dando com todos os elementos da lista. Podemos tambm imprimir somente alguns valores
de dentro da lista, necessitando para isso apenas indicar o local:

>>>print

'As variavis na lista teste so ',teste

As variavis na lista teste so ['zero','um','dois','trs','quatro']

>>>print

'As variavis 0 e 3 da lista teste so ',teste[0],' e ',teste[3]

As variavis 0 e 3 da lista teste so zero e trs

Podemos tambm utilizar o comando

>>>for
...

for.

valor in teste:

print valor

...
zero
um
dois
trs

15

quatro

9.3

Determinar em que ordem um elemento aparece na lista

A funo

.index

retorna o ndice da primeira ocorrncia do valor especicado, ou seja,

para imprimirmos na tela a posio em que a

string

quatro aparece utilizaramos o

cdigo:

>>>print

lista.index("quatro")

Observao:

importante notar que a lista inicia sua contagem a partir do 0 (zero)

o que explica o nmero 2 obtido acima.

9.4

Remover um elemeto de uma lista

Para remover um elemento de uma lista utilizamos o comando

del ,

referenciando o

index,

ou posio da lista, onde haver a remoo.

>>>print

'Antes a lista 'teste' era: ',teste

Antes a lista 'teste' era: ['zero','um','dois','trs','quatro']

>>>del

teste[3]

>>>print

'Agora a lista 'teste' : ',teste

Agora a lista 'teste' : ['zero','um','dois','quatro']

Podemos obter o mesmo efeito utilizando o mtodo


ocorrncia na lista para um dado valor ou

>>>lista
>>>print

string :

.remove que procuraria a primeira

+= ['um']
'Antes a lista 'teste' era: ',teste

Antes a lista 'teste' era: ['zero','um','dois','quatro','um']

>>>teste.remove("um")
>>>print

'Agora a lista 'teste' : ',teste

Agora a lista 'teste' : ['zero','dois','quatro','um']

9.5

Descobrir o tamanho de uma lista

Para descobrir o tamanho de uma lista, usamos o comando


cdigo abaixo:

>>>print

'O tamanho da lista teste : ', len(teste)

Nos dizendo que a lista teste possui 4 variveis

16

len() ,

como exemplicado no

9.6

Range

A funo

range

gera um vetor contendo nmeros (inteiros) sequnciais, obedecendo a re-

gra de escrita:

range (inicio,m)
importante observar que o nmero nalizador descrito acima no includo no vetor,
por exemplo:

>>>vetor

= range(1,11)

>>>print

vetor

O cdigo acima nos dar como sada o vetor: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] . Em outras
palavras o ltimo nmero excludo do vetor, portanto o 11 no entra na composio
deste.
A funo

range

aceitar quaisquer nmeros inteiros desde que o nmero inicial seja

maior que o nmero nal, bem como quando apenas o nmero nal passado para a
funo, portanto so vlidas as contrues:

>>>

range(1, 10)

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

>>>

range(-32, -20)

[-32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21]

>>>

range(5,21)

[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

>>>

range(5)

[0, 1, 2, 3, 4]

>>>

range(21, 5)

[ ]

No ltimo exemplo foi retornado um vetor vazio, isso se deu porque o elemento inicial
era maior que o nal.
Outra caracterstica importante desse comando a de adicionar uma terceira varivel

no

range, indicando o incremento entre os nmeros delimitados.

>>>range(0,24,4)
[0, 4, 8, 12, 16, 20, 24]

10

Expresses booleanas

Ao leitor que no estiver acostumado com o ttulo acima, Expresses Booleanas so sentenas lgicas que seguem as leis da lgebra de Boole. A lgebra Booleana trabalha com
valores lgicos, interpretando esse valores atravs de nmeros binrios, ao oposto do dec-

17

imal, utilizando o valor 0 para denir uma operao FALSA e o valor 1 para denir uma
operao VERDADEIRA. As operaes entre valores lgicos so feitas de forma anloga
s operaes feitas entre conjuntos de elementos, sendo que cada um desses elementos
tratado como uma situao, podendo ser verdadeiros ou falsos.
Em python os seguintes valores so interpretados como falso:

False None 0

() []

Ou seja, os valores

False e None, o valor numrico 0 e as sequncias vazias so denomi-

nadas falsas enquantos todos os outros valores possveis so interpretados como verdadeiro.
Como na maioria das linguagens de programao, temos a possibilidade de utilizar a
lgebra Booleana para realizar testes lgicos usados em estruturas de controle, com esses
testes podemos conferir a veracidade de operaes, alm de podermos montar funes
condicionais

if, laos de repetio while e for, entre outros, que podem ser inseridos em

qualquer lugar de seu programa. Observemos o exemplo abaixo:

>>>

a = 6

>>>

b = 7

>>>

c = 42

>>>

print 1, a == 6

>>>

print 2, a == 7

>>>

print 3, a == 6 and b == 7

>>>

print 4, a == 7 and b == 7

>>>

print 5, not a == 7 and b == 7

>>>

print 6, a == 7 or b == 7

>>>

print 7, a == 7 or b == 6

>>>

print 8, not (a == 7 and b == 6)

>>>

print 9, not a == 7 and b == 6

Teramos como sada o seguinte resultado:

1 True
2 False
3 True
4 False
5 True
6 True
7 False
8 True
9 False

Para entender a lgica do que foi feito acima, devemos relembrar alguns conceitos de
lgebra booleana. Abaixo temos uma breve descrio sobre os operadores lgicos:

18

Operador 

and ":

(em portugs e") signica que ambas as armaes devem ser

verdadeiras, caso contrrio a expresso falsa.

Operador 

or ":

(em portugus ou") signica que se ao menos uma das armaes

for verdadeira, ento toda a expresso tambm o ser.

Operador 

not ":

(em portugus no") signica uma inverso lgica em uma ex-

presso, o que era verdadeiro, se torna falso, e viceversa.


As tabelas abaixo podem ajudar a claricar alguns desses conceitos:
Expresso

Resultado

true and true

true

true and false

false

false and true

false

false and false

false

not true

false

not false

true

true or true

true

true or false

true

false or true

true

false or false

false

O programa abaixo mostra um exemplo de aplicao de expresses booleanas. Vamos


dizer que precisamos de um programa que indique a situao de um aluno ao nal do ano,
sendo que elas so assim:

Se o aluno obtiver nota maior ou igual e seis e no tiver mais de 10 faltas, ele passa
direto;

Se o aluno obtiver nota maior ou igual e seis e tiver mais de 10 faltas, ele ca de
recuperao por falta;

Se o aluno obtiver nota maior que quatro e menor que seis e no tiver mais de 10
faltas, ele ca de recuperao por nota;

Se o aluno obtiver nota menor que quatro, ele repete direto;

Se o aluno obtiver nota maior que quatro e menor que seis e tiver mais de 10 faltas,
ele repete por no obter nota e por excesso de faltas;

Para montar esse programa precisaremos utilizar as Expresses Booleanas, j que precisamos fazer a vericao de duas situaes, temos que vericar se o aluno tem nota e se
ele tem presena.

>>>

alunos = ['Fred','Suzana','Claudio','Puga','Robson','Gustavo']

>>>

nota = [5.4, 6.2, 2.9, 9.9, 7.8, 4.9]

19

>>>

faltas = [9, 5, 15, 2, 11, 12]

>>>

contador = 0

>>>

for aluno in alunos:

...

if nota[contador] >= 6.0 and faltas[contador] <= 10:

...

print 'Aluno: ',aluno

...

print 'Nota nal: ',nota[contador]

...

print 'Faltas: ',faltas[contador]

...
...

print 'Resltado: Passou de ano'


elif nota[contador] >= 6.0 and faltas[contador] > 10:

...

print 'Aluno: ',aluno

...

print 'Nota nal: ',nota[contador]

...

print 'Faltas: ',faltas[contador]

...
...

print 'Resltado: Recuperao por falta'


elif nota[contador] >= 4.0 and nota[contador] < 6.0 and faltas[contador] <= 10:

...

print 'Aluno: ',aluno

...

print 'Nota nal: ',nota[contador]

...

print 'Faltas: ',faltas[contador]

...
...

print 'Resultado: Recuperao por nota'


elif nota[contador] >= 4.0 and nota[contador] < 6.0 and faltas[contador] > 10:

...

print 'Aluno: ',aluno

...

print 'Nota nal: ',nota[contador]

...

print 'Faltas: ',faltas[contador]

...
...

print 'Resultado: Repetiu direto por no obter nota e por excesso de faltas'
elif nota[contador] < 4.0:

...

print 'Aluno: ',aluno

...

print 'Nota nal: ',nota[contador]

...

print 'Faltas: ',faltas[contador]

...

print 'Resultado: Repetiu direto por nota'

...

"\n

...

contador+=1

20

Referncias
[1] Labaki , Josu ,

Introduo ao Python - Mdulo A,

Grupo Python, UNESP-Ilha

Solteira.
[2]

The Python Tutorial 2.6, http://python.org/

[3] Hetland , Magnus Lie,

, 2009.

Beginning Python: from novice to professional, Apress, 2005.

21

Você também pode gostar