Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Condições com variáveis vazias

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui



Pessoal, estamos quase fechando esse assunto de comparações, condições e ifs/elifs/else... Só mais um pouco!


Condições com variáveis vazias


Este é outro recurso que ajuda a simplificar as estruturas de condição em Python. mas antes de ver como isso funciona preciso explicar que na verdade os ifs/elifs não entendem ints, floats e etc, na verdade ele interpreta a comparação e pega somente o resultado, True ou False.

Pensando nisso, o Python assume automaticamente que certos "valores" de variáveis são verdadeiras e outras são falsas. Nesse exemplo vou utilizar o princípio da atribuição condicional com uma pequena diferença, no if não haverá nenhum condição. Vamos ver alguns exemplo:
Código :
>>> 'true' if -1 else 'false'
'true'
>>> 'true' if 0 else 'false'
'false'
>>> 'true' if 1 else 'false'
'true'
>>>
Como podem ver o Python acha que o 0 é falso e que qualquer outro número é verdadeiro.

Vamos ver mais algumas variáveis:
Código :
>>> 'true' if [1, 2] else 'false'
'true'
>>> 'true' if [] else 'false'
'false'
>>> 'true' if (1,2) else 'false'
'true'
>>> 'true' if () else 'false'
'false'
>>> 'true' if {'a':1, 'b':2} else 'false'
'true'
>>> 'true' if {} else 'false'
'false'
Como mostrado acima qualquer variável vazia é considerada como falso.

Isso é muito útil pois com muita frequência iremos tratar variáves sem saber exatamente o que elas são, então saber que, pelo menos, elas não estão vazias já será um bom começo!

Até mais...

Atualizado 01-09-2010 em 09:13 por Magnun

Categorias
Python , Artigos , Artigos , Cursos , Curso de Python

Comentários

  1. Avatar de Humildade
    Então temos sempre que definir o valor de uma variável ?
    No caso de um laço se não definirmos o valor antes do código (corpo do laço), então este laço não seria executado porque seria falso?

    Abs
    Gilson
  2. Avatar de Magnun
    Se você estiver se referindo a um laço while isso é verdade. Já o laço for tem um comportamento diferente.
  3. Avatar de Humildade
    Valeu mais uma vez Magnun!
  4. Avatar de theusseveen
    vlw pela ótima aula.
  5. Avatar de fabraga
    Ótimo!
  6. Avatar de gpzim98
    Um pouco estranho este comportamento, mas deu pra entender.

+ Enviar Comentário