Basic Operators

advertisement
Basic Operators
What is an operator?
• using expression 4 + 5 is equal to 9.
• Here, 4 and 5 are called operands and + is the operator
• Python language supports the following types of
operators.
1. Arithmetic Operators
2. Comparison (i.e., Relational) Operators
3. Assignment Operators
4. Logical Operators
5. Bitwise Operators
6. Membership Operators
7. Identity Operators
Arithmetic Operators
Assume variable a holds 10 and variable b holds 20
Operator Description
Example
+
a + b will give 30
*
/
%
Addition - Adds values on either side of the
operator
Subtraction - Subtracts right hand operand
from left hand operand
Multiplication - Multiplies values on either
side of the operator
a - b will give -10
a * b will give 200
Division - Divides left hand operand by right b / a will give 2
hand operand
Modulus - Divides left hand operand by right b % a will give 0
hand operand and returns remainder
**
Exponent - Performs exponential (power)
calculation on operators
a**b will give 10 to the power 20
//
Floor Division - The division of operands
9//2 is equal to 4 and 9.0//2.0 is equal to 4.0
where the result is the quotient in which the
digits after the decimal point are removed.
Example - Arithmetic Operators
a = 21; b =
c = a + b
print "Line
c = a - b
print "Line
c = a * b
print "Line
c = a / b
print "Line
c = a % b
print "Line
a = 2
b = 3
c = a**b
print "Line
a = 10; b =
print "Line
10; c = 0
1 - Value of c is ", c
2 - Value of c is ", c
3 - Value of c is ", c
4 - Value of c is ", c
5 - Value of c is ", c
6 - Value of c is ", c
5; c = a//b
7 - Value of c is ", c
Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 8
Line 7 - Value of c is 2
Comparison Operators
Assume variable a holds 10 and variable b holds 20
Operator Description
Example
==
Checks if the value of two operands are equal or (a == b) is not true.
not, if yes then condition becomes true.
!=
Checks if the value of two operands are equal or
not, if values are not equal then condition
becomes true.
Checks if the value of two operands are equal or
not, if values are not equal then condition
becomes true.
Checks if the value of left operand is greater than
the value of right operand, if yes then condition
becomes true.
Checks if the value of left operand is less than the
value of right operand, if yes then condition
becomes true.
Checks if the value of left operand is greater than
or equal to the value of right operand, if yes then
condition becomes true.
Checks if the value of left operand is less than or
equal to the value of right operand, if yes then
condition becomes true.
<>
>
<
>=
<=
(a != b) is true.
(a <> b) is true. This is similar to != operator.
(a > b) is not true.
(a < b) is true.
(a >= b) is not true.
(a <= b) is true.
Example 1 - Comparison Operators
a = 21; b = 10; c = 0
if ( a == b ):
print "Line 1 - a is
else:
print "Line 1 - a is
if ( a != b ):
print "Line 2 - a is
else:
print "Line 2 - a is
if ( a <> b ):
print "Line 3 - a is
else:
print "Line 3 - a is
if ( a < b ):
print "Line 4 - a is
else:
print "Line 4 - a is
equal to b"
not equal to b"
not equal to b"
equal to b"
not equal to b"
equal to b"
less than b"
not less than b"
Example 2 - Comparison Operators
a = 21; b = 10; c = 0
if ( a > b ):
print "Line 5 - a is
else:
print "Line 5 - a is
a = 5;
b = 20;
if ( a <= b ):
print "Line 6 - a is
else:
print "Line 6 - a is
if ( b >= a ):
print "Line 7 - b is
else:
print "Line 7 - b is
greater than b"
not greater than b"
either less than or equal to
b"
neither less than nor equal to
either greater than
neither greater than
b"
or equal to b"
nor equal to b"
output
•
•
•
•
•
•
Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 equal to
• Line 7 or equal
a
a
a
a
a
a
is
is
is
is
is
is
b
b is
to b
not equal to b
not equal to b
not equal to b
not less than b
greater than b
either less than or
either greater than
Assignment Operators:
Assume variable a holds 10 and variable b holds 20
Operator Description
=
+=
-=
*=
/=
%=
**=
//=
Example
Simple assignment operator, Assigns values from c = a + b will assigne value of a + b into c
right side operands to left side operand
Add AND assignment operator, It adds right
c += a is equivalent to c = c + a
operand to the left operand and assign the result
to left operand
Subtract AND assignment operator, It subtracts c -= a is equivalent to c = c - a
right operand from the left operand and assign
the result to left operand
Multiply AND assignment operator, It multiplies c *= a is equivalent to c = c * a
right operand with the left operand and assign
the result to left operand
Divide AND assignment operator, It divides left c /= a is equivalent to c = c / a
operand with the right operand and assign the
result to left operand
Modulus AND assignment operator, It takes
c %= a is equivalent to c = c % a
modulus using two operands and assign the
result to left operand
Exponent AND assignment operator, Performs
c **= a is equivalent to c = c ** a
exponential (power) calculation on operators
and assign value to the left operand
Floor Dividion and assigns a value, Performs floor c //= a is equivalent to c = c // a
division on operators and assign value to the left
operand
Example Assignment
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
a = 21; b =
c = a + b
print "Line
c += a
print "Line
c *= a
print "Line
c /= a
print "Line
c = 2
c %= a
print "Line
c **= a
print "Line
c //= a
print "Line
10; c = 0
1 - Value of c is ", c
2 - Value of c is ", c
3 - Value of c is ", c
4 - Value of c is ", c
5 - Value of c is ", c
6 - Value of c is ", c
7 - Value of c is ", c
Line 1 - Value of c is
Line 2 - Value of c is
Line 3 - Value of c is
Line 4 - Value of c is
Line 5 - Value of c is
Line 6 - Value of c is
Line 7 - Value of c is
31
52
1092
52
2
2097152
99864
Bitwise Operator
• Bitwise operator works on bits and perform bit by
bit operation. Assume if a = 60; and b = 13; Now
in binary format they will be as follows:
• a = 0011 1100
• b = 0000 1101
• ----------------• a&b = 0000 1100
• a|b = 0011 1101
• a^b = 0011 0001
• ~a = 1100 0011
Bitwise Operator
Operator Description
Example
&
Binary AND Operator copies a bit to the
result if it exists in both operands.
(a & b) will give 12 which is 0000 1100
|
Binary OR Operator copies a bit if it exists in (a | b) will give 61 which is 0011 1101
eather operand.
Binary XOR Operator copies the bit if it is set (a ^ b) will give 49 which is 0011 0001
in one operand but not both.
^
~
Binary Ones Complement Operator is unary
and has the efect of 'flipping' bits.
(~a ) will give -61 which is 1100 0011 in 2's
complement form due to a signed binary number.
<<
Binary Left Shift Operator. The left operands a << 2 will give 240 which is 1111 0000
value is moved left by the number of bits
specified by the right operand.
>>
Binary Right Shift Operator. The left operands a >> 2 will give 15 which is 0000 1111
value is moved right by the number of bits
specified by the right operand.
Example - Bitwise
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
a = 60
b = 13
c = 0
c = a & b;
print "Line
c = a | b;
print "Line
c = a ^ b;
print "Line
c = ~a;
print "Line
c = a << 2;
print "Line
c = a >> 2;
print "Line
# 60 = 0011 1100
# 13 = 0000 1101
1 2 3 -
4 5 6 -
# 12 = 0000 1100
Value of c is ", c
# 61 = 0011 1101
Value of c is ", c
# 49 = 0011 0001
Value of c is ", c
# -61 = 1100 0011
Value of c is ", c
# 240 = 1111 0000
Value of c is ", c
# 15 = 0000 1111
Value of c is ", c
Line 1 - Value of c is
Line 2 - Value of c is
Line 3 - Value of c is
Line 4 - Value of c is
Line 5 - Value of c is
Line 6 - Value of c is
12
61
49
-61
240
15
Logical Operators
Assume variable a holds 10 and variable b holds 20
Opera Description
tor
and Called Logical AND operator. If
both the operands are true then
then condition becomes true.
or
not
Example
(a and b) is true.
Called Logical OR Operator. If any (a or b) is true.
of the two operands are non zero
then then condition becomes
true.
Called Logical NOT Operator. Use not(a and b) is false.
to reverses the logical state of its
operand. If a condition is true
then Logical NOT operator will
make false.
Example 1 - Logical
a = 10; b = 20; c = 0
if ( a and b ):
print "Line 1 - a and b are true"
else:
print "Line 1 - Either a is not true or b is not true"
if ( a or b ):
print "Line 2 - Either a is true or b is true or both
are true"
else:
print "Line 2 - Neither a is true nor b is true"
• Line 1 - a and b are true
• Line 2 - Either a is true or b is true or both are true
Example 2 - Logical
a = 0; b = 20; c = 0
if ( a and b ):
print "Line 3 - a and b are true"
else:
print "Line 3 - Either a is not true or b is not true"
if ( a or b ):
print "Line 4 - Either a is true or b is true or both are
true"
else:
print "Line 4 - Neither a is true nor b is true"
if not( a and b ):
print "Line 5 - Either a is not true or b is not true"
else:
print "Line 5 - a and b are true“
• Line 3 - Either a is not true or b is not true
• Line 4 - Either a is true or b is true or both are true
• Line 5 - Either a is not true or b is not true
Membership Operators
• Python has membership operators, which test
for membership in a sequence, such as strings,
lists, or tuples.
• There are two membership operators
explained below:
Operator Description
Example
in
Evaluates to true if it finds a variable
in the specified sequence and false
otherwise.
x in y, here in results in a 1 if x is a member
of sequence y.
not in
Evaluates to true if it does not finds a x not in y, here not in results in a 1 if x is not
variable in the specified sequence
a member of sequence y.
and false otherwise.
Example Membership
a = 10; b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "Line 1 - a is in the
else:
print "Line 1 - a is not in
if ( b not in list ):
print "Line 2 - b is not in
else:
print "Line 2 - b is in the
a = 2
if ( a in list ):
print "Line 3 - a is in the
else:
print "Line 3 - a is not in
• Line 1 - a is not in the given list
• Line 2 - b is not in the given list
• Line 3 - a is in the given list
given list"
the given list"
the given list"
given list"
given list"
the given list“
Identity Operators
Identity operators compare the memory locations of two objects. There are
two Identity operators explained below:
Operator Description
Example
is
Evaluates to true if the variables on x is y, here is results in 1 if id(x) equals
either side of the operator point to id(y).
the same object and false
otherwise.
is not
Evaluates to false if the variables on x is not y, here is not results in 1 if id(x) is
either side of the operator point to not equal to id(y).
the same object and true
otherwise.
Identity – Example
a = 20; b = 20
if ( a is b ):
print "Line 1 - a and
else:
print "Line 1 - a and
if ( id(a) == id(b) ):
print "Line 2 - a and
else:
print "Line 2 - a and
b = 30
if ( a is b ):
print "Line 3 - a and
else:
print "Line 3 - a and
if ( a is not b ):
print "Line 4 - a and
else:
print "Line 4 - a and
b same "
b not same "
b same "
b not same "
b same "
b not same "
b not same "
b same “
Line 1 - a and b same
Line 2 - a and b same
Line 3 - a and b not same
Line 4 - a and b not same
Operators Precedence 1
The following table lists all operators from highest precedence to lowest.
Operator
**
Description
Exponentiation (raise to the power)
~+-
Ccomplement, unary plus and minus (method names
for the last two are +@ and -@)
* / % //
Multiply, divide, modulo and floor division
+>> <<
&
Addition and subtraction
Right and left bitwise shift
Bitwise 'AND'
Operators Precedence 2
The following table lists all operators from highest precedence to lowest.
Operator
&
^|
Description
Bitwise 'AND'
Bitwise exclusive `OR' and regular `OR'
<= < > >=
<> == !=
= %= /= //= -= += *= **=
is is not
in not in
not or and
Comparison operators
Equality operators
Assignment operators
Identity operators
Membership operators
Logical operators
Example - Operators Precedence
a = 20; b = 10; c = 15; d = 5; e = 0
e = (a + b) * c / d
#( 30 * 15 ) / 5
print "Value of (a + b) * c / d is ", e
e = ((a + b) * c) / d
# (30 * 15 ) / 5
print "Value of ((a + b) * c) / d is ", e
e = (a + b) * (c / d);
# (30) * (15/5)
print "Value of (a + b) * (c / d) is ", e
e = a + (b * c) / d;
# 20 + (150/5)
print "Value of a + (b * c) / d is ", e
output
•
•
•
•
Value of (a + b) * c / d is 90
Value of ((a + b) * c) / d is 90
Value of (a + b) * (c / d) is 90
Value of a + (b * c) / d is 50
Download