Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Comparando os tipos de variáveis

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui



Como o python tem a tipagem dinâmica, às vezes é necessário descobrir de que tipo é uma variável. Para iss ovamos aprender a compara uma variável com um tipo!

Comparando os tipos de variáveis



Espero que todos se lembrem da função type pois vamos usá-la agora. Para compara o tipo da variável basta você usar a função type e saber o nome de todos os tipos. Basicamente você precisam saber os seguintes tipos:

  • str;
  • dict;
  • list;
  • tuple;
  • int;
  • float;


A comparação será feita da seguinte forma:
Código :
if type(variavel) == tipo:
 #faz algo
Vamos ver um exemplo disso:
Código :
var = input("Informe uma variavel para ser analisada: ")
tipo = type(var)
if tipo == int:
    print 'Você infomrou um numero inteiro.'
elif tipo == float:
    print 'Você infomrou um numero ponto flutuante.'
elif tipo == str:
    print 'Você infomrou uma string.'
elif tipo == dict:
    print 'Você infomrou um dicionario.'
elif tipo == list:
    print 'Você infomrou uma lista.'
elif tipo == tuple:
    print 'Você infomrou uma tupla.'
else:
    print 'Desconheço esse tipo de variável.'
Como diria o Duke Nukem, "Piece of Cake"!!!
Até mais...

Atualizado 01-09-2010 em 08:14 por Magnun

Categorias
Artigos , Artigos , Cursos , Curso de Python

Comentários

Página 1 de 2 12 ÚltimoÚltimo
  1. Avatar de lord4rk
    Ola Magnun!!
    Achei essa referencia e achei bem interessante!!

    Código :
    a = {}
    if type(a) == type({}):
        print 'Dicinario'
    else:
        print 'Nao e um dicionario'
    []'s
    Jr
  2. Avatar de Magnun
    Pois é cara, antes eu também fazia desse jeito até perceber o desperdício de memória e processamento que isso causa.

    Ao fazer type(a) == type({}) você:
    * executa o type(a) - o que ocupa alguns ciclos do processador;
    * cria um dicionário vazio (aloca memória) - mais alguns ciclos do processador;
    * executa a função type sobre o dicionário vazio - mais alguns ciclos do processador;
    * executa a comparação com o resultado de type(a) - isso também ocupa alguns ciclos do processador;
    * uma vez que o dicionário vazio ({}) não foi vinculado à nenhuma variável, ela será recolhida pelo "coletor de lixo" (garbage collector) do python depois de um tempo;
    * o garbage collector irá desalocar a memória do dicionário vazio- mais alguns ciclos do processador;


    Se fizermos a comparação type(a) == dict resumimos um pouco o processo da seguinte forma:
    * executa o type(a);
    * compara dict (que já é o tipo do dicionário) com o retorno de type(a) - o dict não precisa ser "executado", não é alocado um memória para ele e não é processado pelo "garbage collector".

    Até mais cara!
  3. Avatar de woiski
    Magnun, apenas chamar a atenção que raramente se programa para um tipo específico em Python, justamente por causa do princípio do duck typing - se anda como um pato, etc. Eu costumo ensinar aos alunos que "se Python puder fazer, então o fará, caso contrário atirará uma exceção, que poderá ser devidamente capturada pelo programador". woiski
  4. Avatar de Magnun
    Com certeza woiski! Duck Typing é uma abordagem importante. Mas estou guardando isso para o Curso de Python intermediário . Esse "primeiro curso" é só uma introdução básica. Mas mesmo assim obrigado pelo lembrete. Até mais...
  5. Avatar de dimasters
    Esse processo de checagem com o type() é ideal para não deixar uma entrada inválida com raw_input() e retornar o erro do código do python...
    Então vc checa a variável independente da entrada, se for um typo válido continua do contrário pode reenviar um pedido assim não mostra um aviso ao usuário.
Página 1 de 2 12 ÚltimoÚltimo

+ Enviar Comentário



Visite: BR-Linux ·  VivaOLinux ·  Dicas-L