Bird
Raised Fist0
Pythonprogramming~10 mins

Logical operators 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 check if both conditions are True using the AND operator.

Python
result = (5 > 3) [1] (2 < 4)
print(result)
Drag options to blanks, or click blank then click option'
Aor
Bnot
Cand
Dxor
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'or' instead of 'and' will return True if either condition is True.
2fill in blank
medium

Complete the code to check if at least one condition is True using the OR operator.

Python
result = (10 == 5) [1] (3 < 7)
print(result)
Drag options to blanks, or click blank then click option'
Aor
Bxor
Cnot
Dand
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'and' will return False if any condition is False.
3fill in blank
hard

Fix the error in the code by completing the logical NOT operation.

Python
value = True
result = [1] value
print(result)
Drag options to blanks, or click blank then click option'
Aor
Bnot
Cand
D!
Attempts:
3 left
💡 Hint
Common Mistakes
Using '!' causes a syntax error in Python.
4fill in blank
hard

Fill both blanks to create a condition that checks if x is between 10 and 20 (inclusive).

Python
x = 15
if x [1] 10 [2] x <= 20:
    print("x is between 10 and 20")
Drag options to blanks, or click blank then click option'
A>=
Band
C<
Dor
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>=' for the lower bound.
Using 'or' instead of 'and' will give wrong results.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that includes words longer than 3 letters and converts keys to uppercase.

Python
words = ['cat', 'house', 'dog', 'elephant']
result = [1]: [2] for word in words if len(word) [3] 3
print(result)
Drag options to blanks, or click blank then click option'
Aword.upper()
Bword
C>
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<=' instead of '>' will include shorter words.
Using 'word' as key will not convert to uppercase.

Practice

(1/5)
1. Which logical operator in Python returns True only if both conditions are true?
easy
A. or
B. xor
C. not
D. and

Solution

  1. Step 1: Understand the meaning of logical operators

    The and operator returns True only if both conditions are true.
  2. Step 2: Compare with other operators

    or returns True if any condition is true, not reverses a condition, and xor is not a Python keyword.
  3. Final Answer:

    and -> Option D
  4. Quick Check:

    Both true conditions = and [OK]
Hint: Use 'and' when all conditions must be true [OK]
Common Mistakes:
  • Confusing 'and' with 'or'
  • Thinking 'not' combines conditions
  • Using 'xor' which is not a Python keyword
2. Which of the following is the correct syntax to check if x is NOT equal to 10 using logical operators?
easy
A. not x = 10
B. not (x == 10)
C. x != 10
D. x not= 10

Solution

  1. Step 1: Understand how to negate a condition

    The not operator reverses a condition. To check if x is not equal to 10, negate x == 10.
  2. Step 2: Check syntax correctness

    not (x == 10) is correct syntax. x != 10 is also correct but not using logical operators explicitly. Other options have syntax errors.
  3. Final Answer:

    not (x == 10) -> Option B
  4. Quick Check:

    Use 'not' with parentheses for negation [OK]
Hint: Use 'not (condition)' to reverse it properly [OK]
Common Mistakes:
  • Writing 'not x = 10' (invalid syntax)
  • Using 'x not= 10' (invalid operator)
  • Confusing '!=' with 'not' operator usage
3. What is the output of the following code?
print((5 > 3) and (2 == 2) or not (4 < 1))
medium
A. True
B. False
C. SyntaxError
D. None

Solution

  1. Step 1: Evaluate each condition

    5 > 3 is True, 2 == 2 is True, 4 < 1 is False.
  2. Step 2: Apply logical operators step-by-step

    (5 > 3) and (2 == 2) is True and True = True.
    Then not (4 < 1) is not False = True.
    Finally, True or True = True.
  3. Final Answer:

    True -> Option A
  4. Quick Check:

    True and True or True = True [OK]
Hint: Evaluate 'and' before 'or', then apply 'not' [OK]
Common Mistakes:
  • Ignoring operator precedence
  • Misinterpreting 'not' effect
  • Assuming 'or' has higher priority than 'and'
4. Find the error in this code snippet:
if not x > 10 and < 5:
    print("Valid")
medium
A. Syntax error due to incomplete condition after 'and'
B. Incorrect use of 'not' operator
C. Missing parentheses around conditions
D. No error, code runs fine

Solution

  1. Step 1: Analyze the condition after 'and'

    The condition after and is just < 5, which is incomplete because it lacks a variable to compare.
  2. Step 2: Identify syntax error

    Python expects a full condition after and. This causes a syntax error.
  3. Final Answer:

    Syntax error due to incomplete condition after 'and' -> Option A
  4. Quick Check:

    Conditions must be complete after logical operators [OK]
Hint: Check each condition is complete after 'and' or 'or' [OK]
Common Mistakes:
  • Assuming 'not' applies to both conditions
  • Ignoring incomplete condition after 'and'
  • Missing variable in second condition
5. You want to check if a number n is between 10 and 20 (inclusive) or exactly 0. Which condition correctly uses logical operators?
hard
A. not (n < 10 or n > 20) and n == 0
B. n >= 10 and (n <= 20 or n == 0)
C. (n >= 10 and n <= 20) or n == 0
D. n >= 10 or n <= 20 and n == 0

Solution

  1. Step 1: Understand the condition requirements

    The number n should be between 10 and 20 inclusive, or exactly 0.
  2. Step 2: Analyze each option

    (n >= 10 and n <= 20) or n == 0 correctly groups the range check with and and then uses or for the zero check.
    n >= 10 and (n <= 20 or n == 0) changes the logic, allowing n == 0 to be combined incorrectly.
    n >= 10 or n <= 20 and n == 0 mixes operators without parentheses, causing wrong logic.
    not (n < 10 or n > 20) and n == 0 incorrectly requires n to be zero and in the range simultaneously.
  3. Final Answer:

    (n >= 10 and n <= 20) or n == 0 -> Option C
  4. Quick Check:

    Range check with 'and', zero check with 'or' [OK]
Hint: Group range with 'and', combine with 'or' for zero [OK]
Common Mistakes:
  • Wrong operator precedence
  • Misplacing parentheses
  • Combining conditions incorrectly