Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
Sometimes code needs to assign (or otherwise use) a value that depends on some condition. The naive approach is to use explicit branching, which in Python would look like: if some_condition(): ...
#1: Initial revision
Does Python have a "ternary operator" (conditional evaluation operator like "?:" in other languages)?
Sometimes code needs to assign (or otherwise use) a value that depends on some condition. The naive approach is to use explicit branching, which in Python would look like: ``` if some_condition(): a_variable = condition_value else: a_variable = not_condition_value ``` However, this seems needlessly verbose, and is not DRY - the assignment syntax is repeated. Many other popular languages support some way to write an [expression](https://software.codidact.com/posts/289228) that evaluates to either of two stated options, depending on the condition. Typically this uses what is often called a "ternary conditional operator" or just "the ternary operator"[^1], commonly written using `?` and `:` symbols - so it looks like: ``` a_variable = some_condition() ? condition_value : not_condition_value ``` Generally this operator is *short-circuiting*: i.e., if `condition_value` and/or `not_condition_value` are more complex expressions, only the necessary one is evaluated according to the `some_condition()` result. **Does Python have any syntax like this?** [^1]: Here, "ternary" simply means that there are three operands; but this operator is often referred to as "the" ternary operator because it is typically the only one in the language with that property.