Bird
Raised Fist0
Pythonprogramming~20 mins

Logical operators in conditions in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Logical Operators Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of combined logical operators
What is the output of this Python code snippet?
Python
x = 5
if x > 3 and not x == 5:
    print("A")
elif x > 3 or x == 5:
    print("B")
else:
    print("C")
AB
BSyntaxError
CC
DA
Attempts:
2 left
💡 Hint
Remember how 'and', 'or', and 'not' work together in conditions.
Predict Output
intermediate
2:00remaining
Evaluating multiple logical conditions
What will be printed by this code?
Python
a = True
b = False
c = True
if a and b or c:
    print("Yes")
else:
    print("No")
ARuntimeError
BNo
CSyntaxError
DYes
Attempts:
2 left
💡 Hint
Remember the precedence of 'and' over 'or'.
Predict Output
advanced
2:00remaining
Output with mixed logical operators and parentheses
What is the output of this code?
Python
x = 10
if (x < 5 or x > 8) and not (x == 10):
    print("First")
elif x == 10 and not (x < 5):
    print("Second")
else:
    print("Third")
AFirst
BSecond
CThird
DSyntaxError
Attempts:
2 left
💡 Hint
Check each condition carefully with parentheses.
Predict Output
advanced
2:00remaining
Logical operators with short-circuit behavior
What will this code print?
Python
def check():
    print("Checked")
    return False

if False and check():
    print("Yes")
else:
    print("No")
ANo
B
Checked
Yes
C
Checked
No
DSyntaxError
Attempts:
2 left
💡 Hint
Remember how 'and' stops evaluating if the first part is False.
Predict Output
expert
2:00remaining
Complex logical condition output
What is the output of this code?
Python
x = 3
y = 4
z = 5
if (x > y or y < z) and not (x == 3 and z == 5):
    print("Alpha")
elif x == 3 and (y == 4 or z == 6):
    print("Beta")
else:
    print("Gamma")
AAlpha
BGamma
CBeta
DSyntaxError
Attempts:
2 left
💡 Hint
Evaluate each part step by step, especially the 'not' condition.

Practice

(1/5)
1. Which logical operator in Python means all conditions must be true for the whole expression to be true?
easy
A. xor
B. and
C. not
D. or

Solution

  1. Step 1: Understand the meaning of 'and'

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

    or needs only one true condition, not reverses truth, and xor is not a Python keyword.
  3. Final Answer:

    and -> Option B
  4. Quick Check:

    All conditions true = and [OK]
Hint: Remember: 'and' means all must be true [OK]
Common Mistakes:
  • Confusing 'and' with 'or'
  • Thinking 'not' means all true
  • Using 'xor' which is not a Python keyword
2. Which of the following is the correct syntax to check if variable x is NOT equal to 10 and variable y is greater than 5?
easy
A. if x != 10 and y > 5:
B. if x <> 10 and y > 5:
C. if x != 10 & y > 5:
D. if x != 10 or y > 5:

Solution

  1. Step 1: Check the inequality operator

    != is the correct 'not equal' operator in Python; <> is invalid syntax.
  2. Step 2: Check logical operator usage

    and correctly combines two conditions; & is a bitwise operator and or changes logic.
  3. Final Answer:

    if x != 10 and y > 5: -> Option A
  4. Quick Check:

    Correct inequality and 'and' syntax [OK]
Hint: Use '!=' for not equal and 'and' to combine conditions [OK]
Common Mistakes:
  • Using '<>' instead of '!='
  • Using '&' instead of 'and'
  • Using 'or' when 'and' is needed
3. What will be the output of this code?
age = 20
has_id = False
if age >= 18 and has_id:
    print('Allowed')
else:
    print('Denied')
medium
A. SyntaxError
B. Allowed
C. Denied
D. No output

Solution

  1. Step 1: Evaluate each condition

    age >= 18 is True since 20 >= 18, but has_id is False.
  2. Step 2: Apply 'and' operator

    True and False is False, so the else block runs.
  3. Final Answer:

    Denied -> Option C
  4. Quick Check:

    True and False = False [OK]
Hint: Both conditions must be true for 'and' to print Allowed [OK]
Common Mistakes:
  • Assuming one True is enough with 'and'
  • Confusing 'and' with 'or'
  • Ignoring boolean value of variables
4. Find the error in this code snippet:
if not x > 10 or y < 5
    print('Check passed')
medium
A. Missing colon ':' after condition
B. Wrong use of 'not' operator
C. Incorrect indentation
D. Using 'or' instead of 'and'

Solution

  1. Step 1: Check syntax of if statement

    Python requires a colon ':' at the end of the if condition line.
  2. Step 2: Review other parts

    The use of not and or is correct; indentation is not shown as wrong here.
  3. Final Answer:

    Missing colon ':' after condition -> Option A
  4. Quick Check:

    if statements need ':' [OK]
Hint: Always put ':' after if condition [OK]
Common Mistakes:
  • Forgetting ':' after if
  • Misusing 'not' operator
  • Wrong indentation without colon
5. You want to check if a number n is either less than 0 or greater than 100, but NOT equal to -10. Which condition correctly uses logical operators?
hard
A. if n < 0 or (n > 100 and n != -10):
B. if n < 0 and n > 100 or n != -10:
C. if not (n < 0 or n > 100) and n == -10:
D. if (n < 0 or n > 100) and n != -10:

Solution

  1. Step 1: Understand the condition requirements

    We want numbers less than 0 or greater than 100, but exclude -10.
  2. Step 2: Analyze each option

    if (n < 0 or n > 100) and n != -10: correctly groups the or condition and excludes -10 with and n != -10. if n < 0 or (n > 100 and n != -10): excludes -10 only when >100, not <0 (e.g., n=-10 is true). if not (n < 0 or n > 100) and n == -10: reverses logic and checks for equal -10. if n < 0 and n > 100 or n != -10: mixes and/or incorrectly.
  3. Final Answer:

    if (n < 0 or n > 100) and n != -10: -> Option D
  4. Quick Check:

    Group or, then exclude -10 with and [OK]
Hint: Group or conditions, then exclude with and [OK]
Common Mistakes:
  • Wrong grouping of conditions
  • Misplacing 'not' or 'and'
  • Confusing '!=' with '=='