
Aula 3 - Tuplas, strings, dicionários e operadores aritméticos
Bem vindo a todos que estão fazendo as aulas e acompanham elas semanalmente. Nesta aula vamos aprender o que é, aplicações e exemplos de: Tuplas, strings, dicionários e vamos falar um pouco mais de operadores aritméticos como vimos na primeira aula. Sem delongas, vamos ao conteúdo.
3.1 - Briefly Talk
A tupla é utilizada em algumas situações importantes: como a lista de argumentos de uma function ou module, como key em dicionários, e em outros casos onde fizer sentido ou for mais eficiente o uso um conjunto fixo de valores.
A string possui um operador especial, a porcentagem (%), que será abordado em futuras aulas. Além disso, possuí ainda um grande número de modules, que podem ser encontrados no manual de referência de Python, clicando aqui.
A maior parte dos operadores aritméticos em Python funciona de maneira intuitiva e semelhante aos operadores em outras linguagens.
3.2 - Tuplas
A tupla é uma sequencia, como a lista que abordamos na aula anterior: armazena um conjunto de elementos acessíveis por um índice inteiro. A tupla é imutável; uma vez criada, não pode ser modificada. Para criar uma tupla use parênteses, e vírgulas para separar seus elementos:
>>> t = (1, 3, 5, 7) >>> print t[2] 5
3.3 - Falando sobre strings
A string, como citado anteriormente, é uma sequencia imutável com um propósito especial: armazenar caracteres.
>>> a = "Tutorial do XTibia" >>> print a Tutorial do XTibia
Strings podem ser delimitadas tanto com aspas simples quanto duplas; se delimitamos com aspas duplas, podemos usar as aspas simples como parte literal da string, e vice-versa. Para inserir na string aspas literais do mesmo tipo que o delimitador escolhido, prefixe-as com uma barra. Vejamos:
>>> b = "All's quiet on the eastern front." >>> c = 'All\'s quiet on the eastern front.' >>> b == c True
Veja que, a variável c é equivalente a b pois usamos uma barra antes da aspa simples para usarmos o mesmo delimitador.
Usamos caracteres especiais para definir quebra de linha (/n), tabulação (/t) e outros. Veja:
>>> a = "Hoje\n\t é o primeiro dia." >>> print a Hoje é o primeiro dia.
A linha se quebra em "Hoje" pois usamos /n e a tabulação da próxima linha foi definida pelo uso de /t
Para criar uma string com múltiplas linhas, utilizamos como delimitador três aspas. As linhas podem ser quebradas diretamente, e a string pode ser finalizada com outras três aspas consecutivas:
a = """I wear my sunglasses at night So I can so I can Keep track of the visions in my eyes"""
Por fim, como toda sequencia, a string pode ser indexada ou dividida em slices, usando o operador colchetes. Vejamos como funciona a partição de strings:
>>> a = "Anticonstitucionalissimamente" >>> print a[0] A >>> print a[13] i >>> print a[:4] Anti >>> print a[-5:-1] ment
3.4 - Dicionários
Um dicionário representa uma coleção de elementos onde é possível utilizar um índice de qualquer tipo imutável, ao contrário da lista, onde índices são sempre inteiros seqüencialmente atribuídos. É costumeiro usar os termos chave e valor (key/value) para descrever os elementos de um dicionário - a chave é o índice, e o valor, a informação correspondente àquela chave.
Para declarar dicionários, utilizamos o símbolo chaves, separando o índice do valor por dois pontos e separando os pares índice-valor por vírgulas:
>>> refeicoes = {"café" : "café", "almoço" : "macarrão", ... "jantar" : "sopa"} >>> print refeicoes["almoço"] macarrao >>> precos_modelos = {98 : 89, 99 : 119, 2000 : 199} >>> print precos_modelos[98] 89
Neste exemplo criamos dois dicionários com três elementos cada um. As chaves do dicionário refeicoes são as strings "café", "almoço" e "jantar", e os valores respectivos, as strings "café", "macarrão" e "sopa". Note que usamos : (dois pontos) para definir o valor da chave e separamos cada chave por virgula.
Vejamos alguns modules de dicionário:
keys() retorna uma lista (sim, exatamente, do tipo lista) com as chaves do dicionário;
values() retorna uma lista com os valores do dicionário;
items() retorna uma lista de tuplas com o conteúdo do dicionário, cada tupla contendo um par (chave, valor);
>>> precos_modelos.keys() [99, 98, 2000] >>> precos_modelos.values() [119, 89, 199] # A ordem dos elementos retornados por keys() e # values() é arbitrária; não confie nela.
has_key(chave) verifica se a lista possui aquela chave:
>>> precos_modelos.has_key(98) True >>> precos_modelos.has_key(97) False
update(segundo dicionario) atualiza o dicionário com base em um segundo dicionário fornecido como parâmetro; elementos do dicionário original que também existem no segundo são atualizados; elementos que existem no segundo mas que não existem no original são adicionados a este.
>>> precos_modelos.update({2000 : 600, 2001: 700}) >>> print precos_modelos {99: 400, 98: 300, 2001: 700, 2000: 600}
No exemplo acima, observe que a chave 2000 foi atualizada para 600, e 2001, acrescentada.
É possível usar o dicionário como uma estrutura de dados simples, com campos para cada informação a ser armazenada. Por exemplo, para armazenar informação sobre um produto hipotético, com código, descrição e preço:
>>> produto = {"código":771, "desc":"Copo", "preço":10.22} >>> print produto["código"] 771 >>> print produto["desc"] Copo
É realmente muito interessante trabalhar com dicionários!
3.5 - Mais sobre Operadores aritméticos
a = 7 >>> print a + 3 # adição 10 >>> print a - 2 # subtração 5 >>> print a / 2 # divisão inteira: argumentos inteiros 3 # e resultado inteiro >>> print a / 2.5 # divisão em ponto flutuante: pelo 2.8 # menos um argumento deve ser float >>> print a % 4 # resto da divisão inteira 3 >>> print a * 2 # multiplicação 14 >>> print a ** 2 # exponenciação 49
A exponenciação também pode ser feita por meio de uma função, pow().
pow(a, n) é equivalente: a ** n e segue esta mesma ordem. Vejamos um exemplo:
>>> pow(2, 3) 8
A raiz quadrada e outras funções matemáticas estão implementadas no module math.
math: funções matemáticas gerais. Inclui funções como cos(x), que retorna o cosseno de x; hypot(x, y); que retorna a hipotesuna dos catetos x e y; e exp(x); que retorna o exponencial de x. Para raiz quadrada, sqrt(x), que retorna a raiz quadrada de x. Temos também tan(x) retorna a tangente, sin(x) o seno e radians(x) converte x para graus radianos.
Para usar qualquer um desses modules: math.module(argumentos)
Com exceção da exponenciação e da divisão inteira, estes operadores são bastante comuns em linguagens de programação. Os operadores aritméticos podem ser usados em floats também:
>>> a = 1.15 >>> print a / a - a * a + a 0.57349375
e os operadores de adição (+) e multiplicação (*), em strings:
>>> a = "exato" >>> print a * 2 exatoexato >>> print "quase " + a quase exato
em listas:
>>> a = [-1, 0] >>> b = [1, 2, 3] >>> print b * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> print a + b [-1, 0, 1, 2, 3]
e em tuplas:
>>> a = (1, 2) >>> print a + (2, 1) (1, 2, 2, 1)
Exercício
1. Calcule e exiba na tela a área do círculo de raio 4cm.
2. Calcule e exiba na tela as raízes de 9, 16, 20, 25 e 42.
3. Calcule a hipotenusa de um triangulo cujos catetos são 9cm e 4cm. (Tente utilizar outra função que não seja math.hypot(x,y))
4. Calcule o volume do cilindro de raio 6cm e altura 5cm.
5. Crie uma tupla de 10 objetos e exiba na tela o terceiro objeto.
6. Crie uma tupla de 5 objetos e verifique se o objeto 1 é igual ao objeto 5, imprima true ou false.
7. Uma empresa cadastrou seus funcionários por cargo e nome. Faça um dicionário que imprima o valor(cargo) para a key(nome do funcionário)
8. Faça uma string com quebra de linha e tabulação e imprima na tela.
9. Utilizando a string "Frequentemente" particione-a em silabas e exiba na tela.
Dicas:
Para calcular a hipotenusa tem que somar os 2 catetos ao quadrado e fazer a raiz raiz quadrada. Tipo math.sqrt(cateto1 ** 2 + cateto2 ** 2)
Para calcular área de círculo fórmula = pi * raio ** 2
Para calular Volume do Cilindro = pi * (raio ** 2) * altura
Até mais!
Espero que tenham gostado dessas aulas! Nos vemos com mais em breve.
Aguardo as respostas de vocês para os exercícios.