= Receita: Simulando o Operador Ternário = '''''nb. A partir do python 2.5 esta receita está obsoleta, uma vez que o operador ternário "if" foi incluído oficialmente na linguagem. O texto aqui permance válido por ajudar a entender como a linguagem funciona ''''' Às vezes pode ser desejável fazer testes simples, seguidos de uma atribuição. Existem várias maneiras de se fazer isso, como por exemplo: {{{ #!python if variavel == 5: valor = "cinco" else: valor = "nem faço idéia..." }}} Uma maneira mais curta seria: {{{ #!python valor = ("nem faço idéia", "cinco")[variavel == 5] }}} Como esse tipo de teste vai ser sempre false ou true (0 ou 1), ''valor'' irá assumir o valor do primeiro elemento da tupla se a condição for falsa, e o segundo valor, se a condição for verdadeira. Ou seja: o primeiro elemento dessa tupla deve ser o resultado para a condição ''falsa''. ===== Observação ===== Em Python 2.5, foi adicionada a [[http://www.python.org/dev/peps/pep-0308/|"conditional expression"]], ou "expressão condicional", que tem a mesma função. Ela '''deve''' ser usada no lugar dos outros exemplos nesta página exceto onde a compatibilidade com oturas versões eja estritamente necessária. Exemplo: {{{ #!python valor = "cinco" if variavel == 5 else "nem faço idéia" }}} ==== Truque "and or" ==== Outra maneira de simular um operador ternário em Python é usando '''and or'''. Vejamos como funciona o exemplo abaixo. Uma string(ou inteiro ou lista ou tupla ou etc...) é sempre ''True'' se o valor dela for diferente de vazio. O operador '''and''' funciona da seguinte forma: TRUE and QUALQUER_COISA, retorna QUALQUER_COISA FALSE and QUALQUER_COISA, retorna FALSE Enquanto o operador '''or''' funciona assim: TRUE or QUALQUER_COISA, retorna TRUE FALSE or QUALQUER_COISA, retorna QUALQUER_COISA {{{ #!python valor = (variavel == 5) and "cinco" or "nem faço idéia" }}} Volta para CookBook. ---- LeandroPereira