Seleção condicional de valores

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;
}