Bird
Raised Fist0
Pythonprogramming~10 mins

Ternary conditional expression in Python - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to assign 'Yes' if x is greater than 10, otherwise 'No'.

Python
result = 'Yes' if x [1] 10 else 'No'
Drag options to blanks, or click blank then click option'
A<
B==
C>
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' changes the condition meaning.
Using '==' checks equality, not greater than.
2fill in blank
medium

Complete the code to assign 'Even' if num is divisible by 2, else 'Odd'.

Python
parity = 'Even' if num [1] 2 == 0 else 'Odd'
Drag options to blanks, or click blank then click option'
A//
B%
C**
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using '//' which is floor division, not remainder.
Using '+' or '**' which are not related to divisibility.
3fill in blank
hard

Fix the error in the ternary expression to assign 'Adult' if age is 18 or more, else 'Minor'.

Python
status = 'Adult' if age [1] 18 else 'Minor'
Drag options to blanks, or click blank then click option'
A==
B<=
C!=
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<=' reverses the condition meaning.
Using '==' only checks if age equals 18, not more.
4fill in blank
hard

Fill both blanks to create a ternary expression that assigns 'Pass' if score is 50 or more, else 'Fail'.

Python
result = 'Pass' if score [1] 50 else [2]
Drag options to blanks, or click blank then click option'
A>=
B'Fail'
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' in the condition reverses the logic.
Not using quotes around 'Fail' causes syntax errors.
5fill in blank
hard

Fill all three blanks to create a ternary expression that assigns the uppercase of name if is_upper is True, else the lowercase.

Python
formatted = name.[1]() if is_upper [2] True else name.[3]()
Drag options to blanks, or click blank then click option'
Aupper
B==
Clower
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '!=' instead of '==' changes the condition meaning.
Mixing up 'upper' and 'lower' methods.

Practice

(1/5)
1. What does the ternary conditional expression x if condition else y do in Python?
easy
A. Returns y if condition is True, otherwise returns x.
B. Always returns x regardless of condition.
C. Returns x if condition is True, otherwise returns y.
D. Raises an error if condition is False.

Solution

  1. Step 1: Understand the ternary syntax

    The expression x if condition else y means Python checks the condition.
  2. Step 2: Determine the returned value

    If condition is True, it returns x; if False, it returns y.
  3. Final Answer:

    Returns x if condition is True, otherwise returns y. -> Option C
  4. Quick Check:

    True condition = x, False condition = y [OK]
Hint: Remember: condition in middle, true value before else [OK]
Common Mistakes:
  • Confusing the order of true and false values
  • Thinking it always returns the first value
  • Assuming it raises errors on false condition
2. Which of the following is the correct syntax for a ternary conditional expression in Python?
easy
A. condition ? x : y
B. if condition then x else y
C. x ? condition : y
D. x if condition else y

Solution

  1. Step 1: Recall Python ternary syntax

    Python uses the format x if condition else y for ternary expressions.
  2. Step 2: Compare options

    x if condition else y matches Python syntax exactly; others use syntax from other languages or incorrect forms.
  3. Final Answer:

    x if condition else y -> Option D
  4. Quick Check:

    Python ternary = x if condition else y [OK]
Hint: Python ternary always uses 'if' in the middle [OK]
Common Mistakes:
  • Using ?: like in other languages
  • Writing 'if condition then' which is invalid
  • Swapping the order of parts
3. What is the output of this code?
age = 20
status = "Adult" if age >= 18 else "Minor"
print(status)
medium
A. Adult
B. Minor
C. True
D. False

Solution

  1. Step 1: Evaluate the condition

    The condition age >= 18 is True because age is 20.
  2. Step 2: Determine the value assigned

    Since condition is True, status is assigned "Adult".
  3. Final Answer:

    Adult -> Option A
  4. Quick Check:

    age 20 >= 18 is True, so status = Adult [OK]
Hint: Check condition result first, then pick value before else [OK]
Common Mistakes:
  • Choosing the else value instead of the if value
  • Confusing string output with boolean
  • Ignoring the condition result
4. Find the error in this ternary expression:
result = "Pass" if score > 50 else "Fail" else "Invalid"
medium
A. SyntaxError due to multiple else keywords
B. No error, code runs fine
C. TypeError because of string comparison
D. NameError because score is undefined

Solution

  1. Step 1: Analyze the ternary expression structure

    The expression has two else keywords, which is invalid syntax in Python ternary expressions.
  2. Step 2: Understand Python ternary rules

    Python ternary expressions allow only one else part; multiple else cause SyntaxError.
  3. Final Answer:

    SyntaxError due to multiple else keywords -> Option A
  4. Quick Check:

    Only one else allowed in ternary [OK]
Hint: Only one else per ternary expression [OK]
Common Mistakes:
  • Trying to chain else without nesting
  • Assuming multiple else are allowed
  • Ignoring syntax error messages
5. You want to create a dictionary where keys are numbers 1 to 5 and values are "Even" or "Odd" using a ternary expression inside a dictionary comprehension. Which code is correct?
hard
A. d = {x: "Even" if x % 2 == 0 "Odd" for x in range(1,6)}
B. d = {x: ("Even" if x % 2 == 0 else "Odd") for x in range(1,6)}
C. d = {x if x % 2 == 0 else "Odd": x for x in range(1,6)}
D. d = {x: "Even" else "Odd" if x % 2 == 0 for x in range(1,6)}

Solution

  1. Step 1: Understand dictionary comprehension syntax

    It must be {key: value for variable in iterable}. The value can use a ternary expression.
  2. Step 2: Check ternary expression placement

    d = {x: ("Even" if x % 2 == 0 else "Odd") for x in range(1,6)} correctly wraps the ternary expression in parentheses for clarity and correct parsing.
  3. Step 3: Identify incorrect options

    d = {x: "Even" if x % 2 == 0 "Odd" for x in range(1,6)} misses the else keyword, causing SyntaxError; d = {x if x % 2 == 0 else "Odd": x for x in range(1,6)} misplaces ternary in key. d = {x: "Even" else "Odd" if x % 2 == 0 for x in range(1,6)} has invalid syntax.
  4. Final Answer:

    d = {x: ("Even" if x % 2 == 0 else "Odd") for x in range(1,6)} -> Option B
  5. Quick Check:

    Use parentheses around ternary in dict comprehension [OK]
Hint: Wrap ternary in parentheses inside dict comprehension [OK]
Common Mistakes:
  • Placing ternary in key instead of value
  • Missing parentheses causing syntax errors
  • Using else before if in ternary