Dando continuidade ao artigo, veremos como o Python interage com o usuário, através das
funções embutidas input() e raw_input() e através de listas e dicionários.
Entrada de Dados
Quando pensamos em interação com o usuário em um programa, logo lembramos de um cadastro
básico de clientes. O usuário tem alguns campos a serem preenchidos como Nome,
Endereço, Telefone, etc... Imagine um pseudo-código que tenha esta função, onde a
cada campo ele espera uma resposta do operador. Temos então o exemplo abaixo:
Digite o nome: _
Renato
Digite o telefone: _
55555665
Imprima nome, telefone
Renato 55555665
Para termos este mesmo efeito em Python vamos utilizar as funções embutidas
input() e raw_input(). A função input() tem a condição de mostrar um texto e a partir
dele esperar que o usuário insira um valor, neste caso numérico. Quando quisermos
que o valor inserido seja uma string, utilizamos a função raw_input() ou então
informamos entre aspas a informação para a função input(). Podemos também converter
uma string para um inteiro utilizando a função int(s). Vejamos como fica o exemplo
acima em Python:
nome = raw_input("Digite o nome: ")
telefone = input("Digite o telefone: ")
print nome, telefone
Listas e Dicionários
Em Python, listas e dicionários são tratados como estrutura básica de dados. Imagine uma
variável que contenha vários valores e que estes valores são indexados e podem ser filtrados
utilizando estes índices. Chamamos isto de lista. Uma lista pode ser criada da mesma maneira
que uma variável:
item = ["martelo", "alicate", "tesoura", "lixa"]
y = [1, 2, x]
Sendo assim, podemos acessar os valores de uma lista através do seu índice ou
então do corte de valores.
Em uma lista, seu índice começa sempre da esquerda para a direita, considerando o
primeiro valor sempre como índice [0]. Considerando a lista item do exemplo acima, vamos
imprimir o valor martelo.
print item[0]
Podemos imprimir também vários valores, como abaixo:
print item[1],"e", item[3]
alicate e tesoura
E também mudar o valor do indice [0] da lista item:
item[0] = raw_input("Digite um novo valor para este item: ")
print item[0]
O corte de valores é feito através de uma seleção de intervalo e para isso
utilizaremos o sinal de dois pontos (":") para selecionar o intervalo de
valores. Ainda na lista item, vamos imprimir os três primeiros valores desta
lista:
print item[0:3]
['martelo', 'alicate', 'tesoura']
Repare que o índice final [3] não entra no resultado por se tratar de um limitador. Se
utilizarmos print item[:3] teria o mesmo efeito. Espera-se que imprima tudo que há no começo
até o índice [3], este não incluso. Porém, se utilizarmos print item[3:] irá exibir desde o
índice [3], este incluso, até o último índice, incluso também.
Os dicionários também funcionam como listas, porém eles não possuem índice. A maneira
com a qual podemos encontrar os registros são através das chaves, que vão fazer o papel de
indexador. Veja no exemplo abaixo como é um dicionário:
{"martelo": 25, "picareta": 26, "alicate": 27, "parafuso": 28, "chave de fenda": 29}
computador = {"processador": AMD, "clock": 1000, "RAM": 256, "HD": 20}
Para fazer a impressão de um determinado registro do dicionário, utilizamos o seguinte
comando:
print computador['processador']
AMD
Para alterar um registro dentro de um dicionário, podemos utilizar o registro
direto do dicionário:
computador['clock'] = 2000
print computador['clock']
2000
Conhecendo o funcionamento das listas e diretórios mais as funções de entrada de dados
podemos obter estrutura de dados avançadas, uma vez que podemos unir dicionários e
listas, listas dentro de listas, dicionários dentro de dicionários e muito mais.