O Python possui um Operador Condicional Ternário?

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

Desenvolvedores Python frequentemente buscam maneiras de escrever códigos mais concisos e legíveis, e uma pergunta comum que surge é se o Python suporta um operador condicional ternário: a resposta é sim. Esse operador permite tomadas de decisão rápidas no seu código, possibilitando a atribuição de valores baseados em uma condição em uma única linha legível.

Entendendo o Operador Condicional Ternário no Python

O operador no Python segue a sintaxe:

a if condition else b

Veja como funciona: a condition é avaliada primeiro. Se a condition for True, a expressão a é avaliada e retornada. Se a condition for False, a expressão b é avaliada e retornada em seu lugar. Chamamos isso de curto-circuito, pois avaliamos apenas a expressão correspondente ao resultado da condição.

Exemplo de Operador Condicional Ternário

result = 'Sim' if condition else 'Não'

Se condition for True, result será 'Sim'. Se condition for False, result será 'Não'.

É importante notar que o condicional ternário é uma expressão, não uma declaração. Isso significa que você não pode usar declarações como pass ou atribuições com = dentro de uma expressão condicional. Além disso, a parte else da expressão é obrigatória; você deve especificar o que acontece se a condição não for atendida.

Usando o Operador Condicional Ternário para Atribuições

Você pode usar o operador condicional ternário para atribuir valores a variáveis ou para retornar valores de funções. Aqui está um exemplo de seu uso em uma função:

def meu_max(a, b):
    return a if a > b else b

Esta função retorna o maior de dois valores, usando o operador para decidir qual valor retornar.

Alternativas ao Operador Condicional Ternário

Antes do Python 2.5, ou para aqueles que preferem uma sintaxe diferente, existem maneiras alternativas de alcançar resultados semelhantes:

Indexação de Tupla

Você pode indexar em uma tupla usando uma expressão booleana:

result = (valorFalso, valorVerdadeiro)[condition]

Certifique-se de que condition retorne um valor booleano. Se não, você pode garantir isso usando bool(condition) ou comparando o resultado com True:

result = (valorFalso, valorVerdadeiro)[bool(<expressão>)]

O Truque ‘and-or’

Outro truque que usávamos antes do Python 2.5 é do ‘and-or’:

result = condition and on_true or on_false

No entanto, isso pode levar a resultados incorretos se on_true for um valor que avalia como False em um contexto booleano.

Conclusão

O operador condicional ternário no Python oferece uma maneira de escrever atribuições condicionais concisas. É uma ferramenta poderosa que pode tornar seu código mais legível e elegante quando usada apropriadamente. Lembre-se de que é uma expressão, então deve retornar um valor e não pode conter declarações. Além disso, tenha em mente que, embora seja um recurso útil, alguns desenvolvedores Python consideram-no pouco idiomático, então devemos usar com moderação.

Em resumo, o Python realmente possui um operador condicional ternário, que permite expressões compactas que atribuem valores baseados em uma condição. Seja atribuindo uma variável ou retornando um valor de uma função, o operador pode ser uma ferramenta útil no seu kit de ferramentas de codificação em Python.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial