<< Back to man.ChinaUnix.net

A Byte of Python

Operators

We will briefly take a look at the operators and their usage:

Tip

You can evaluate the expressions given in the examples using the interpreter interactively. For example, to test the expression 2 + 3, use the interactive Python interpreter prompt:

			
>>> 2 + 3
5
>>> 3 * 5
15
>>>
			
			

Table 5.1. Operators and their usage

OperatorNameExplanationExamples
+Plus Adds the two objects 3 + 5 gives 8. 'a' + 'b' gives 'ab'.
-Minus Either gives a negative number or gives the subtraction of one number from the other -5.2 gives a negative number. 50 - 24 gives 26.
*Multiply Gives the multiplication of the two numbers or returns the string repeated that many times. 2 * 3 gives 6. 'la' * 3 gives 'lalala'.
**Power Returns x to the power of y 3 ** 4 gives 81 (i.e. 3 * 3 * 3 * 3)
/Divide Divide x by y 4/3 gives 1 (division of integers gives an integer). 4.0/3 or 4/3.0 gives 1.3333333333333333
//Floor Division Returns the floor of the quotient 4 // 3.0 gives 1.0
%Modulo Returns the remainder of the division 8%3 gives 2. -25.5%2.25 gives 1.5 .
<<Left Shift Shifts the bits of the number to the left by the number of bits specified. (Each number is represented in memory by bits or binary digits i.e. 0 and 1) 2 << 2 gives 8. - 2 is represented by 10 in bits. Left shifting by 2 bits gives 1000 which represents the decimal 8.
>>Right Shift Shifts the bits of the number to the right by the number of bits specified. 11 >> 1 gives 5 - 11 is represented in bits by 1011 which when right shifted by 1 bit gives 101 which is nothing but decimal 5.
&Bitwise AND Bitwise AND of the numbers 5 & 3 gives 1.
|Bit-wise OR Bitwise OR of the numbers 5 | 3 gives 7
^Bit-wise XOR 5 ^ 3 gives 6  
~Bit-wise invert The bit-wise inversion of x is -(x+1) ~5 gives -6.
<Less Than Returns whether x is less than y. All comparison operators return 1 for true and 0 for false. This is equivalent to the special variables True and False respectively. Note the capitalization of these variables' names. 5 < 3 gives 0 (i.e. False) and 3 < 5 gives 1 (i.e. True). Comparisons can be chained arbitrarily: 3 < 5 < 7 gives True.
>Greater Than Returns whether x is greater than y 5 < 3 returns True. If both operands are numbers, they are first converted to a common type. Otherwise, it always returns False.
<=Less Than or Equal To Returns whether x is less than or equal to y x = 3; y = 6; x <= y returns True.
>=Greater Than or Equal To Returns whether x is greater than or equal to y x = 4; y = 3; x >= 3 returns True.
==Equal To Compares if the objects are equal x = 2; y = 2; x == y returns True. x = 'str'; y = 'stR'; x == y returns False. x = 'str'; y = 'str'; x == y returns True.
!=Not Equal To Compares if the objects are not equal x = 2; y = 3; x != y returns True.
notBoolean NOT If x is True, it returns False. If x is False, it returns True. x = True; not y returns False.
andBoolean AND x and y returns False if x is False, else it returns evaluation of y x = False; y = True; x and y returns False since x is False. In this case, Python will not evaluate y since it knows that the value of the expression will has to be false (since x is False). This is called short-circuit evaluation.
orBoolean OR If x is True, it returns True, else it returns evaluation of y x = True; y = False; x or y returns True. Short-circuit evaluation applies here as well.