Introdução ao Python (parte 1)

Este artigo tem como objetivo ensinar as pessoas a utilizarem o Python, uma linguagem de fácil aprendizado e muito poderosa! Aqui trataremos tipos de objetos, listas, tuplas, dicionários, formatação de variáveis e entrada de dados.

[ Hits: 72.343 ]

Por: Fabio Rizzo Matos em 04/02/2005 | Blog: http://www.vindula.com.br


Uso de listas



Lista é uma seqüencia de valores que utilizamos no Python. Listas são dinâmicas, o que possibilita adicionarmos ou removermos valores uma vez que a lista for criada.

Uma lista possibilita conter valores inteiros(int), strings, float ou qualquer outro tipo de objeto. Podemos utilizar o mesmo método de mapeamento de endereços que utilizamos nas strings.

lista = [1,2,3]
lista

[1, 2, 3]

lista[0]
1

lista[-1]
3

Onde o endereço 0 (lista[0]) da lista é 1. Podemos também pegar vários valores de uma lista e concatena-los. Exemplo:

lista[0]+lista[1]
3

Nesse caso, somamos o valor do endereço 0 de lista para o valor do endereço 1 de lista. Se adicionarmos um valor diretamente a lista, retornaremos um erro, pois não é possível adicionar valores diretamente a lista, sendo necessário utilizarmos outro método.

lista+22

Traceback (most recent call last):
File "<pyshell#134>", line 1, in -toplevel-
lista+22
TypeError: can only concatenate list (not "int") to list

Porém se fizermos lista+[22] adicionaremos o valor a lista.

lista = lista+[22]
[1, 2, 3, 22]

Vamos ver os valores da lista:

lista
[1, 2, 3, 22]

Também podemos utilizar o endereçamento da lista ou o método append. Por exemplo, modificar o endereço 0 que contém o valor 1 para Fabio:

lista[0] = "Fabio"
lista

['Fabio', 2, 3]

Se tentarmos adicionar outro endereço utilizando endereçamento, teremos um erro, pois deveremos utilizar o append para adicionar ítens a lista.

lista[3] = "Rizzo"

Traceback (most recent call last):
File "<pyshell#138>", line 1, in -toplevel-
lista[3] = "Fabio"
IndexError: list assignment index out of range

Agora utilizando o método append:

lista.append("Matos")
lista

['Fabio', 2, 3, 'Matos']

Existem outros métodos de adicionar valores a listas. Veja abaixo:

lista
['Fabio', 2, 3, 'Matos']

lista.insert(1,"Rizzo")
lista

['Fabio', 'Rizzo', 2, 3, 'Matos']

Utilizando a forma acima, podemos definir em qual endereço queremos adicionar o valor desejado. No caso acima, inserimos Rizzo no endereço 1 da lista.

Outro método utilizado é o extend, que é utilizado para adicionarmos mais que 1 valor, ou principalmente para adicionarmos um a lista inteira a outra lista. Veja:

lista = ["Fabio","Rizzo","Matos"]
lista2 = ["Azul","Preto"]
lista.extend(lista2)

lista

['Fabio', 'Rizzo', 'Matos', 'Azul', 'Preto']

Se nós tivéssemos utilizado o método append, nesse caso teríamos uma lista contendo outra lista. Veja:

lista = ["Fabio","Rizzo","Matos"]
lista.append(lista2)

lista

['Fabio', 'Rizzo', 'Matos', ['Azul', 'Preto'] ]

E quando chamásse-mos o valor 3 lista, teríamos uma lista como resposta e não somente Azul:

lista[3] ['Azul', 'Preto']

len(lista)
4

Mais com o método extend, teríamos o azul como resposta.

lista[3] 'Azul'

len(lista)
5

Veja que o len nos mostrou valores diferentes, pois com o append a lista2 é apenas um valor dentro de uma lista diferente do extend que adiciona a lista2 como vários valores.

Para removermos algum valor da lista temos alguns métodos. Veja:

lista
['Fabio', 'Rizzo', 'Matos', 'Azul', 'Preto']

lista.remove("Preto")
lista

['Fabio', 'Rizzo', 'Matos', 'Azul']

lista.pop()
'Azul'

Dessa forma removeremos um valor que existe em nossa lista. E o método lista.pop() por default remove o último valor, porém é possível adicionar um endereço a ser removido:

lista
['Fabio', 'Rizzo', 'Matos']

lista.pop(1)
'Rizzo'

lista
['Fabio', 'Matos']

Se tentarmos remover um valor que não está na lista, teremos o seguinte retorno:

lista.remove("Amarelo") Traceback (most recent call last):
File "<pyshell#168>", line 1, in -toplevel-
lista.remove("Amarelo")
ValueError: list.remove(x): x not in list

Para saber se tal valor existe dentro de uma seqüencia, basta fazer o seguinte:

"Amarelo" in lista
False

Se o valor retornar "True" significa que temos o valor na lista, caso contrário teremos o valor "False" como acima.

Agora para achar o endereço do valor dentro da lista utilizamos o método index:

lista
['Fabio', 'Rizzo', 'Matos', 'Azul']

lista.index("Azul")

Página anterior     Próxima página

Páginas do artigo
   1. Instalação
   2. Tipos de objetos
   3. Uso de listas
   4. Tuplas
   5. Dicionários
   6. Formatando strings
   7. Entrada de dados
   8. Próximo artigo
Outros artigos deste autor

Gerenciando registros em banco de dados com Zope

Introdução ao Python (parte 2)

Introdução ao Jython

Utilizando as bibliotecas do Java usando o Jython

Instalando o MySQL no Zope/Plone e criando uma pequena aplicação

Leitura recomendada

ZPT - Zope Pages Templates

Solução de Intranet Vindula 1.1 - Instalação no Ubuntu 10.04 LTS

Instalação Plone 2.5.5 com módulos customizados

Gerenciando registros em banco de dados com Zope

Instalando um servidor Zope/Plone

  
Comentários
[1] Comentário enviado por bhl em 04/02/2005 - 16:26h

Legal seu artigo. Parabéns!

[2] Comentário enviado por vodooo em 05/02/2005 - 08:09h

Muito bom artigo!!!!

O Python é uma linguagem de programação muito versátil e poderosa sem deixar de lado a simplicidade!!!

Abraços

[3] Comentário enviado por fike em 06/02/2005 - 09:01h

Parabéns pelo artigo, muito bom!!!
Só assim para aprender Python...


[]'s
Fernando Ike

[4] Comentário enviado por fabrizmat em 08/02/2005 - 07:59h

Obrigado Pessoal pelo incentivo! Esse que é o motor para o desenvolvimento do software livre, a colaboração e ajuda da sociedade!!! Em breve estarei lançando a parte dois de meu artigo. Até mais!

Fabio Rizzo
www.fabiorizzo.com

[5] Comentário enviado por fabrizmat em 09/02/2005 - 15:48h

Pessoal,

Uma correção:

onde está:

idade=int(22) teste=nomecompleto+' '+idade

deveria estar:

idade=int(22)
teste=nomecompleto+' '+idade

Eu errei nesse ponto. O meu amigo Ruivaldo Neto me avisou e estou aqui corrigindo!!!

Valeu Pessoal

Fabio Rizzo Matos
www.fabiorizzo.com

[6] Comentário enviado por brejao em 17/01/2007 - 10:26h

Neste comentário faltam algumas explicações, como por exemplo, como transformar o que o usuário digitou em string.

idade = str(raw_input('Qual a sua idade??'))

Também faltou explicar como transformar para um numero com casas decimais... mas está bom.

[7] Comentário enviado por ricardoozzy em 04/08/2007 - 14:37h

muito bom esse artigo vc esta de parabéns

[8] Comentário enviado por jpunker em 25/08/2008 - 22:11h

Ola, como faço para pegar os 3 ultimos caracteres de um string?

[9] Comentário enviado por fchevitarese em 12/05/2009 - 09:20h

Artigo simples mas que da uma idéia legal sobre o python!

Valeu! ;)

[10] Comentário enviado por Miojo em 23/02/2010 - 19:55h

>>> # Para transformar um número em float (com casas decimais):
>>> float(42)
42.0
>>> # Para pegar os 3 últimos caracteres de uma string:
>>> 'spam'[-3:]
'pam'
>>> # Mas para saber se uma string começa ou termina com outra, use o método str.startswith e str.endwith:
>>> 'spam'.endswith('pam')
True
>>> 'spam'.endswith('eggs')
False
>>> 'eggs'.startswith('eg')
True
>>> for i in ['Spam', 'Eggs']:
... print 'I like Python and %s' % i # Esta linha está indentada com 4 espaços. Só dá para ver em fontes mono-espaçadas
...
I like Python and Spam
I like Python and Eggs
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>> import __hello__
Hello world...
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance
>>> import sys
>>> sys.exit(0)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts