Home Resource Centre Python Logical Operators, Short-Circuiting & More (With Examples)

Python Logical Operators, Short-Circuiting & More (With Examples)

Logical operators in Python are essential components of the language's decision-making and control flow structures. These operators allow developers to perform logical operations on Boolean values, which are either True or False. Logical operators are crucial for creating conditional statements and expressions, enabling the implementation of complex decision-making processes within Python programs. In this article, we'll look at logical operators in Python programming, their purposes, syntax, and practical applications.

What Are Logical Operators In Python?

Python, like other programming languages, is built around Boolean logic. It enables programmers to do comparisons, conditional statements, and standard algorithms. Python comparison operators include the greater than (>) and equals to (==) symbols, while logical operators include AND, OR, and NOT. In this section, we will examine Boolean logic and expressions and how to utilize Python's Boolean operators.

Python's logical operators are essential for working with boolean data because they enable the execution of logical operations. Programmers use boolean data, which is represented by the values True or False, to make decisions. Logical operators improve the flexibility and complexity of logical expressions by offering a variety of ways to mix, edit, or examine boolean values.

Python has three main logical operators, i.e., and, or, and not. Here is a brief definition of their roles:

  1. AND (and) Operator: The and operator yields True if both operands are True; else, it returns False.
  2. OR (or) Operator: If at least one of the operands is True, the or operator returns True; otherwise, it returns False.
  3. NOT (not) Operator: The NOT operator returns the operand's inverse boolean value. If the operand is True, it does not return True; otherwise, it returns False.

Now, let's take a look at each of these Python logical operators individually and in greater detail.

The AND Python Logical Operator

Two boolean expressions can be combined in Python using the logical AND operator. It only returns True if both of the expressions it links are True; otherwise, it returns False. The AND Python logical operator is frequently used when you want to establish an expression that needs more than one of the conditions to be satisfied.

  • Two boolean expressions, sometimes known as operands, are evaluated by the AND operator.
  • Only in the event that both operands are True does it return True.
  • The result is False if at least one operand is False.

Syntax Of AND Logical Operator In Python

result = operand1 and operand2

Here,

  • The two boolean expressions or values you wish to combine are operand1 and operand2.
  • The and keyword indicates that we are using the AND operator.

Working Of AND Python Logical Operator

In Python, you may combine two or more boolean statements with the AND logical operator. If any of the operands being combined with AND are not true, it evaluates to False and yields True. A detailed explanation of the AND operator's behavior is as follows:

1. Start: Start with a logical expression that uses the AND operator.

2. Assess the Initial Condition: Start by evaluating the first condition in the expression. The expression's overall result is False if the first condition is False, hence the other conditions don't need to be evaluated. If the result of the first expression is True, then evaluate the second expression.

3. Check for Short-Circuiting: The operator checks or verifies the following condition if the first condition is True. The total outcome is True if the second condition is likewise true. Short-circuiting happens if the second condition is False, and the interpreter doesn't evaluate the other conditions since the outcome will always be False.

4. Repeat for Additional Conditions: The procedure is repeated if the expression has more criteria. Each subsequent condition is assessed only when the preceding requirements are true.

5. End: When the logical action involving the application of the AND operator is finished, the flow comes to an end.

Truth Table Of AND Python Logical Operator

The truth table given below summarises the result the AND operator will give depending upon the result of the two operands/ expressions.

Input/ Operand A

Input/ Operand B

Output(A AND B)

0

0

0

0

1

0

1

0

0

1

1

1

Code Example:

Output:

Is adult: True
Has job: True
Eligible for loan: True

Code Explanation:

In this Python example, we use several variables representing different aspects of a person's eligibility for a loan.

  1. As mentioned in code comments, we first create a variable age and initialize it with the value 25.
  2. Then, we use the greater than equals to comparison operator in a boolean expression to see if the value of age is more than or equal to 18. The outcome of this comparison is assigned to the is-adult variable.
  3. Next, we create a variable income to represent the person's income and give it an initial value of 50,000.
  4. Once again, we use a boolean expression to check if the person has a job or not, i.e., if income>0. The result of this comparison is assigned to the has-job variable.
  5. After that, we use the AND logical operator to combine the conditions represented by is_adult and has_job.
  6. The result, assigned to the eligible_for_loan variable, indicates whether the person meets both criteria for loan eligibility.
  7. Finally, we print out the values of is_adult, has_job, and eligible_for_loan to show whether the person is an adult, has a job, and is eligible for a loan, respectively.

The outcome of the logical AND operation between is_adult and has_job is set to the eligible_for_loan variable. Only when all requirements are satisfied (both variables are True) is the applicant qualified for a loan.

Since both requirements are satisfied in this instance, eligible_for_loan is True. This explains how the AND Python logical operator can be used to combine numerous criteria in a program.

Using Python Logical Operator AND With Boolean Expressions

In Python, the logical operator AND serves as a pivotal tool for constructing conditional statements based on multiple Boolean expressions.

  • When applied to Boolean expressions, the and operator evaluates to True only when all the individual conditions are true.
  • This means that each condition/ expression linked by AND must be satisfied for the entire expression to be considered true.
  • This functionality allows developers to create more nuanced and precise conditions within their programs.
  • For instance, within an if statement, the AND operator can be employed to ensure that multiple criteria, such as numeric ranges or string conditions, are met simultaneously before executing a specific block of code.

The use of AND fosters the creation of intricate decision-making structures, enhancing the robustness and reliability of Python programs by demanding the fulfillment of all specified conditions for the overall logical expression to be deemed true.

Code Example: 

Output: 

This person is a student between the ages of 18 and 25.

Explanation:

In this Python code example, we have a scenario involving a person's age and whether they are a student or not.

  1. We initialize the variable age with a value of 25, representing the age of an individual.
  2. Another variable, is_student, is set to True, indicating whether the person is currently a student.
  3. The subsequent if-else statement checks two conditions using the logical AND operator:
    • The first condition (is_student) checks if the person is a student, and
    • The second condition (18 <= age <= 25) verifies if the person's age falls between 18 and 25 (inclusive).
  4. If both conditions are true, the code inside the corresponding if block is executed, printing a string message- This person is a student between the ages of 18 and 25.
  5. If either of the conditions is false, the code inside the else block is executed, printing the message- This person does not meet the specified criteria.

The OR Python Logical Operator

In Python, the logical OR operator is employed to combine two boolean expressions. It returns True if at least one of the expressions it connects is True; otherwise, it returns False. The OR operator is commonly used when you want to establish an expression that requires at least one of the conditions to be satisfied.

  • Two boolean expressions, also known as operands, are assessed by the OR operator.
  • It returns True if at least one operand is True.
  • The result is False only if both operands are False.

Syntax Of OR Python Logical Operator

result = operand1 or operand2

Here,

  • The two boolean expressions or values you wish to combine are operand1 and operand2.
  • The or keyword indicates that we are using the OR operator.

Note- Regardless of operand2's value, the complete expression evaluates to True if operand1 is True. The entire expression evaluates to the value of operand2 if operand1 is False. The whole expression evaluates to False if operand2 is likewise False; otherwise, it evaluates to True.

Working Of OR Python Logical Operator

As mentioned before, the logical OR operator returns true if either of the expressions is true. Given below is a detailed explanation of its working mechanism:

1. Start: Use the or operator in a logical phrase to get started.

2. Evaluate the First Condition: The expression's first condition is assessed. The expression's overall result is True if the first condition is true and the other conditions don't need to be evaluated.

3. Check for Short-Circuiting: In case the first condition is false, short-circuiting takes place. The OR operator recognizes that since at least one of the conditions is true, the overall expression will result in True regardless of the other conditions.

4. Skip Subsequent Conditions: The interpreter neglects to consider the remaining requirements as they are aware that the final outcome has already been decided. The main idea behind short-circuiting is to reduce calculation time when the outcome is obvious.

5. End: When the logical action involving the application of the or operator is finished, the flow comes to an end.

Truth Table For OR Python Logical Operator:

Input A

Input B

Output (A OR B)

0

0

0

0

1

1

1

0

1

1

1

1

Now, let’s take a look at an example showing the implementation of the logical OR operator in Python.

Code Example:

Output:

True

Code Explanation:

