Consider below statements in Python 2.7
# A Python 2.7 program to demonstrate use of # "/" for integers print 5/2 print -5/2
First output is fine, but the second one may be surprising if we are coming Java/C++ world. In Python 2.7, the “/” operator works as a floor division for integer arguments. However, the operator / returns a float value if one of the arguments is a float (this is similar to C++)
# A Python 2.7 program to demonstrate use of # "/" for floating point numbers print 5.0/2 print -5.0/2
The real floor division operator is “//”. It returns floor value for both integer and floating point arguments.
# A Python 2.7 program to demonstrate use of # "//" for both integers and floating points print 5//2 print -5//2 print 5.0//2 print -5.0//2
2 -3 2.0 -3.0
How about Python 3?
Here is another surprise, In Python 3, ‘/’ operator does floating point division for both int and float arguments.
# A Python 3 program to demonstrate use of # "/" for both integers and floating points print (5/2) print (-5/2) print (5.0/2) print (-5.0/2)
2.5 -2.5 2.5 -2.5
Behavior of “//” is same Python 2.7 and Python 3. See this for example.
This article is contributed by Arpit Agrawal. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
- Any & All in Python
- Important differences between Python 2.x and Python 3.x with examples
- Python | end parameter in print()
- Inplace vs Standard Operators in Python
- How to check if a string is a valid keyword in Python?
- Python | Count the Number of matching characters in a pair of string
- Python | How and where to apply Feature Scaling?
- Testing in Python using doctest module
- Python | Simple GUI calculator using Tkinter
- Python | Program to accept the strings which contains all vowels