#
Python 3, an Illustrated Tour Transcripts

Chapter: Numbers

Lecture: Division

Login or
purchase this course
to watch this video and the rest of the course contents.

0:00
In this video we're going to talk about integer division.

0:03
This came out in Python 3 pep 238 introduced it.

0:06
In Python 2 when you divided a number by another number

0:11
if you divided floats, you'd get back a float as a result,

0:14
but for integers, you would get back an integer as a result.

0:17
And this is called floor division.

0:19
Guido writes in his Python history blog about how this was a mistake

0:23
and Python 3 attempted to rectify this

0:27
by changing the behavior of the division operator.

0:30
So in Python 3 slash does what's called true division

0:35
there's a __truediv__

0:38
and double slash does floor division __floordiv__

0:41
So if I divide 2 by 3 in Python 3, I get point .6666,

0:46
and if I say 2//3 then I get that floor division and I get back 0 as a result.

0:55
Note that floor division also works on floats

0:58
if I say 2.0 divided by 3.1, I get .66,

1:01
but if I do floor division on those numbers, I get 0.0

1:05
and because everything is an object in Python,

1:07
if we want to we can go through the steps

1:09
to show that you can invoke __truediv__ on an integer and __floordiv__ as well.

1:16
Now again, you typically don't do this, we typically don't call the dunder methods

1:20
but they're there because in Python everything is an object

1:22
and you can call the object methods if you want to.

1:25
Quick summary, in Python 3 when you divide two numbers,

1:29
you will get a float as a result.

1:32
If you don't want a float then use a double divide

1:35
to do what's called floor division.