From 76350cf895cfe572329ec0a2bf68ea643f46ba5a Mon Sep 17 00:00:00 2001 From: Alexander Hess Date: Mon, 14 Oct 2019 18:27:42 +0200 Subject: [PATCH] Add section on the numeric tower --- 05_numbers.ipynb | 913 ++++++++++++++++++++++++++++++++++++++++++++- static/numbers.png | Bin 0 -> 90958 bytes 2 files changed, 903 insertions(+), 10 deletions(-) create mode 100644 static/numbers.png diff --git a/05_numbers.ipynb b/05_numbers.ipynb index ccb1412..df7598c 100644 --- a/05_numbers.ipynb +++ b/05_numbers.ipynb @@ -92,7 +92,7 @@ { "data": { "text/plain": [ - "139927641322704" + "140218620396752" ] }, "execution_count": 2, @@ -2115,7 +2115,7 @@ { "data": { "text/plain": [ - "139927641500360" + "140218620574432" ] }, "execution_count": 63, @@ -3985,7 +3985,7 @@ } }, "source": [ - "As the exact implementation of floats may vary and be dependent on a particular Python installation, we look up the [float_info](https://docs.python.org/3/library/sys.html#sys.float_info) attribute in the [sys](https://docs.python.org/3/library/sys.html) module in the [standard library](https://docs.python.org/3/library/) to check the details. Usually, this is not necessary." + "As the exact implementation of floats may vary and be dependent on a particular Python installation, we look up the [float_info](https://docs.python.org/3/library/sys.html#sys.float_info) attribute in the [sys](https://docs.python.org/3/library/sys.html) module in the [standard library](https://docs.python.org/3/library/index.html) to check the details. Usually, this is not necessary." ] }, { @@ -4044,7 +4044,7 @@ } }, "source": [ - "The [decimal](https://docs.python.org/3/library/decimal.html) module in the standard library provides a [Decimal](https://docs.python.org/3/library/decimal.html#decimal.Decimal) type that may be used to represent any real number to a user-defined level of precision: \"User-defined\" does *not* mean an infinite or \"exact\" precision! The `Decimal` type merely allows us to work with a number of bits *different* from the $64$ as specified for the `float` type and also to customize the rounding rules and some other settings.\n", + "The [decimal](https://docs.python.org/3/library/decimal.html) module in the [standard library](https://docs.python.org/3/library/index.html) provides a [Decimal](https://docs.python.org/3/library/decimal.html#decimal.Decimal) type that may be used to represent any real number to a user-defined level of precision: \"User-defined\" does *not* mean an infinite or \"exact\" precision! The `Decimal` type merely allows us to work with a number of bits *different* from the $64$ as specified for the `float` type and also to customize the rounding rules and some other settings.\n", "\n", "We import the `Decimal` type and also the [getcontext()](https://docs.python.org/3/library/decimal.html#decimal.getcontext) function from the [decimal](https://docs.python.org/3/library/decimal.html) module." ] @@ -4460,7 +4460,7 @@ } }, "source": [ - "To preserve the precision for more advanced mathematical functions, `Decimal` objects come with many methods bound on them. For example, [ln()](https://docs.python.org/3/library/decimal.html#decimal.Decimal.ln) and [log10()](https://docs.python.org/3/library/decimal.html#decimal.Decimal.log10) take the logarithm while [sqrt()](https://docs.python.org/3/library/decimal.html#decimal.Decimal.sqrt) calculates the square root. In general, the functions in the [math](https://docs.python.org/3/library/math.html) module in the [standard library](https://docs.python.org/3/library/) should only be used with `float` objects as they do *not* preserve precision." + "To preserve the precision for more advanced mathematical functions, `Decimal` objects come with many methods bound on them. For example, [ln()](https://docs.python.org/3/library/decimal.html#decimal.Decimal.ln) and [log10()](https://docs.python.org/3/library/decimal.html#decimal.Decimal.log10) take the logarithm while [sqrt()](https://docs.python.org/3/library/decimal.html#decimal.Decimal.sqrt) calculates the square root. In general, the functions in the [math](https://docs.python.org/3/library/math.html) module in the [standard library](https://docs.python.org/3/library/index.html) should only be used with `float` objects as they do *not* preserve precision." ] }, { @@ -4903,7 +4903,7 @@ } }, "source": [ - "If the numbers in an application can be expressed as [rational numbers](https://en.wikipedia.org/wiki/Rational_number) (i.e., the set $\\mathbb{Q}$), we may model them as a [Fraction](https://docs.python.org/3/library/fractions.html#fractions.Fraction) type from the [fractions](https://docs.python.org/3/library/fractions.html) module in the [standard library](https://docs.python.org/3/library/). As any fraction can always be formulated as the division of one integer by another, `Fraction` objects are inherently precise, just as `int` objects on their own. Further, we maintain the precision as long as we do not use them in a mathematical operation that could result in an irrational number (e.g., taking the square root).\n", + "If the numbers in an application can be expressed as [rational numbers](https://en.wikipedia.org/wiki/Rational_number) (i.e., the set $\\mathbb{Q}$), we may model them as a [Fraction](https://docs.python.org/3/library/fractions.html#fractions.Fraction) type from the [fractions](https://docs.python.org/3/library/fractions.html) module in the [standard library](https://docs.python.org/3/library/index.html). As any fraction can always be formulated as the division of one integer by another, `Fraction` objects are inherently precise, just as `int` objects on their own. Further, we maintain the precision as long as we do not use them in a mathematical operation that could result in an irrational number (e.g., taking the square root).\n", "\n", "We import the `Fraction` type from the [fractions](https://docs.python.org/3/library/fractions.html) module." ] @@ -5411,7 +5411,7 @@ { "data": { "text/plain": [ - "139927632267248" + "140218611341648" ] }, "execution_count": 173, @@ -6002,7 +6002,898 @@ } }, "source": [ - "The [cmath](https://docs.python.org/3/library/cmath.html) module in the [standard library](https://docs.python.org/3/library/) implements many of the functions from the [math](https://docs.python.org/3/library/math.html) module such that they work with complex numbers." + "The [cmath](https://docs.python.org/3/library/cmath.html) module in the [standard library](https://docs.python.org/3/library/index.html) implements many of the functions from the [math](https://docs.python.org/3/library/math.html) module such that they work with complex numbers." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## The Numeric Tower" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "Analogous to the discussion of containers and iterables in [Chapter 4](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration.ipynb#Containers-vs.-Iterables), we contrast the *concrete* numeric data types in this chapter with the *abstract* ideas behind [numbers in mathematics](https://en.wikipedia.org/wiki/Number).\n", + "\n", + "The figure below summarizes five *major* sets of [numbers in mathematics](https://en.wikipedia.org/wiki/Number) as we know them from high school:\n", + "\n", + "- $\\mathbb{N}$: [Natural numbers](https://en.wikipedia.org/wiki/Natural_number) are all non-negative count numbers, e.g., $0, 1, 2, ...$\n", + "- $\\mathbb{Z}$: [Integers](https://en.wikipedia.org/wiki/Integer) are all numbers *without* a fractional component, e.g., $-1, 0, 1, ...$\n", + "- $\\mathbb{Q}$: [Rational numbers](https://en.wikipedia.org/wiki/Rational_number) are all numbers that can be expressed as a quotient of two integers, e.g., $-\\frac{1}{2}, 0, \\frac{1}{2}, ...$\n", + "- $\\mathbb{R}$: [Real numbers](https://en.wikipedia.org/wiki/Real_number) are all numbers that can be represented as a distance along a line (negative means \"reversed\"), e.g., $\\sqrt{2}, \\pi, \\text{e}, ...$\n", + "- $\\mathbb{C}$: [Complex numbers](https://en.wikipedia.org/wiki/Complex_number) are all numbers of the form $a + b\\textbf{i}$ where $a$ and $b$ are real numbers and $\\textbf{i}$ is the [imaginary number](https://en.wikipedia.org/wiki/Imaginary_number), e.g., $0, \\textbf{i}, 1 + \\textbf{i}, ...$\n", + "\n", + "In the listed order, the five sets are perfect subsets and $\\mathbb{C}$ is the largest set (to be precise, all sets are infinite, but they still have a different number of elements)." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "The *concrete* data types introduced in this chapter are all *imperfect* models of *abstract* mathematical ideas.\n", + "\n", + "The `int` and `Fraction` types are the models \"closest\" to the idea they implement: Whereas $\\mathbb{Z}$ and $\\mathbb{Q}$ are, by definition, infinite, every computer runs out of bits when representing sufficiently large integers or fractions with a sufficiently large number of decimals. However, within a system-dependent minimum and maximum integer range, we can model an integer or fraction without any loss in precision.\n", + "\n", + "For the other types, in particular, the `float` type, the implications of their imprecision are discussed in detail above.\n", + "\n", + "The abstract concepts behind the four outer-most mathematical sets are part of Python since [PEP 3141](https://www.python.org/dev/peps/pep-3141/) in 2007. The [numbers](https://docs.python.org/3/library/numbers.html) module in the [standard library](https://docs.python.org/3/library/index.html) defines what Pythonistas call the **numeric tower**, a collection of five **[abstract data types](https://en.wikipedia.org/wiki/Abstract_data_type)**, or **abstract base classes** as they are called in Python slang:\n", + "\n", + "- `numbers.Number`: \"any number\" (cf., [documentation](https://docs.python.org/3/library/numbers.html#numbers.Number))\n", + "- `numbers.Complex`: \"all complex numbers\" (cf., [documentation](https://docs.python.org/3/library/numbers.html#numbers.Complex))\n", + "- `numbers.Real`: \"all real numbers\" (cf., [documentation](https://docs.python.org/3/library/numbers.html#numbers.Real))\n", + "- `numbers.Rational`: \"all rational numbers\" (cf., [documentation](https://docs.python.org/3/library/numbers.html#numbers.Rational))\n", + "- `numbers.Integral`: \"all integers\" (cf., [documentation](https://docs.python.org/3/library/numbers.html#numbers.Integral))" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "import numbers" + ] + }, + { + "cell_type": "code", + "execution_count": 196, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['ABCMeta',\n", + " 'Complex',\n", + " 'Integral',\n", + " 'Number',\n", + " 'Rational',\n", + " 'Real',\n", + " '__all__',\n", + " '__builtins__',\n", + " '__cached__',\n", + " '__doc__',\n", + " '__file__',\n", + " '__loader__',\n", + " '__name__',\n", + " '__package__',\n", + " '__spec__',\n", + " 'abstractmethod']" + ] + }, + "execution_count": 196, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dir(numbers)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "As a reminder, the built-in [help()](https://docs.python.org/3/library/functions.html#help) function is always our friend.\n", + "\n", + "The abstract types' docstrings are unsurprisingly similar to the corresponding concrete types' docstrings (for now, let's not worry about the dunder-style names in the docstrings).\n", + "\n", + "For example, both `numbers.Complex` and `complex` list the `imag` and `real` attributes." + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": { + "scrolled": true, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on class Complex in module numbers:\n", + "\n", + "class Complex(Number)\n", + " | Complex defines the operations that work on the builtin complex type.\n", + " | \n", + " | In short, those are: a conversion to complex, .real, .imag, +, -,\n", + " | *, /, abs(), .conjugate, ==, and !=.\n", + " | \n", + " | If it is given heterogeneous arguments, and doesn't have special\n", + " | knowledge about them, it should fall back to the builtin complex\n", + " | type as described below.\n", + " | \n", + " | Method resolution order:\n", + " | Complex\n", + " | Number\n", + " | builtins.object\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __abs__(self)\n", + " | Returns the Real distance from 0. Called for abs(self).\n", + " | \n", + " | __add__(self, other)\n", + " | self + other\n", + " | \n", + " | __bool__(self)\n", + " | True if self != 0. Called for bool(self).\n", + " | \n", + " | __complex__(self)\n", + " | Return a builtin complex instance. Called for complex(self).\n", + " | \n", + " | __eq__(self, other)\n", + " | self == other\n", + " | \n", + " | __mul__(self, other)\n", + " | self * other\n", + " | \n", + " | __neg__(self)\n", + " | -self\n", + " | \n", + " | __pos__(self)\n", + " | +self\n", + " | \n", + " | __pow__(self, exponent)\n", + " | self**exponent; should promote to float or complex when necessary.\n", + " | \n", + " | __radd__(self, other)\n", + " | other + self\n", + " | \n", + " | __rmul__(self, other)\n", + " | other * self\n", + " | \n", + " | __rpow__(self, base)\n", + " | base ** self\n", + " | \n", + " | __rsub__(self, other)\n", + " | other - self\n", + " | \n", + " | __rtruediv__(self, other)\n", + " | other / self\n", + " | \n", + " | __sub__(self, other)\n", + " | self - other\n", + " | \n", + " | __truediv__(self, other)\n", + " | self / other: Should promote to float when necessary.\n", + " | \n", + " | conjugate(self)\n", + " | (x+y*i).conjugate() returns (x-y*i).\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data descriptors defined here:\n", + " | \n", + " | imag\n", + " | Retrieve the imaginary component of this number.\n", + " | \n", + " | This should subclass Real.\n", + " | \n", + " | real\n", + " | Retrieve the real component of this number.\n", + " | \n", + " | This should subclass Real.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data and other attributes defined here:\n", + " | \n", + " | __abstractmethods__ = frozenset({'__abs__', '__add__', '__complex__', ...\n", + " | \n", + " | __hash__ = None\n", + "\n" + ] + } + ], + "source": [ + "help(numbers.Complex)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "For sure, Python understands the built-in types as literals." + ] + }, + { + "cell_type": "code", + "execution_count": 198, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on class complex in module builtins:\n", + "\n", + "class complex(object)\n", + " | complex(real=0, imag=0)\n", + " | \n", + " | Create a complex number from a real part and an optional imaginary part.\n", + " | \n", + " | This is equivalent to (real + imag*1j) where imag defaults to 0.\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __abs__(self, /)\n", + " | abs(self)\n", + " | \n", + " | __add__(self, value, /)\n", + " | Return self+value.\n", + " | \n", + " | __bool__(self, /)\n", + " | self != 0\n", + " | \n", + " | __divmod__(self, value, /)\n", + " | Return divmod(self, value).\n", + " | \n", + " | __eq__(self, value, /)\n", + " | Return self==value.\n", + " | \n", + " | __float__(self, /)\n", + " | float(self)\n", + " | \n", + " | __floordiv__(self, value, /)\n", + " | Return self//value.\n", + " | \n", + " | __format__(...)\n", + " | complex.__format__() -> str\n", + " | \n", + " | Convert to a string according to format_spec.\n", + " | \n", + " | __ge__(self, value, /)\n", + " | Return self>=value.\n", + " | \n", + " | __getattribute__(self, name, /)\n", + " | Return getattr(self, name).\n", + " | \n", + " | __getnewargs__(...)\n", + " | \n", + " | __gt__(self, value, /)\n", + " | Return self>value.\n", + " | \n", + " | __hash__(self, /)\n", + " | Return hash(self).\n", + " | \n", + " | __int__(self, /)\n", + " | int(self)\n", + " | \n", + " | __le__(self, value, /)\n", + " | Return self<=value.\n", + " | \n", + " | __lt__(self, value, /)\n", + " | Return self complex\n", + " | \n", + " | Return the complex conjugate of its argument. (3-4j).conjugate() == 3+4j.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Static methods defined here:\n", + " | \n", + " | __new__(*args, **kwargs) from builtins.type\n", + " | Create and return a new object. See help(type) for accurate signature.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data descriptors defined here:\n", + " | \n", + " | imag\n", + " | the imaginary part of a complex number\n", + " | \n", + " | real\n", + " | the real part of a complex number\n", + "\n" + ] + } + ], + "source": [ + "help(complex)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "One way to use *abstract* data types is to use them in place of a *concrete* data type.\n", + "\n", + "For example, we may pass them as arguments to the built-in [isinstance()](https://docs.python.org/3/library/functions.html#isinstance) function and check in which of the five mathematical sets the object `1 / 10` is." + ] + }, + { + "cell_type": "code", + "execution_count": 199, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 199, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(1 / 10, float)" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 200, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(1 / 10, numbers.Number)" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 201, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(1 / 10, numbers.Complex)" + ] + }, + { + "cell_type": "code", + "execution_count": 202, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 202, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(1 / 10, numbers.Real)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "Due to the `float` type's inherent imprecision, `1 / 10` is *not* a rational number." + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 203, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(1 / 10, numbers.Rational)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "The `Fraction` type qualifies as a rational number; however, the `Decimal` type does not." + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 204, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(Fraction(1, 10), numbers.Rational)" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 205, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(Decimal(\"0.1\"), numbers.Rational)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "#### Example: [Factorial](https://en.wikipedia.org/wiki/Factorial) (revisited)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "Replacing *concrete* data types with *abstract* ones is particularly valuable in the context of input validation: The revised version of the `factorial()` function below allows its user to *take advantage of duck typing*. If a real but non-integer argument `n` is passed in, `factorial()` tries to cast `n` as an `int` object with the [trunc()](https://docs.python.org/3/library/math.html#math.trunc) function from the [math](https://docs.python.org/3/library/math.html) module in the [standard library](https://docs.python.org/3/library/index.html). [trunc()](https://docs.python.org/3/library/math.html#math.trunc) cuts off all decimals and any *concrete* numeric type implementing the *abstract* `numbers.Real` type supports it (cf., [documentation](https://docs.python.org/3/library/numbers.html#numbers.Real))." + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "import math" + ] + }, + { + "cell_type": "code", + "execution_count": 207, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 207, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "math.trunc(1 / 10)" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "def factorial(n, *, strict=True):\n", + " \"\"\"Calculate the factorial of a number.\n", + "\n", + " Args:\n", + " n (int): number to calculate the factorial for; must be positive\n", + " strict (bool): if n must not contain decimals; defaults to True\n", + "\n", + " Returns:\n", + " factorial (int)\n", + "\n", + " Raises:\n", + " TypeError: if n is not an integer or cannot be cast as such\n", + " ValueError: if n is negative\n", + " \"\"\"\n", + " if not isinstance(n, numbers.Integral):\n", + " if isinstance(n, numbers.Real):\n", + " if n != math.trunc(n) and strict:\n", + " raise ValueError(\"n is not an integer-like value; it has decimals\")\n", + " n = math.trunc(n)\n", + " else:\n", + " raise TypeError(\"Factorial is only defined for integers\")\n", + "\n", + " if n < 0:\n", + " raise ValueError(\"Factorial is not defined for negative integers\")\n", + " elif n == 0:\n", + " return 1\n", + " return n * factorial(n - 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "`factorial()` works as before, but now also accepts, for example, `float` numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "factorial(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "6" + ] + }, + "execution_count": 210, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "factorial(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "6" + ] + }, + "execution_count": 211, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "factorial(3.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "With the keyword-only argument `strict`, we can control whether or not a passed in `float` object may be rounded. By default, this is not allowed." + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "ename": "ValueError", + "evalue": "n is not an integer-like value; it has decimals", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mfactorial\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3.1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mfactorial\u001b[0;34m(n, strict)\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumbers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mReal\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mn\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mstrict\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"n is not an integer-like value; it has decimals\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: n is not an integer-like value; it has decimals" + ] + } + ], + "source": [ + "factorial(3.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 213, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "6" + ] + }, + "execution_count": 213, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "factorial(3.1, strict=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "source": [ + "For `complex` numbers, `factorial()` still raises a `TypeError`." + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "ename": "TypeError", + "evalue": "Factorial is only defined for integers", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mfactorial\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m2j\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mfactorial\u001b[0;34m(n, strict)\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 21\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Factorial is only defined for integers\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 22\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mn\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: Factorial is only defined for integers" + ] + } + ], + "source": [ + "factorial(1 + 2j)" ] }, { @@ -6029,14 +6920,16 @@ "- `float`: the \"gold\" standard to approximate real numbers (i.e., the set $\\mathbb{R}$); inherently imprecise\n", "- `complex`: layer on top of the `float` type; therefore inherently imprecise\n", "\n", - "Furthermore, the [standard library](https://docs.python.org/3/library/) adds two more types that can be used as substitutes for `float` objects:\n", + "Furthermore, the [standard library](https://docs.python.org/3/library/index.html) adds two more types that can be used as substitutes for `float` objects:\n", "- `Decimal`: similar to `float` but allows customizing the precision; still inherently imprecise\n", "- `Fraction`: a perfect model for rational numbers (i.e., the set $\\mathbb{Q}$); built on top of the `int` type and therefore inherently precise\n", "\n", "The important takeaways for the data science practicioner are:\n", "\n", "1. **Do not mix** precise and imprecise data types, and\n", - "2. actively expect `nan` results when working with `float` numbers as there are no **loud failures**." + "2. actively expect `nan` results when working with `float` numbers as there are no **loud failures**.\n", + "\n", + "The **numeric tower** is Python's way of implementing the various **abstract** ideas of what a number is in mathematics." ] } ], diff --git a/static/numbers.png b/static/numbers.png new file mode 100644 index 0000000000000000000000000000000000000000..6d757269ffb7f0215648cd5cc4b153c7701b3e40 GIT binary patch literal 90958 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 RA1h$c55)T&dT@Z6{$EL>4blJr literal 0 HcmV?d00001