Operador condicional em Python? [duplicado]
Esta pergunta já tem uma resposta:
- o Python tem um operador ternário condicional? 23 respostas
Você sabe se o Python suporta alguma palavra-chave ou expressão como em C++ para devolver valores com base na condição if
, todos na mesma linha (O C++ if
expresso com o ponto de interrogação ?
)
// C++
value = ( a > 10 ? b : c )
65
Author: Abruzzo Forte e Gentile, 2010-02-03
2 answers
A partir do Python 2.5 pode fazer:
value = b if a > 10 else c
Anteriormente, teria de fazer algo como o seguinte, embora a semântica não seja idêntica à perda do efeito de curto-circuito:
value = [c, b][a > 10]
Também há outro hack a usar e ... .. ou ' mas é melhor não usá-lo como ele tem um comportamento indesejável em algumas situações que podem levar a um bug difícil de encontrar. Eu nem vou escrever o hack aqui como eu acho que é melhor não usá - lo, mas você pode ler sobre ele em Wikipedia Se quiseres.
112
Author: Mark Byers, 2013-04-10 08:21:18
Simples é o melhor e funciona em todas as versões.
if a>10:
value="b"
else:
value="c"
1
Author: ghostdog74, 2010-02-03 13:25:27