Em diversas situações, o valor a ser atribuído a uma variável, ou retornado por um método depende de uma condição. Por exemplo:
if x >= 0:
y = 1
else:
y = -1
O valor de y depende da condição estabelecida sobre o valor de x. O código acima pode ser representado através de uma sintaxe mais concisa e de fácil leitura:
y = 1 if x >= 0 else -1
A expressão acima poderia ser lida da seguinte forma:
O valor de y será 1 se x for maior ou igual a zero. Caso contrário, será -1.
Podemos nos aproveitar dessa sintaxe simplificada para determinar o valor de retorno de funções:
def f(x):
return 1 if x >= 0 else -1
Esse tipo de estrutura lembra, embora seja mais legível, as expressões ternárias em C:
int func(int x)
{
return x >= 0 ? 1 : -1;
}