Python possui algumas estruturas usadas para agrupar tipos e List é o mais versátil deles, não sendo necessário que uma lista possua tipos iguais.
>>> a = ['spam', 'eggs', 100, 1234]
>>> a
['spam', 'eggs', 100, 1234]
Como strings, listas também utilizam índices, porém, são mutáveis:
>>> a[0]
'spam'
>>> a[3]
1234
>>> a[-2]
100
>>> a[1:-1]
['eggs', 100]
>>> a[:2] + ['bacon', 2*2]
['spam', 'eggs', 'bacon', 4]
>>> 3*a[:3] + ['Boo!']
['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']
>>> a[:]
['spam', 'eggs', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'eggs', 123, 1234]
>>> # Substituir alguns itens:
... a[0:2] = [1, 12]
>>> a
[1, 12, 123, 1234]
>>> # Remover alguns:
... a[0:2] = []
>>> a
[123, 1234]
>>> # Inserir alguns:
... a[1:1] = ['bletch', 'xyzzy']
>>> a
[123, 'bletch', 'xyzzy', 1234]
>>> # Inserir a própria lista:
>>> a[:0] = a
>>> a
[123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]
>>> # Limpar a lista:
>>> a[:] = []
>>> a
[]
Também temos a funão len():
>>> a = ['a', 'b', 'c', 'd']
>>> len(a)
4
Para mostrar como listas em Python é versátil, também podemos criar listas contendo outras listas:
>>> q = [2, 3]
>>> p = [1, q, 4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[1][0]
2
>>> p[1].append('xtra') # See section 5.1
>>> p
[1, [2, 3, 'xtra'], 4]
>>> q
[2, 3, 'xtra']
Fluxo de Controle
>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while a < 10:
... print a
... a, b = b, a+b
A primeira estrutura que veremos é o While.
Em Python, zero é considerado como falso e outros números é considerado verdadeiro.
A condição a ser testada pelo loop pode ser também uma string ou uma lista, qualquer sequência.
Podemos utilizar <, >, ==, <=, >=, != para realizar o teste da condição.
A primeira linha do loop, que é a linha de teste, é finalizado com dois pontos(:).
O corpo do loop é identado e pode-se utilizar tab ou espaços para identar a linha.
Identação em Python é a forma que o ele possui para agrupar comandos. As linhas dentro do bloco precisam ficar identadas com o mesmo número de espaços ou tabs e o Python é rígico com esta questão.
Quando utilizamos o ambiente interativo, é necessário uma linha em branco para indicar o fim do corpo do loop.
O comando print imprime o valor na saída padrão. Strings são impressas sem aspas e espaço é inserido entre items:
>>> i = 256*256
>>> print 'The value of i is', i
The value of i is 65536
A vírgula no final do comando print evita imprimir em uma nova linha:
>>> a, b = 0, 1
>>> while a < 1000:
... print a,
... a, b = b, a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
No próximo post, continuaremos falando sobre outras estruturas de controle.