Python idiome pour... si ... sinon ...' expression

Comment écrire l'expression plus courte:

return '%.0f' % float_var if float_var else float_var

ou

if float_var:
    return formatted_string
else:
    return None

Merci!

  • "Plus court"? Votre premier exemple est bien évidemment "plus court". Pourquoi demandez-vous ce qui est plus court? Demandez-vous pour un troisième exemple qui est comme par magie encore plus courte? Étant donné que votre question montre qui est plus court, il n'est pas clair ce que vous devez savoir.
  • Les deux exemples qui ne sont même pas le même code. Outre l'évidente (apparemment pré-calcule "formatted_string" dans certains unshown de la mode), le second renvoie None où les premiers retours float_var, qui pourrait être None, ou False, ou 0.0, ou quelques autres choses... Qui upvotes ces choses de toute façon?
  • Hansen: Bonne question. Je ne peux même pas à interpréter la question et qu'il a déjà eu upvotes. Je souhaite que les upvoters laisserait un "+1..." observations sur la raison pour laquelle la question est tellement cool.
  • Hansen, @S. Lott: l'Interprétation de StackOverflow questions est plus un art qu'une science. pour ma réponse ci-dessous, j'ai interprété cette un pour dire "je sais que les deux façons d'écrire un if-else condition ternaire. Est-il une façon plus simple? Quand devrais-je utiliser un?"
InformationsquelleAutor rukeba | 2010-03-27