Difference between ‘and’ and ‘&’ in Python
Last Updated :
10 Aug, 2024
and is a Logical AND that returns True if both the operands are true whereas ‘&‘ is a bitwise operator in Python that acts on bits and performs bit-by-bit operations.
Note: When an integer value is 0, it is considered as False otherwise True when used logically.
and in Python
The ‘and‘ keyword in Python is used in the logical operations. It is used to combine two logical statements, it returns TRUE if both are correct and FALSE if any of the statements is wrong.
Example:
Python
num1 = 5
num2 = 10
if num1>3 and num2<10:
print("both are correct")
else:
print ("one is wrong")
Output:
one is wrong
This is one of the examples of how to use and in Python. We have used to combine two conditions in if-statement. Since one of the statements is wrong, else statement was executed.
Read More on if-else Statements
& in Python
The ‘&‘ symbol is a bitwise AND operator in Python, it is also known as a bitwise AND operator. It operates on the bitwise representation of integers.
Example:
Python
num1 = 14
num2= 10
print (num1 & num2)
Output:
10
14 in binary is 1110 and 10 in binary is 1010, bitwise AND on these two will give us 1010 which is 10 in integers. This is how to use the & operator in Python.
Difference between ‘AND’ Operator and ‘&’ Symbol
From the above examples, you can see the clear difference between AND and & operators in Python. Let’s use these operators together to see the difference between them:
Example:
Python
# Python program to demonstrate
# the difference between and, &
# operator
a = 14
b = 4
print(b and a) # print_stat1
print(b & a) # print_stat2
This is because ‘and‘ tests whether both expressions are logically True while ‘&’ performs bitwise AND operation on the result of both statements. In print statement 1, the compiler checks if the first statement is True. If the first statement is False, it does not check the second statement and returns False immediately. This is known as “lazy evaluation”. If the first statement is True then the second condition is checked and according to the rules of AND operation, True is the result only if both the statements are True. In the case of the above example, the compiler checks the 1st statement which is True as the value of b is 4, then the compiler moves towards the second statement which is also True because the value of a is 14. Hence, the output is also 14.
In print statement 2, the compiler is doing bitwise & operation of the results of statements. Here, the statement is getting evaluated as follows:
The value of 4 in binary is 0000 0100 and the value of 14 in binary is 0000 1110. On performing bitwise and we get –
00000100 & 00001110 = 00000100
Hence, the output is 4. To elaborate on this, we can take another example.
Example:
Python
# Python program to demonstrate
# the difference between and, &
# operator
a, b = 9, 10
print(a & b) # line 1
print(a and b) # line 2
The first line is performing bitwise AND on a and b and the second line is evaluating the statement inside print and printing answer. In line 1, a = 1001, b = 1010, Performing & on a and b, gives us 1000 which is the binary value of decimal value 8.
In line 2, the expression ‘a and b’ first evaluates a; if a is False (or Zero), its value is returned immediately because of the “lazy evaluation” explained above, else, b is evaluated. If b is also non-zero then the resulting value is returned. The value of b is returned because it is the last value where checking ends for the truthfulness of the statement. Hence the use of boolean and ‘and’ is recommended in a loop.
This is the main difference between AND and & operator in Python. Both operators appear to be the same, but they have very different functionalities in Python Programming language. Practice with each operator to completely grasp their working in Python.
Read More on Python Operators
Similar Reads:
Similar Reads
Python Operators
In Python programming, Operators in general are used to perform operations on values and variables. These are standard symbols used for logical and arithmetic operations. In this article, we will look into different types of Python operators. OPERATORS: These are the special symbols. Eg- + , * , /,
6 min read
Precedence and Associativity of Operators in Python
In Python, operators have different levels of precedence, which determine the order in which they are evaluated. When multiple operators are present in an expression, the ones with higher precedence are evaluated first. In the case of operators with the same precedence, their associativity comes int
4 min read
Python Arithmetic Operators
Python Arithmetic Operators
Python operators are fundamental for performing mathematical calculations. Arithmetic operators are symbols used to perform mathematical operations on numerical values. Arithmetic operators include addition (+), subtraction (-), multiplication (*), division (/), and modulus (%). OperatorDescriptionS
5 min read
Difference between / vs. // operator in Python
In Python, both / and // are used for division, but they behave quite differently. Let's dive into what they do and how they differ with simple examples. / Operator (True Division)The / operator performs true division.It always returns a floating-point number (even if the result is a whole number).I
2 min read
Python - Star or Asterisk operator ( * )
The asterisk (*) operator in Python is a versatile tool used in various contexts. It is commonly used for multiplication, unpacking iterables, defining variable-length arguments in functions, and more. Uses of the asterisk ( * ) operator in PythonMultiplicationIn Multiplication, we multiply two numb
3 min read
What does the Double Star operator mean in Python?
The ** (double star)operator in Python is used for exponentiation. It raises the number on the left to the power of the number on the right. For example: 2 ** 3 returns 8 (since 2³ = 8)It is one of the Arithmetic Operator (Like +, -, *, **, /, //, %) in Python and is also known as Power Operator. Pr
2 min read
Division Operators in Python
Division Operators allow you to divide two numbers and return a quotient, i.e., the first number or number at the left is divided by the second number or number at the right and returns the quotient. There are two types of division operators: Float divisionInteger division( Floor division)When an in
5 min read
Modulo operator (%) in Python
Modulo operator (%) in Python gives the remainder when one number is divided by another. Python allows both integers and floats as operands, unlike some other languages. It follows the Euclidean division rule, meaning the remainder always has the same sign as the divisor. It is used in finding even/
4 min read