You are on page 1of 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 5 Operaes matemticas 6 Entrada de Dados 7 Estruturas de controle 7.1 While . . . . . . . . 7.2 If . . . . . . . . . . . 7.3 For . . . . . . . . . . 8 Funes
8.1 8.2 8.3 Variveis em funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recursividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 2 3 3
4

5 6 7
7 7 8

9
11 11 12

9 Listas
9.1 9.2 9.3 9.4 9.5 9.6 Inserindo um novo dado a uma lista . . . . . . . . . . . . . . . . . . . . . . Impresso dos contedos da lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determinar em que ordem um elemento aparece na lista

13
15 15 16 16 16 17

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

Range

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

10 Expresses booleanas

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


Ser uma linguagem interpretada signica dizer que

Python uma linguagem de programao interpretada, de cdigo-fonte aberto e disponvel para vrios sistemas operacionais. 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 - Um ponto utuante - Uma sequncia de caracteres

oat

string

Ao contrrio da maioria das outras linguagens, em Python, no necessrio declarar as variveis que sero usadas, tampouco denir seu tipo. se atribuir o valor 3 varivel inteiro(tipo  A prpria sintaxe do dado a Python saber que ser armazenado identica o tipo da varivel para armazen-lo. Por exemplo, caso deseje-

int ").

A,

basta digitar

A=3.

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 se realizar certos tipos de manipulaes de dados.

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

4
>>> >>>

Strings
a = Bom Dia print a

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

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 do

\n.

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

\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.

4.1

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

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

>>> >>>

'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 %d %f

- Serve para substituir string; - Serve para substituir nmeros inteiros em uma frase destinada a um print; - 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
Suas capacidades matemticas se extendem desde operaes bsicas at

Alm de ser uma poderosa linguagem de programao, Python sabe lidar bem com matemtica. operaes com nmeros complexos. Abaixo, vamos comear aprendendo as 4 operaes matemticas bsicas. Lembre-se que  >>> signica a digitao de um comando no interpretador.

>>>2+3
5

Soma:

>>>2-3
-1

Subtrao:

>>>2*3
6

Multiplicao:

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 onde   o ndice da raiz. As regras para a obteno de nmeros inteiros ou pontos ututante tambm se aplicam a este caso.

1/n

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

Radiciao:

Entrada de Dados
raw_input
podemos receber do usurio uma pode ser conhecido pelo comando

Atravs do comando

string
>>> >>> >>>
5

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, Python as juntar, num processo chamado concatenao e se string ela ser repetida.

strings, apenas com oats e inteiros,

>>>

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():

string,

podemos

>>> >>> >>> >>>

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'>

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

type()

que ele devolver a varivel

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
O

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 ajuda a deixar o cdigo legvel e organizado.

while, deve estar um espao a frente, isto

>>> ...

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 usar tambm o comando

while

for sempre verdadeira, como 2 < 1, o seu

loop

ser innito, pois a condio ser sempre atendida.

while 1 em vez de estabelecer uma condio qualquer.

Caso esse seja seu desejo, pode-se

7.2

If
if
direciona o computador

Outra estrutura que estudaremos a condicional. O comando

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 #condio2 for verdadeira: #bloco de comandos 2

...elif ...

...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 adv != num: adv = input('Insira um nmero: ') if adv < num: print ' maior!' elif adv > num: print ' menor!' else: print 'Voc acertou!'

>>>while

>>>Insira

um nmero:

Como vimos, em Python no necessrio que utilizemos a uma estrutra. Isto devido a identao do programa. terminada automaticamente quando a

tag end para terminarmos

tag

Em Python, uma estrutura

da prxima linha comea no incio da linha.

7.3

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

O comando

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

formada pela funo

loop for far com que a varivel contador aponte para um diferente valor dentro da lista range e logo em seguida imprima esse valor.
A sada que teramos neste caso seria:
1

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

contador, para percorrer cada

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
Se houver alguma ao que seja grande e utilizada com frequncia, temos a opo

As linguagens de programao em geral tm o intuito de automatizar aes tornando-as mais rpidas. 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

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

que ao chamar uma funo, podemos passar a esta alguns parmetros (valores ou 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 Para isto usamos o Um pouco confuso?

return

seguido de algum valor ou uma varivel.

Neste caso, a varivel local

esconder a varivel global, enquanto a funo estiver rodando. Ento conra o exemplo abaixo:

>>>a ... ... ...

= 4 print_func(): a = 17 print 'in print_func a = ', a

>>>def

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 = 4

'a = ', a

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! = 2 '2! = ',fatorial(2)

>>>print
3! - 6

'3! = ',fatorial(3)

>>>print
4! = 24::

'4! = ',fatorial(4)

>>>print
5! = 120

'5! = ',fatorial(5)

Um passo-a-passo de como a funo executada, utilizando o comando para n = 3:

fatorial(n),

1. Quando chamamos a funo parmetro de entrada n. 2. O comando

fatorial(3),

fornecemos funo o valor 3 para o

if

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

3. Nesta parte a funo pretende retornar o valor

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). fatorial(1), a funo chama a si mesma mais uma vez para if
que est na funo calcul-lo.

4. Como ainda no temos

5. Com isto, atingimos a condio de sada do o valor retornado 1.

fatorial

e ento

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

from nome_do_mdulo import funo, e a funo estar disponvel para

Para isso, utilizamos o

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 . utilizado por qualquer programa em Python.

De agora em diante, o mdulo j pode ser

Listas
Aps denidas, podem ser modicadas de vrias Para denir uma lista basta digitar:

Listas so sequncias de variveis. maneiras, pois so mutveis.

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:

lista[x].

Ento, se voc deseja usar um Com isso, voc est se referindo

len(lista)

informa o tamanho da lista

13

lista.append(x) lista[y]= x

adiciona o elemento x no nal da sua lista adiciona uma lista inteira no nal da sua lista

lista.extend([6,5,4])

insere o valor y na posio x da lista En-

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

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 mos apenas um nmero, no seria necessrio. Exemplo:

string, se armazensse-

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

loop.

Depois inserimos o comando 

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 Uma vez nesse

que o programa seja fechado.

loop,

denida pelo usurio a varivel

qual_mes", e depois de um tratamento de erros, feito com a utilizao de um comando propriedade da lista, que buscar um dado da lista, que se d escrevendo o nome da

if, nos devolvido o nome do ms selecionado, Na ltima linha do cdigo utilizamos uma
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']

Infelizmente o comando . utilizar o comando

append

s consegue adicionar um dado na lista por vez, mas

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

.extend :

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


= ['quatro','cinco'] += soma + ['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

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

9.2

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 >>>print

'As variavis na lista teste so ',teste

As variavis na lista teste so ['zero','um','dois','trs','quatro'] '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 ... ...


zero um dois trs

valor in teste:

print valor

15

quatro

9.3

Determinar em que ordem um elemento aparece na lista

A funo cdigo:

.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

>>>print
4

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 ou posio da lista, onde haver a remoo.

del ,

referenciando o

index,

>>>print >>>del

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

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

>>>print

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

Podemos obter o mesmo efeito utilizando o mtodo ocorrncia na lista para um dado valor ou

string :

.remove que procuraria a primeira

>>>lista >>>print

+= ['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:

len() ,

como exemplicado no

>>>print
4

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

Nos dizendo que a lista teste possui 4 variveis

16

9.6

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

A funo

gra de escrita:

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

>>>vetor >>>print

= range(1,11) 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 true and true true and false false and true false and false not true not false true or true true or false false or true false or false Resultado true false false false false true true true true 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 , Solteira. [2]

Introduo ao Python - Mdulo A,


, 2009.

Grupo Python, UNESP-Ilha

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

[3] Hetland , Magnus Lie,

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

21

You might also like