In the simple Python program-

  1. We assign values 5 and 10 to the integer variables x and y, respectively.
  2. Next, we combine two conditions, i.e., the first x>3 and the second y<5, using the logical OR operator.
    • Since x is bigger than 3, the first condition is satisfied in this instance.
    • The second criterion, which is false, determines if the value of y is smaller than 5.
  3. In this case, the outcome of the logical OR operation is assigned to the result variable, which is true. This is because the logical OR operator only needs one of the requirements to be true.
  4. Lastly, we print the value of the result variable using the print() method.

Using Python Logical Operator OR With Boolean Expressions

In Python, the logical operator OR is used to combine boolean expressions in a way that the overall expression evaluates to True if at least one of the individual boolean expressions is True.

  • It returns False only when all the conditions are False.
  • This allows for the creation of more complex conditions by checking multiple criteria simultaneously.
  • For example, consider a situation where you want to determine whether a person is eligible for a discount at a store.

Using OR, you can create a boolean expression that checks if the person is a student or a senior citizen and if either condition is met, the overall expression evaluates to True, indicating eligibility for the discount.

Code Example:

Output:

You are eligible for a discount!

Explanation:

In the example Python program-

  1. We begin by defining two variables - age and is_student. The variable age is set to the value 25, representing the age of an individual.
  2. The variable is_student is assigned the value True, indicating whether the person is currently a student.
  3. Next, we use the OR logical operator to combine two conditions to determine if the person is eligible for a discount.
    • The first condition is the outcome is_student.
    • The second condition is age >= 60, which checks if the person is older than 60.
    • This operation results in True if the person is a student (is_student is True) or if their age is 60 or higher (age >= 60).
  4. The outcome of the operation is assigned to the variable discount_eligible
  5. Following that, we have an if statement that evaluates the value of discount_eligible. If it is True, the program prints a message indicating that the individual is eligible for a discount.
  6. Conversely, if discount_eligible is False, the program prints a message conveying that the person is not eligible for a discount.

In summary, this piece of code showcases the use of the OR Python logical operator to create a condition for discount eligibility.

The NOT Python Logical Operator

Python's logical NOT operator (not) is a unary operator that negates a boolean expression's truth value. It returns the opposite boolean value given a single boolean operand. Not returns False if the operand is False and True if the operand is True.

Syntax Of NOT Python Logical Operator

result = not operand

Here,

  • The boolean phrase or value that you wish to negate is given by the term operand.
  • The not keyword represents the NOT operator.
  • The result variable is where we store the output of the not operation.

Working Of NOT Logical Operator In Python

The working mechanism of the NOT logical operator in Python programming language is as follows:

1. Start: Start with a condition or boolean expression that you wish to use the not operator to negate.

2. Evaluate the Condition: Analyze the first boolean scenario. For example, (x > 0), where x is a variable, may be this.

3. Apply not Operator: Apply the NOT operator to the boolean condition's outcome. Using not will provide False if the first condition was True. Using not will yield True if the initial condition was False.

4. Result: The original boolean condition is negated as a final outcome of applying not.

Truth Table For NOT Python Logical Operator:

Input A

Output (NOT A)

0

1

1

0

Code Example:

Output:

false

Code Explanation:

In the above code,

  1. We declare two variables a and b, and assign the values 10 and 5 to them, respectively.
  2. Then, we use the NOT operator along with the equation a>b. Since a exceeds b, the equation (a > b) evaluates to True.
  3. As a result, the NOT expression is evaluated as False since the operator applied to it. 
  4. The outcome of the NOT logical operator is stored in the variable result.
  5. Lastly, we display the value of the result variable using the print() method.

Using Python Logical Operator NOT With Boolean Expressions

In Python, the logical operator NOT is used to negate the truth value of a boolean expression. It is a unary operator that reverses the boolean outcome of the expression it precedes. When applied to a true statement, it results in False, and vice versa. For instance, if you have a condition that evaluates to True, using not before the condition will make it False. Conversely, if the condition is initially False, applying not will make it True.

Code Example:

Output: 

Is it raining? False

Explanation:

In this Python code example-

  1. We begin by assigning the boolean value True to the variable is_sunny, indicating that the weather is sunny.
  2. Following this assignment, the script utilizes the logical operator NOT to reverse the truth value of is_sunny.
  3. The result of this operation is then stored in a new variable named is_raining. Essentially, if is_sunny is initially True, applying not turns it into False, suggesting that it is not sunny, and hence, it is raining.
  4. Finally, a print statement is employed to display the question "Is it raining?" along with the value of is_raining.

