Codectionary / Developer documentation / Python

Conditional (Ternary) Expression

Python's conditional expression - often called a ternary operator - lets you choose between two values based on a condition, all in a single expression rather than a full if/else statement. It reads almost like English: value_if_true if condition else value_if_false. This is especially handy for concise variable assignments and inside list comprehensions.

Syntax

value_if_true if condition else value_if_false

Examples

Basic Ternary Expression

Assigning one of two values based on a condition, without a full if/else block.

age = 20
status = "adult" if age >= 18 else "minor"
print(status)  # adult

# Equivalent full if/else
if age >= 18:
    status = "adult"
else:
    status = "minor"

Ternary in a Function Call

Using a ternary expression directly as an argument.

def display(message, uppercase):
    print(message.upper() if uppercase else message)

display("hello", True)   # HELLO
display("hello", False)  # hello

Ternary Inside a List Comprehension

Combining a ternary expression with a comprehension to transform items conditionally.

numbers = [1, 2, 3, 4, 5, 6]

labels = ["even" if n % 2 == 0 else "odd" for n in numbers]
print(labels)  # ['odd', 'even', 'odd', 'even', 'odd', 'even']

Best practices

  • Use the ternary expression for simple, single-value choices - fall back to a full if/else statement once logic gets more involved
  • Avoid nesting ternary expressions within each other; it quickly becomes hard to read (prefer if/elif/else instead)
  • Ternary expressions are great inside list comprehensions and default argument values where a full if/else statement is not possible
  • Remember the order reads 'result if condition else alternative', which can feel backward compared to other languages

At a glance

Purpose
Scripting and general-purpose applications
File extension
.py
Runs in
Python interpreter
Usually used with
Python standard library and packages

Specifications & further reading

Related Python documentation

if
The if statement is Python's primary conditional control structure. It allows your program to make decisions by executing different code blocks based on whether a condition is True or False. The if statement is fundamental to creating dynamic, responsive programs that can adapt their behavior based on various conditions, user input, or data states.
for
The for loop in Python is used to iterate over sequences like lists, tuples, strings, or any iterable object. Unlike traditional for loops in other languages that use counters, Python's for loop is more like a "for each" loop, automatically handling the iteration details. It's one of the most commonly used constructs in Python for processing collections and repeating actions.
while
The while loop repeats a block of code as long as its condition remains True. Unlike a for loop, which iterates a known number of times over a sequence, a while loop is ideal when you don't know in advance how many iterations you'll need - like waiting for valid user input or running until some external condition changes. A while loop can also have an optional else clause that runs if the loop finishes normally, without hitting a break.
break and continue
break and continue give you fine-grained control over loop execution. break immediately exits the nearest enclosing loop entirely, skipping any remaining iterations. continue skips just the rest of the current iteration and jumps straight to the next one, without exiting the loop. Both work inside for and while loops.