Consider below statements in Python 2.7
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++)
The real floor division operator is “//”. It returns floor value for both integer and floating point arguments.
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
- Check the equality of integer division and math.floor() of Regular division in Python
- Benefits of Double Division Operator over Single Division Operator in Python
- Tuple Division in Python
- Python | K Division Grouping
- Python - Dictionary Values Division
- Python Operators
- Python Bitwise Operators
- Python Logical Operators with Examples
- Inplace vs Standard Operators in Python
- Logical Operators on String in Python
- Increment and Decrement Operators in Python
- Chaining comparison operators in Python
- Python Membership and Identity Operators | in, not in, is, is not
- Python | Splitting operators in String
- Merging and Updating Dictionary Operators in Python 3.9
- Python | Solve given list containing numbers and arithmetic operators
- Inplace Operators in Python | Set 2 (ixor(), iand(), ipow(),…)
- Inplace Operators in Python | Set 1 (iadd(), isub(), iconcat()...)
- Division without using '/' operator
- Minimum steps to convert X to Y by repeated division and multiplication