Ir para conteúdo

[ Python ] Tipos, Variáveis, Valores E Lista


Henrique Moura

Posts Recomendados

476px-python_logo-svg.png

Aula 2 - Tipos, variáveis e valores

 

Sejam bem vindos outra vez, XTibianos!

Como vimos na aula passada, em Python não é necessário pré-declarar uma variável, pois ele reconhece seu tipo dinamicamente. Nesta aula vamos falar um pouco mais sobre variáveis, tipos e valores, inclusive nos aprofundar em aritmética pythonesca.

 

 

2.1 - Briefly Talk

Nomes de variáveis começam sempre com uma letra, não contém espaços, e assim como tudo em Python, são sensíveis a CAPS (case-sensitive) -- em outras palavras, minúsculas e maiúsculas fazem, sim, diferença.

 

2.2 - Tipos númericos

Tipos numéricos representam valores numéricos. Em Python há alguns tipos numéricos pré-definidos: inteiros (int), números de ponto flutuante (float), booleanos (bool) e complexos (complex). Estes tipos suportam as operações matemáticas comuns como adição, subtração, multiplicação e divisão, e podem ser convertidos entre si.

  1. Uma observação: booleanos foram adicionados na versão Python 2.2; sua utilização é normalmente associada a expressões condicionais.

 

Vejamos alguns exemplos:

   >>> a = 1               # valor inteiro
   >>> preco = 10.99       # valor ponto flutuante, ou float.
   >>> t = True            # valor booleano
   >>> i = 4+3j            # valor complexo

# - Usado para adicionar um texto dentro do código, como comentário e explicação.

 

Valores inteiros podem também ser fornecidos em base octal e hexadecimal:

a = 071
print a
57
a = 0xFF
print a 
255

 

Para ser considerado um float, o número deve possuir um ponto e uma casa decimal, mesmo que seja zero. O fato de ser considerado um float é importante para a operação divisão, pois dependendo do tipo dos operandos, a divisão é inteira ou em ponto flutuante.

    5 / 2     # divisão inteira, resultado inteiro
   2 #retorno
   5 / 2.0   # divisão em ponto flutuante
   2.5
   5 * 2.13 #retorno
   10.649999999999999

Números deste tipo, como o valor 2.13 do exemplo, possuem uma representação interna particular devido à natureza dos computadores; operações realizadas sobre eles têm precisão limitada, e por este motivo o resultado impresso é diferente do resultado aritmeticamente correto. Na prática, o resultado obtido é praticamente equivalente a 10.656.

 

2.3 - Como descobrir o tipo de uma variável

Para descobrir o tipo atual de uma variável, pode-se usar a função type():

 

a = 1            
print type(a)
<type 'int'> #retorno
a = "hum"
print type(a)
<type 'string'> #retorno

 

Uma das vantagens de Python são os tipos complexos que vêm pré-definidos. Falaremos disso mais tarde.

 

2.4 - Listas

 

A lista é uma sequencia: um conjunto linear (vetor em outras linguagens) de valores indexados por um número inteiro. Os índices são iniciados em zero e atribuídos sequencialmente. A lista pode conter qualquer valor, incluindo valores de tipos mistos, e até outras listas. Para criar uma lista, usamos colchetes e vírgulas para enumerar os valores:

 

    >>> numeros = [1, 2, 3]
   >>> opcoes  = ["nao", "sim", "talvez"]
   >>> modelos = [3.1, 3.11, 95, 98, 2000, "Millenium", "XP"]
   >>> listas  = [numeros, opcoes]

 

Neste exemplo criamos quatro listas diferentes, com elementos de tipos diversos. A quarta lista tem como elementos outras listas: em outras palavras, é uma lista de listas:

 

    >>> print listas
   [[1, 2, 3], ['nao', 'sim', 'talvez']] #retorno

 

Para acessar um elemento específico de uma lista, usamos o nome da lista seguido do índice entre colchetes:

 

    >>> print numeros[0]
   1 #retorno
   >>> print opcoes[2]
   talvez #retorno
   >>> print modelos[4]
   2000 #retorno

 

Usando índices negativos, as posições são acessadas a partir do final da lista, -1 indicando o último elemento, -2 o penúltimo e assim vai:

 

    >>> print numeros[-1]
   3 #retorno
   >>> print modelos[-2]
   Millenium #retorno

 

Python oferece um mecanismo para criar `fatias' de uma lista, ou slices. Um slice é uma lista gerada a partir de um item de outra lista. O item é especificado com dois índices, separados por dois pontos; o slice resultante contém os elementos cujas posições vão do primeiro índice ao segundo, não incluindo o último elemento. Se omitirmos um dos índices no slice, assume-se início ou fim da lista.

 

Vejamos um exemplo:

    >>> print numeros[:2]
   [1, 2]
   >>> print opcoes[1:]
   ['sim', 'talvez']
   >>> print modelos[1:5] 
   [3.1000000000000001, 95, 98, 2000]

 

Note que o terceiro exemplo demonstra a mesma particularidade referente à representação de números de ponto flutuante(float), como falamos anteriormente. Ao imprimir a lista, Python exibe a representação interna dos seus elementos, e portanto, floats são impressos com precisão completa.

 

2.4.1 - Métodos(modules) de listas

 

Para executar (ou chamar) um método, usamos parênteses após seu nome, fornecendo argumentos conforme necessário. Abaixo são exemplificados dois exemplos de chamadas de métodos em listas:

 

    >>> numeros.append(0)
   >>> print numeros
   [1, 2, 3, 0]
   >>> numeros.sort()
   >>> print numeros
   [0, 1, 2, 3]

 

Observe com atenção este exemplo.

 

O método append(v) recebe como argumento um valor, e adiciona este valor ao final da lista.

O método sort() ordena a lista, modificando-a. Não recebe argumentos.

 

A lista possui uma série de outros métodos; consulte a lib do seu interpretador para maiores informações.

 

Exercício

Tente resolver antes de ver as respostas.

 

1. Faça um Programa que leia uma lista de 5 números inteiros e mostre-os.

 

 

lista = [1, 2, 3, 4, 5]

print lista

 

 

 

2. Faça um Programa que leia uma lista de 10 números e mostre-os na ordem inversa.

 

 

lista = [70, 60, 30, 80, 10, 90, 20, 40, 100, 50]

lista.sort()

lista.reverse()

print lista

 

 

ou

 

 

vetorList = [2, 3, 5, 7, 11, 4, 6, 8, 9, 10]

 

i = 1

while i <= len(vetorList):

print vetorList[len(vetorList) - i]

i = i + 1

 

 

Até mais!

Aguardo as respostas de vocês para os exercícios.

Link para o comentário
Compartilhar em outros sites

Exércicio 1

 

 

vet = [5,4,3,2,1]

print (vet)

 

 

 

 

Exércicio 2

 

 

 

import random

 

 

def randomico ( tamanho ):

 

vet = []

for i in range ( tamanho ):

vet.append (random.randint(1, 100))

 

return vet

 

def imprimir (vet_inicial, vet_final):

 

print "Vetor inicial: ", vet_inicial

print "Vetor ordenado: ", vet_final

 

def inveter(vet):

vet_inicial = vet[:]

 

for i in range ( len ( vet ) ):

for j in range ( i, len ( vet ) ):

if vet > vet[j]:

vet,vet[j] = vet[j],vet

 

 

imprimir (vet_inicial, vet)

 

 

vet = randomico (10)

inveter (vet[:])

 

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...