When executed, the script outputs whether it is raining or not based on the logical inversion of the original sunny condition, providing a response such as: Is it raining? False, in the given example.

Short-Circuiting Evaluation Of Python Logical Operators

Short-circuiting is a behavior exhibited by logical operators in Python, including AND and OR, where the second operand is not evaluated if the outcome can be determined based on the evaluation of the first operand alone.

  • This optimization is particularly useful for improving performance and efficiency in certain scenarios.
  • For the AND operator, if the first operand is False, the overall expression will be False regardless of the value of the second operand.
  • Therefore, the second operand is not evaluated, and the result is False.
  • Similarly, for the OR operator, if the first operand is True, the overall expression will be True regardless of the value of the second operand.
  • Consequently, the second operand is not evaluated, and the result is True.

This behavior can be advantageous when dealing with complex expressions or when the second operand involves computationally expensive operations. By short-circuiting, unnecessary computations are avoided, leading to improved performance. Below is an example to illustrate short-circuiting in Python logical operators.

Code Example: 

Output: 

Result with AND: False
Result with OR: True

Explanation: 

  1. In the provided Python code, there are two main operations that demonstrate the short-circuiting behavior of logical operators and and or.
  2. We start by declaring a function named expensive_function() in the Python code. This function, when called, prints a message stating that it is an expensive operation and then returns the boolean value False.
  3. Next, we encounter the first operation using the and operator: False and expensive_function(). In this case, the first operand is False.
  4. According to the short-circuiting behavior of the and operator, the second operand (expensive_function()) is not evaluated since the overall result of the and operation is already known to be False when the first operand is False. Therefore, the function expensive_function() is not executed, and the result of the entire expression is determined to be False.
  5. Moving on to the second operation involving the or operator: True or expensive_function(). Here, the first operand is True.
  6. As per the short-circuiting principle of the or operator, the second operand (expensive_function()) is not evaluated because the overall result of the or operation is guaranteed to be True when the first operand is True. Consequently, the function expensive_function() is not called, and the result of the entire expression is established as True.
  7. Finally, the code prints the results of both operations. The output shows "Result with AND: False" and "Result with OR: True," affirming the expected outcomes based on the short-circuiting behavior of the logical operators.

Precedence of Logical Operators In Python

Logical operators are used in programming to execute logical operations on boolean data. In Python, logical operators have a specific precedence, which determines the order in which they are evaluated when used together in an expression. Understanding operator precedence is crucial for correctly interpreting and predicting how expressions will be evaluated. Given below is the precedence of logical operators in Python, from highest to lowest:

  1. NOT (!): The not operator has the highest precedence. It is a unary operator that negates the value of its operand.
  2. AND (&&): The and operator has a lower precedence than not. It is a binary operator that returns True only if both operands are True.
  3. OR (||): The or operator has the lowest precedence among logical operators. It is a binary operator that returns True if at least one of the operands is True.

When more than one operator is in use, Python ranks them according to a predetermined hierarchy:

Operator

Precedence

NOT (!)

Highest Precedence

AND (&&)

Medium Precedence

OR (||)

Lowest Precedence

The highest precedence operator is used to group expressions first, then the groupings for lesser precedent operators, and so on.

Note:

It's important to note that parentheses can be used to override the default precedence and explicitly specify the order of evaluation. Expressions within parentheses are evaluated first. If there are nested parentheses, the innermost expressions are evaluated first.

Let's consider two examples to illustrate the precedence of logical operators in Python. The first demonstrates normal precedence implementation, while in the second example, we see how to override the precedence hierarchy of Python's logical operators.

Code Example 1:

Output: 

True

Explanation:

In this example, the expression involves NOT, AND, and OR operators. The NOT operator has the highest precedence, followed by AND and OR. The result will be True, as the expression evaluates as follows:

  • not True is False (due to the NOT operator).
  • False and False is False (due to the AND operator).
  • True and not False is True (due to the AND and NOT operators).
  • False or True is True (due to the OR operator).

Code Example 2: 

Output: 

True

Explanation:

In this example, we use parentheses to override the default precedence and explicitly specify the order of evaluation. The expression inside the innermost parentheses is evaluated first, and then the outer ones are considered. The result will be True, as the expression evaluates as follows:

  • True and False is False (inside the parentheses).
  • not False is True (inside the parentheses).
  • True and True is True.
  • not (True and False) is True.
  • True or True is True.

These examples highlight how understanding and using operator precedence, along with parentheses, can help control the order of evaluation in complex expressions.

Check this out- Boosting Career Opportunities For Engineers Through E-School Competitions

How Does Python Calculate Truth Value?

In Python, an expression or object's truth value depends on its boolean context. An item in boolean context is either regarded as "truthy" or "falsy." These truth values are necessary for conditional statements and boolean operations. It is essential to comprehend the Python truth value calculation process to write legible and efficient code. Python follows these steps to determine an expression's truth value:

1. Constants: The unchanging elements of predetermined truth values apply to True and False. For example:

Output:

Result: True

Explanation:

In this code,

  1. We assign the value 5 to the variable x and the value 0 to the variable y.
  2. Then, we evaluate whether x is not greater than 10 (which is true) and whether y is greater than 10 (which is false).
  3. The expression results in True and False, which is False. Therefore, when we print the result, it outputs False.

2. Numeric Types: Numerical types have truth values. Examples of these include integers and floats. Any number greater than zero is regarded as true, and zero as false. For example:

Output:

Integer Value: 10, Truth Value: True
Float Value: 3.14, Truth Value: True
Zero Value: 0, Truth Value: False

Explanation:

In the above code,

  1. We assign numerical values to variables integer_value, float_value, and zero_value (10, 3.14, and 0, respectively).
  2. Using the bool() function, we determine the truth values of these variables (integer_truth, float_truth, and zero_truth).
  3. Then, we print the original values and their corresponding truth values.

3. Sequences (Strings, Lists, Tuples, etc.): Sequences that are not empty are regarded as true, whereas those that are empty are regarded as false. For example:

Output:

Non-empty String: Hello, Truth Value: True
Empty String: , Truth Value: False
Non-empty List: [1, 2, 3], Truth Value: True
Empty List: [], Truth Value: False
Non-empty Tuple: (1, 2, 3), Truth Value: True
Empty Tuple: (), Truth Value: False

Explanation:

In the above code,

  1. We define various sequences, including non-empty and empty strings, lists, and tuples.
  2. We then use the bool() function in the code to check the truthiness of these sequences and print their original values along with their truth values.

4. Mappings (Dictionaries): A dictionary that is not empty is regarded as truthful, whereas one that is empty is regarded as false. For example:

Output:

Non-empty Dictionary: {'key': 'value'}, Truth Value: True
Empty Dictionary: {}, Truth Value: False

Explanation:

In the above code block,

  1. We define a non-empty dictionary (non_empty_dict) with a key-value pair and an empty dictionary (empty_dict).
  2. The code then uses the bool() function to check the truthiness of these dictionaries and prints their original values along with their truth values.
  3. This code, therefore, demonstrates that a non-empty dictionary evaluates to True while an empty dictionary evaluates to False.

5. Custom Objects: By using the __bool__ or __len__ methods, custom objects can specify their truth value. The item is by default regarded as truthy if neither is declared. For example:

Output:

True
False

Explanation:

In the above code block-

  1. We define two classes, TruthyObject and FalsyObject, both of which have a __bool__ method that determines their truth value.
  2. TruthyObject's __bool__ method always returns True and FalsyObject's __bool__ method always returns False.
  3. Then, we use the bool() function to check the truth values of instances of these classes and print the results.
  4. This demonstrates how custom classes in Python may specify how they behave for truth values.

6. Logical Operations: Depending on the truth value, the logical operations (and, or, not) return one of the operands. For example:

Output:

Logical AND: True and False is False
Logical OR: True or False is True
Logical NOT of True is False
Logical NOT of False is True

Explanation:

In the above code block-

  1. We define two operands, operand1 and operand2, with boolean values (True and False).
  2. Then, we perform logical operations on these operands: logical AND, logical OR, and logical NOT.
    • result_and is True only if both operand1 and operand2 are True, otherwise it is False.
    • result_or is True if at least one of operand1 or operand2 is True, otherwise it is False.
    • result_not_operand1 is the logical NOT of operand1, which is True if operand1 is False, and vice versa.
    • result_not_operand2 is the logical NOT of operand2, which is True if operand2 is False, and vice versa.
  3. Finally, we print the results of these logical operations.

You can build more expressive and logical code by being able to foresee and influence how Python evaluates truth values by being aware of these processes. When the goal is not immediately evident, it is usually a good idea to utilize boolean comparisons since explicit is preferable to implicit.

Final Note On How AND & OR Python Logical Operators Work

The logical operators AND and OR in Python are fundamental and indispensable tools for combining and evaluating Boolean expressions within conditional statements. Understanding how these operators work is crucial for writing effective and expressive code.

Python Logical AND Operator (and)

The AND operator returns True only if all the individual conditions it combines are True. If any one of the conditions is False, the entire expression is evaluated as False. This means that all conditions must be satisfied for the overall expression to be considered True.

Procedure for Evaluation:

  • The AND operator returns True only if all the conditions it combines are True.
  • If any of the conditions is false, the entire expression evaluates to be false.
  • It requires all conditions to be satisfied for the overall expression to be considered True.

Example:

Output:

True

Explanation: In this example, both conditions (x > 0) and (y < 20) are True, so the overall result is True.

2. Logical OR (or):

Conversely, the OR operator returns True if at least one of the individual conditions it combines is True. It evaluates to False only if all the conditions are False. This means that any one True condition is sufficient for the overall expression to be considered True.

Evaluation Procedure:

  • The OR operator returns True if at least one of the conditions it combines is True.
  • It evaluates to False only if all the conditions are False.
  • The OR operator can be used to create conditions where only one of the multiple conditions needs to be True for the entire expression to be True.

 Example: 

Output:

True

Explanation: Here, the condition (b < 25) is False, even though (a > 10) is True. Since at least one condition is True, the overall result is True.

Conclusion

In conclusion, Python logical operators play a fundamental role in shaping the logical flow of programs and decision-making processes within a program. They allow developers to express complex conditions and control the execution of their code snippet based on the truth values of boolean expressions. The AND operator requires both operands to be True for the overall expression to be True, while the OR operator needs at least one operand to be True. On the other hand, the NOT operator negates the boolean value of its operand.

Combining these logical operators enables developers to create intricate conditional statements, making their code more flexible and robust. It is essential to understand short-circuit evaluation, a feature of logical operators in Python, where the second operand is only evaluated if necessary, optimizing performance and preventing unnecessary computations. By mastering Python logical operators, programmers can enhance the clarity and efficiency of their code, leading to more maintainable and readable applications.

Frequently Asked Questions

Q. What is == and != in Python?

The equality operator in Python is represented as ==. It's employed to compare two values and determine whether they are equal. The expression evaluates to True if the values on both sides of the operator are the same and to False otherwise. It can be explained with the following snippet:

5 == 5 # Evaluates to True because 5 is equal to 5

Conversely, the inequality operator is represented by !=. It is used to check whether two values are not equal. The expression evaluates to True if the values vary and to False if they are equal. It can be explained with the following snippet:

5 != 10 # Evaluates to True because 5 is not equal to 10

So, in summary, the equals to (==) operator checks for equality, while the not equal to (!=) operator checks for inequality.

Q. What is %= in Python?

The equation a = a % b can be shortened with the Python operator a %= b. This is a compound assignment operator that applies the modulus operation to both a and b and then returns the result to a. The remainder of dividing a by b is determined by the modulus operation. As an illustration, consider this:

Output:

1

Explanation:

In this example, x starts at 10, and the value of x is updated to reflect the remaining amount of x divided by y following the operation x %= y. This is because 10% 3 equals 1, and the %= operator is used to allocate the result back to x.

Q. What is 8 % 3 in Python?

The expression uses the modulo operator (%). It performs the modulus operation where the left operand (8) is divided by the right operand (3), and the residual is calculated. Thus, in Python:

result = 8 % 3
print(result)
#The output will be 2

Explanation:

This is because 8 divided by 3 is 2 with a remainder of 2. Therefore, the result of 8 % 3 is 2

Q. Is ++ allowed in Python?

No, Python does not support the increment operator, i.e., ++. The ++ operator is not available in Python to increase a variable by 1. For incrementing, you would instead use the += operator. As an illustration, consider the following:

x = 5
x += 1 # Increment x by 1
print(x)

#The output will be 6

Explanation:

This is due to the fact that x starts at 5 and is subsequently increased by 1 via the += operator. As a result, x takes on the value 6, which is printed.

Q. What are logical operators and bitwise operators in Python?

In Python, many operations on binary integers and boolean values are carried out using two types of operators, i.e., bitwise operators and logical operators.

Logical operators: These are used to conduct logical conditions /operations on boolean variables. Common Python logical operators include:

  1. and: If both operands are True, then returns True.
  2. or: If at least one operand is True, returns True.
  3. not: Returns False in the case of a True operand and True in the case of a False operand.

Example:

x = True
y = False

print(x and y) # False
print(x or y) # True
print(not x) # False

Bitwise Operators: These operators work with the discrete bits that make up binary numbers. They are frequently employed in low-level programming and other scenarios requiring direct manipulation of binary data. In Python, the bitwise operators are:

  1. Bitwise AND (&): Executes an AND operation bitwise.
  2. Bitwise OR (|): Executes a bitwise OR procedure.
  3. Bitwise XOR (^): Executes an exclusive OR bitwise XOR operation.
  4. Bitwise NOT (~): Reverses the binary number's bits.
  5. Left Shift (<<): Shifts the bits of a binary number to the left.
  6. Right Shift (>>): Shifts the bits of a binary number to the right.

Example:

Q. What does 3 dots mean in Python?

The three dots (...) are referred to as the Ellipsis literal in Python. The ellipsis has several applications and is frequently used as a placeholder in programming. The three dots (...) are a flexible and powerful tool that may be utilized in type hinting, multidimensional array representation, and slicing. The context in which they are employed determines their exact meaning. Typical applications include the following:

  • Slice Notation: In slice notation, the ellipsis can be used to express a wide range when working with multidimensional objects or arrays. It means 'and so on' or 'omitted' in the context of indexing.

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_list[::2]) # Output: [1, 3, 5, 7, 9]

Ellipsis (...) can be used to succinctly describe the step of 2 in the slice indicated by the (::2) in the example above.

  • Numpy and Other Libraries: The Ellipsis is used in libraries such as NumPy to indicate multiple colons in higher-dimensional array indexing.

import numpy as np
my_array = np.random.rand(3, 3, 3)
print(my_array[..., 0]) # Selects all elements along the last axis with index 0

Here, the shortcut... is used to indicate the number of colons required to access all dimensions other than the one that is designated.

  • PEP 484 Type Hints: In type hinting, the 'Any' type is represented by the ellipsis.

def my_function(param: ...) -> ...:
# Function implementation

When you wish to say that the type is unknown or might be any type, you use this syntax.

Q. Which is not a logical operator?

The arithmetic operator is not a logical operator. Arithmetic operators perform mathematical operations, such as addition, subtraction, multiplication, and division. In Python, common arithmetic operators include addition (+), subtraction (-), multiplication (*), division (/), and others.

On the other hand, logical operators include AND, OR, and NOT. These Python logical operators are used to combine or manipulate boolean expressions in conditions and control flow statements.

Want to expand your understanding of Python concepts? Do read the following:

  1. 12 Ways To Compare Strings In Python Explained (With Examples)
  2. Python IDLE | The Ultimate Beginner's Guide With Images & Codes!
  3. Python String.Replace() And 8 Other Ways Explained (+Examples)
  4. How To Reverse A String In Python? 10 Easy Ways With Examples!
  5. Flask vs Django: Understand Which Python Framework You Should Choose
Shivani Goyal
Manager, Content

An economics graduate with a passion for storytelling, I thrive on crafting content that blends creativity with technical insight. At Unstop, I create in-depth, SEO-driven content that simplifies complex tech topics and covers a wide array of subjects, all designed to inform, engage, and inspire our readers. My goal is to empower others to truly #BeUnstoppable through content that resonates. When I’m not writing, you’ll find me immersed in art, food, or lost in a good book—constantly drawing inspiration from the world around me.

TAGS
Engineering Computer Science
Updated On: 5 Mar'24, 04:22 PM IST