[ Python ] Tuplas, Strings, Dics E Operadores Aritméticos

Henrique Moura
em Outras Linguagens

Henrique Moura

Ex-administrador
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 17/02/08Posts: 2541

476px-python_logo-svg.png

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.

KaKilo ~
 


Lom14fD.png

DiogoTemporario

Ex Bom Usuário
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 05/05/09Posts: 1231

Legal. É bom saber também como transformar int em str, etc. não tenho mais python instalado nesse windows, mas se não me engano é assim:

 

>exemplo_de_integer = 1

>print str(exemplo_de_integer)

>>"1"

Henrique Moura

Ex-administrador
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 17/02/08Posts: 2541

obg diogo.

 

Galera, go fazer os exercicios...

 

Como ninguém está postando as respostas, vou fazendo:

 

 

1.

import math
area = math.pi * 4 * 2

print "A area do circulo de raio 4 %f cm" % area

 

2.

import math

r1 = math.sqrt(9)
print "A raiz quadrada de 9 --->", r1
r2 = math.sqrt(16)
print "A raiz quadrada de 16 --->", r2
r3 = math.sqrt(20)
print "A raiz quadrada de 20 --->", r3
r4 = math.sqrt(25)
print "A raiz quadrada de 25 --->", r4
r5 = math.sqrt(42)
print "A raiz quadrada de 42 --->", r5

 

3.

Sem a função math.hypot(x, y)

a = 9
b = 4
h = (a ** 2) + (b ** 2)
h1 = h ** h
print "A hipotenusa dos catetos a e b equivalentes a 9 e 4 equivale %d cm" % h1

 

Com a função math.hypot(x, y)

import math

a = 9
b = 4
h = math.hypot(a, b)

print "A hipotenusa dos catetos a e b equivalentes a 9 e 4 equivale %d cm" % h

 

Go fazer galera. Depois eu posto mais.

KaKilo ~
 


Lom14fD.png

9750568

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/01/07Posts: 10

Pra ser sincero, eu fiz os exercícios com o foco voltado para as variáveis mesmo, ficou bem diferente, mas deu certo :]

Já o ultimo exercício eu não consegui fazer de jeito nenhum, mas a minha resolução dos outros vou postar aqui:

 

Aliás, ótimo tutorial o seu. Faz tempo que quero mexer em python, mas não encontrei bons tutoriais. Se vc souber, posta algo sobre o Pygames que aí é que eu não desgrudo mais do pc xD

 

#Exercicio 1

r = raw_input('Raio do Circulo -> ')

a = float®**2 * 3.14

print 'o Valor da area do circulo e %f' % a

 

#Exercicio 2

import math

a = raw_input('Numero -> ')

Rt = math.sqrt(float(a))

print 'O valor da raiz é %f' % Rt

 

#Exercicio 3

cat_one = raw_input('Valor do cateto 1 -> ')

cat_two = raw_input('Valor do cateto 2 -> ')

hip = math.sqrt((float(cat_one)**2) + (float(cat_two)**2))

print 'O valor da hipotenusa e %f' % hip

 

#Exercício 4

r = raw_input('Valor do Raio da Base -> ')

h = raw_input('Valor da altura do cilindo -> ')

Volume = (float®**2)*3.14* float(h)

print 'O volume do cilindro é de %f u.v' % Volume

 

#Exercício 5

t = [1, 4, 6, 9, 13, 18, 24, 31, 39, 1]

print "O terceiro termo é %f" % t[2]

print t[0] == t[9]

 

#Exercício 6 e 7

funcionarios = {"Joao": "Assistente", "Caio": "Gerente", "Marcos": "CEO", "Ricardo": "Presidente"}

print "Joao é \n\t %s" % funcionarios["Joao"]

print "Caio é \n\t %s" % funcionarios["Caio"]

print "Marcos é \n\t %s" % funcionarios["Marcos"]

print "Ricardo é \n\t %s" % funcionarios["Ricardo"]

Henrique Moura

Ex-administrador
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 17/02/08Posts: 2541

Muito obrigado 97~ (usar nome é bom, viu? rs)

 

Em recomendação de uma IDE bacana de trabalhar e com muitos recursos, mostro para vocês a Eric5 pyIDE

http://eric-ide.python-projects.org/

 

Logo mais vou bolar outro tutorial. É bom ver que tem gente aprendendo

(pygame eu estou estudando, bem complicado e tal, acho melhor deixar as aulas por ultimo, isto é, se forem cogitáveis, pouco interesse da galera aqui até pras aulas simples...Até agora só desenvolvi um ping-pong)

KaKilo ~
 


Lom14fD.png