List of Logical Operators
Operator | Description | Example (a = True, b = False) |
---|---|---|
and | Returns True if both conditions are True | a and b → False |
or | Returns True if at least one condition is True | a or b → True |
not | Reverses the result: True → False, False → True | not a → False |
Real-Life Analogy
1. and: "I will go for a walk if it is sunny AND I am free."
2. or: "I will buy coffee if I am tired OR I like the café’s coffee."
3. not: "I will NOT go to the party if it is raining."
Operator Details with Examples
1. AND Operator
The and operator returns True only if both conditions are True.
a = True b = False print(a and b) # Output: False
Real-Life Example:
Checking if someone is eligible to apply for a driver's license.
age = 20 has_permit = True if age >= 18 and has_permit: print("Eligible for a driver's license.") else: print("Not eligible.")
2. OR Operator
The or operator returns True if at least one condition is True.
a = True b = False print(a or b) # Output: True Real-Life Example: Deciding to watch a movie. weekend = False finished_work = True if weekend or finished_work: print("Let's watch a movie.") else: print("Not now.")
3. NOT Operator
The not operator reverses the result of a Boolean expression.
a = True print(not a) # Output: False Real-Life Example: Deciding whether to go outside. is_raining = True if not is_raining: print("Go outside.") else: print("Stay indoors.")
Combining Logical Operators
Logical operators can be combined to evaluate complex conditions.
Example 1: Loan Approval
A loan is approved if:
1. The applicant has a good credit score (credit_score >= 700).
2. Their income is high enough (income > 50000).
3. They are not blacklisted (not blacklisted).
credit_score = 750 income = 60000 blacklisted = False if credit_score >= 700 and income > 50000 and not blacklisted: print("Loan Approved.") else: print("Loan Denied.")
Example 2: Fitness Goals
A fitness tracker suggests exercise if:
• The user didn’t meet their step goal (steps < goal) or
• They ate more calories than recommended.
steps = 8000 goal = 10000 calories_consumed = 2500 calories_limit = 2000 if steps < goal or calories_consumed > calories_limit: print("Exercise more!") else: print("You're on track!")
Short-Circuit Evaluation
Logical operators in Python use short-circuit evaluation:
1. and: Stops evaluating as soon as it encounters False (because the entire expression can’t be True).
2. or: Stops evaluating as soon as it encounters True (because the entire expression is already True).
Example 3:
a = False b = True # `a` is False, so `a and b` stops evaluating after `a` print(a and b) # Output: False # `a` is False, so `a or b` checks `b` print(a or b) # Output: True
Real-Life Application
Example 4: E-commerce Discount Eligibility
A customer gets a discount if they:
1. Are a member (is_member) or
2. Their cart value exceeds $100 (cart_value > 100).
is_member = True cart_value = 80 if is_member or cart_value > 100: print("Discount Applied!") else: print("No Discount.")
Example 5: Alarm System
An alarm should trigger if:
• Motion is detected (motion_detected) and
• It’s not during working hours (not working_hours).
motion_detected = True working_hours = False if motion_detected and not working_hours: print("Alarm Triggered!") else: print("All is safe.")
Important Tips
1. Operator Precedence: Logical operators have a precedence order:
o not > and > or.
o Use parentheses to make complex expressions clear and avoid confusion.
a = True b = False c = True result = a or b and c # `b and c` is evaluated first print(result) # Output: True
2. Readable Conditions: Avoid overly complex conditions. Use variables or functions for clarity.
# Instead of: if age >= 18 and has_permit and not blacklisted: ... # Use: is_eligible = age >= 18 and has_permit and not blacklisted if is_eligible:
Key Takeaways
Logical operators (and, or, not) combine or modify conditions to form powerful decision-making logic.
Boolean values (True, False) are the building blocks for these operators.
They are heavily used in decision-making (if statements), loops, and filtering data.