diff --git a/01_elements/00_content.ipynb b/01_elements/00_content.ipynb
index 6003bd9..4d6c792 100644
--- a/01_elements/00_content.ipynb
+++ b/01_elements/00_content.ipynb
@@ -1340,9 +1340,9 @@
}
},
"source": [
- "Different types imply different behaviors for the objects. The `b` object, for example, may be \"asked\" if it is a whole number with the [is_integer()
](https://docs.python.org/3/library/stdtypes.html#float.is_integer) \"functionality\" that comes with *every* `float` object.\n",
+ "Different types imply different behaviors for the objects. The `b` object, for example, may be \"asked\" if it is a whole number with the [.is_integer()
](https://docs.python.org/3/library/stdtypes.html#float.is_integer) \"functionality\" that comes with *every* `float` object.\n",
"\n",
- "Formally, we call such type-specific functionalities **methods** (i.e., as opposed to functions) and we look at them in detail in [Chapter 10
](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/10_classes/00_content.ipynb). For now, it suffices to know that we access them with the **dot operator** `.` on the object. Of course, `b` is a whole number, which the boolean object `True` tells us."
+ "Formally, we call such type-specific functionalities **methods** (i.e., as opposed to functions) and we look at them in detail in [Chapter 11
](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/11_classes/00_content.ipynb). For now, it suffices to know that we access them with the **dot operator** `.` on the object. Of course, `b` is a whole number, which the boolean object `True` tells us."
]
},
{
@@ -1377,7 +1377,7 @@
}
},
"source": [
- "For an `int` object, this [is_integer()
](https://docs.python.org/3/library/stdtypes.html#float.is_integer) check does *not* make sense as we already know it is an `int`: We see the `AttributeError` below as `a` does not even know what `is_integer()` means."
+ "For an `int` object, this [.is_integer()
](https://docs.python.org/3/library/stdtypes.html#float.is_integer) check does *not* make sense as we already know it is an `int`: We see the `AttributeError` below as `a` does not even know what `is_integer()` means."
]
},
{
diff --git a/04_iteration/03_content.ipynb b/04_iteration/03_content.ipynb
index 8cfb19f..dafbe08 100644
--- a/04_iteration/03_content.ipynb
+++ b/04_iteration/03_content.ipynb
@@ -788,7 +788,7 @@
"\n",
"First, we divide the business logic into two functions `get_guess()` and `toss_coin()` that are controlled from within a `while`-loop.\n",
"\n",
- "`get_guess()` not only reads in the user's input but also implements a simple input validation pattern in that the [strip()
](https://docs.python.org/3/library/stdtypes.html?highlight=__contains__#str.strip) and [lower()
](https://docs.python.org/3/library/stdtypes.html?highlight=__contains__#str.lower) methods remove preceding and trailing whitespace and lower case the input ensuring that the user may spell the input in any possible way (e.g., all upper or lower case). Also, `get_guess()` checks if the user entered one of the two valid options. If so, it returns either `\"heads\"` or `\"tails\"`; if not, it returns `None`."
+ "`get_guess()` not only reads in the user's input but also implements a simple input validation pattern in that the [.strip()
](https://docs.python.org/3/library/stdtypes.html?highlight=__contains__#str.strip) and [.lower()
](https://docs.python.org/3/library/stdtypes.html?highlight=__contains__#str.lower) methods remove preceding and trailing whitespace and lower case the input ensuring that the user may spell the input in any possible way (e.g., all upper or lower case). Also, `get_guess()` checks if the user entered one of the two valid options. If so, it returns either `\"heads\"` or `\"tails\"`; if not, it returns `None`."
]
},
{
diff --git a/05_numbers/01_content.ipynb b/05_numbers/01_content.ipynb
index af18f07..00157ad 100644
--- a/05_numbers/01_content.ipynb
+++ b/05_numbers/01_content.ipynb
@@ -1827,7 +1827,7 @@
"\n",
"The Python [documentation
](https://docs.python.org/3/tutorial/floatingpoint.html) provides another good discussion of floats and the goodness of their approximations.\n",
"\n",
- "If we are interested in the exact bits behind a `float` object, we use the [hex()
](https://docs.python.org/3/library/stdtypes.html#float.hex) method that returns a `str` object beginning with `\"0x1.\"` followed by the $fraction$ in hexadecimal notation and the $exponent$ as an integer after subtraction of $1023$ and separated by a `\"p\"`."
+ "If we are interested in the exact bits behind a `float` object, we use the [.hex()
](https://docs.python.org/3/library/stdtypes.html#float.hex) method that returns a `str` object beginning with `\"0x1.\"` followed by the $fraction$ in hexadecimal notation and the $exponent$ as an integer after subtraction of $1023$ and separated by a `\"p\"`."
]
},
{
@@ -1875,7 +1875,7 @@
}
},
"source": [
- "Also, the [as_integer_ratio()
](https://docs.python.org/3/library/stdtypes.html#float.as_integer_ratio) method returns the two smallest integers whose ratio best approximates a `float` object."
+ "Also, the [.as_integer_ratio()
](https://docs.python.org/3/library/stdtypes.html#float.as_integer_ratio) method returns the two smallest integers whose ratio best approximates a `float` object."
]
},
{
@@ -2030,7 +2030,7 @@
}
},
"source": [
- "As seen in [Chapter 1
](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/01_elements/00_content.ipynb#%28Data%29-Type-%2F-%22Behavior%22), the [is_integer()
](https://docs.python.org/3/library/stdtypes.html#float.is_integer) method tells us if a `float` can be casted as an `int` object without any loss in precision."
+ "As seen in [Chapter 1
](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/01_elements/00_content.ipynb#%28Data%29-Type-%2F-%22Behavior%22), the [.is_integer()
](https://docs.python.org/3/library/stdtypes.html#float.is_integer) method tells us if a `float` can be casted as an `int` object without any loss in precision."
]
},
{
@@ -2091,7 +2091,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/index.html) 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."
]
},
{
diff --git a/05_numbers/02_content.ipynb b/05_numbers/02_content.ipynb
index e430e90..ae1b01d 100644
--- a/05_numbers/02_content.ipynb
+++ b/05_numbers/02_content.ipynb
@@ -581,7 +581,7 @@
}
},
"source": [
- "A `complex` number comes with two **attributes** `real` and `imag` that return the two parts as `float` objects on their own."
+ "A `complex` number comes with two **attributes** `.real` and `.imag` that return the two parts as `float` objects on their own."
]
},
{
@@ -640,7 +640,7 @@
}
},
"source": [
- "Also, a `conjugate()` method is bound to every `complex` object. The [complex conjugate
](https://en.wikipedia.org/wiki/Complex_conjugate) is defined to be the complex number with identical real part but an imaginary part reversed in sign."
+ "Also, a `.conjugate()` method is bound to every `complex` object. The [complex conjugate
](https://en.wikipedia.org/wiki/Complex_conjugate) is defined to be the complex number with identical real part but an imaginary part reversed in sign."
]
},
{
diff --git a/06_text/00_content.ipynb b/06_text/00_content.ipynb
index 7c9fff8..236942b 100644
--- a/06_text/00_content.ipynb
+++ b/06_text/00_content.ipynb
@@ -2370,7 +2370,7 @@
"source": [
"Objects of type `str` come with many **methods** bound on them (cf., the [documentation
](https://docs.python.org/3/library/stdtypes.html#string-methods) for a full list). As seen before, they work like *normal* functions and are accessed via the **dot operator** `.`. Calling a method is also referred to as **method invocation**.\n",
"\n",
- "The [find()
](https://docs.python.org/3/library/stdtypes.html#str.find) method returns the index of the first occurrence of a character or a substring. If no match is found, it returns `-1`. A mirrored version searching from the right called [rfind()
](https://docs.python.org/3/library/stdtypes.html#str.rfind) exists as well. The [index()
](https://docs.python.org/3/library/stdtypes.html#str.index) and [rindex()
](https://docs.python.org/3/library/stdtypes.html#str.rindex) methods work in the same way but raise a `ValueError` if no match is found. So, we can control if a search fails *silently* or *loudly*."
+ "The [.find()
](https://docs.python.org/3/library/stdtypes.html#str.find) method returns the index of the first occurrence of a character or a substring. If no match is found, it returns `-1`. A mirrored version searching from the right called [.rfind()
](https://docs.python.org/3/library/stdtypes.html#str.rfind) exists as well. The [.index()
](https://docs.python.org/3/library/stdtypes.html#str.index) and [.rindex()
](https://docs.python.org/3/library/stdtypes.html#str.rindex) methods work in the same way but raise a `ValueError` if no match is found. So, we can control if a search fails *silently* or *loudly*."
]
},
{
@@ -2477,7 +2477,7 @@
}
},
"source": [
- "[find()
](https://docs.python.org/3/library/stdtypes.html#str.find) takes optional *start* and *end* arguments that allow us to find occurrences other than the first one."
+ "[.find()
](https://docs.python.org/3/library/stdtypes.html#str.find) takes optional *start* and *end* arguments that allow us to find occurrences other than the first one."
]
},
{
@@ -2560,7 +2560,7 @@
}
},
"source": [
- "The [count()
](https://docs.python.org/3/library/stdtypes.html#str.count) method does what we expect."
+ "The [.count()
](https://docs.python.org/3/library/stdtypes.html#str.count) method does what we expect."
]
},
{
@@ -2619,7 +2619,7 @@
}
},
"source": [
- "As [count()
](https://docs.python.org/3/library/stdtypes.html#str.count) is *case-sensitive*, we must **chain** it with the [lower()
](https://docs.python.org/3/library/stdtypes.html#str.lower) method to get the count of all `\"L\"`s and `\"l\"`s."
+ "As [.count()
](https://docs.python.org/3/library/stdtypes.html#str.count) is *case-sensitive*, we must **chain** it with the [.lower()
](https://docs.python.org/3/library/stdtypes.html#str.lower) method to get the count of all `\"L\"`s and `\"l\"`s."
]
},
{
@@ -2654,7 +2654,7 @@
}
},
"source": [
- "Alternatively, we can use the [upper()
](https://docs.python.org/3/library/stdtypes.html#str.upper) method and search for `\"L\"`s."
+ "Alternatively, we can use the [.upper()
](https://docs.python.org/3/library/stdtypes.html#str.upper) method and search for `\"L\"`s."
]
},
{
@@ -2689,7 +2689,7 @@
}
},
"source": [
- "Because `str` objects are *immutable*, [upper()
](https://docs.python.org/3/library/stdtypes.html#str.upper) and [lower()
](https://docs.python.org/3/library/stdtypes.html#str.lower) return *new* `str` objects, even if they do *not* change the value of the original `str` object."
+ "Because `str` objects are *immutable*, [.upper()
](https://docs.python.org/3/library/stdtypes.html#str.upper) and [.lower()
](https://docs.python.org/3/library/stdtypes.html#str.lower) return *new* `str` objects, even if they do *not* change the value of the original `str` object."
]
},
{
@@ -2833,7 +2833,7 @@
}
},
"source": [
- "Besides [upper()
](https://docs.python.org/3/library/stdtypes.html#str.upper) and [lower()
](https://docs.python.org/3/library/stdtypes.html#str.lower) there exist also [title()
](https://docs.python.org/3/library/stdtypes.html#str.title) and [swapcase()
](https://docs.python.org/3/library/stdtypes.html#str.swapcase) methods."
+ "Besides [.upper()
](https://docs.python.org/3/library/stdtypes.html#str.upper) and [.lower()
](https://docs.python.org/3/library/stdtypes.html#str.lower) there exist also [.title()
](https://docs.python.org/3/library/stdtypes.html#str.title) and [.swapcase()
](https://docs.python.org/3/library/stdtypes.html#str.swapcase) methods."
]
},
{
@@ -2940,9 +2940,9 @@
}
},
"source": [
- "Another popular string method is [split()
](https://docs.python.org/3/library/stdtypes.html#str.split): It separates a longer `str` object into smaller ones collected in a `list` object. By default, groups of contiguous whitespace characters are used as the *separator*.\n",
+ "Another popular string method is [.split()
](https://docs.python.org/3/library/stdtypes.html#str.split): It separates a longer `str` object into smaller ones collected in a `list` object. By default, groups of contiguous whitespace characters are used as the *separator*.\n",
"\n",
- "As an example, we use [split()
](https://docs.python.org/3/library/stdtypes.html#str.split) to print out the individual words in `text` with more whitespace in between them."
+ "As an example, we use [.split()
](https://docs.python.org/3/library/stdtypes.html#str.split) to print out the individual words in `text` with more whitespace in between them."
]
},
{
@@ -2999,7 +2999,7 @@
}
},
"source": [
- "The opposite of splitting is done with the [join()
](https://docs.python.org/3/library/stdtypes.html#str.join) method. It is typically invoked on a `str` object that represents a separator (e.g., `\" \"` or `\", \"`) and connects the elements provided by an *iterable* argument (e.g., `words` below) into one *new* `str` object."
+ "The opposite of splitting is done with the [.join()
](https://docs.python.org/3/library/stdtypes.html#str.join) method. It is typically invoked on a `str` object that represents a separator (e.g., `\" \"` or `\", \"`) and connects the elements provided by an *iterable* argument (e.g., `words` below) into one *new* `str` object."
]
},
{
@@ -3095,7 +3095,7 @@
}
},
"source": [
- "The [replace()
](https://docs.python.org/3/library/stdtypes.html#str.replace) method creates a *new* `str` object with parts of the original `str` object potentially replaced."
+ "The [.replace()
](https://docs.python.org/3/library/stdtypes.html#str.replace) method creates a *new* `str` object with parts of the original `str` object potentially replaced."
]
},
{
@@ -3130,7 +3130,7 @@
}
},
"source": [
- "Note how `sentence` itself remains unchanged. Bound to an immutable object, [replace()
](https://docs.python.org/3/library/stdtypes.html#str.replace) must create *new* objects."
+ "Note how `sentence` itself remains unchanged. Bound to an immutable object, [.replace()
](https://docs.python.org/3/library/stdtypes.html#str.replace) must create *new* objects."
]
},
{
@@ -3165,7 +3165,7 @@
}
},
"source": [
- "As seen previously, the [strip()
](https://docs.python.org/3/library/stdtypes.html#str.strip) method is often helpful in cleaning text data from unreliable sources like user input from unnecessary leading and trailing whitespace. The [lstrip()
](https://docs.python.org/3/library/stdtypes.html#str.lstrip) and [rstrip()
](https://docs.python.org/3/library/stdtypes.html#str.rstrip) methods are specialized versions of it."
+ "As seen previously, the [.strip()
](https://docs.python.org/3/library/stdtypes.html#str.strip) method is often helpful in cleaning text data from unreliable sources like user input from unnecessary leading and trailing whitespace. The [.lstrip()
](https://docs.python.org/3/library/stdtypes.html#str.lstrip) and [.rstrip()
](https://docs.python.org/3/library/stdtypes.html#str.rstrip) methods are specialized versions of it."
]
},
{
@@ -3248,7 +3248,7 @@
}
},
"source": [
- "When justifying a `str` object for output, the [ljust()
](https://docs.python.org/3/library/stdtypes.html#str.ljust) and [rjust()
](https://docs.python.org/3/library/stdtypes.html#str.rjust) methods may be helpful."
+ "When justifying a `str` object for output, the [.ljust()
](https://docs.python.org/3/library/stdtypes.html#str.ljust) and [.rjust()
](https://docs.python.org/3/library/stdtypes.html#str.rjust) methods may be helpful."
]
},
{
@@ -3307,7 +3307,7 @@
}
},
"source": [
- "Similarly, the [zfill()
](https://docs.python.org/3/library/stdtypes.html#str.zfill) method can be used to pad a `str` representation of a number with leading `0`s for justified output."
+ "Similarly, the [.zfill()
](https://docs.python.org/3/library/stdtypes.html#str.zfill) method can be used to pad a `str` representation of a number with leading `0`s for justified output."
]
},
{
@@ -3706,7 +3706,7 @@
}
},
"source": [
- "`str` objects also provide a [format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method that accepts an arbitrary number of *positional* arguments that are inserted into the `str` object in the same order replacing empty curly brackets `{}`. String interpolation with the [format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method is a more traditional and probably the most common way as of today. While f-strings are the recommended way going forward, usage of the [format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method is likely not declining any time soon."
+ "`str` objects also provide a [.format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method that accepts an arbitrary number of *positional* arguments that are inserted into the `str` object in the same order replacing empty curly brackets `{}`. String interpolation with the [.format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method is a more traditional and probably the most common way as of today. While f-strings are the recommended way going forward, usage of the [.format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method is likely not declining any time soon."
]
},
{
@@ -3776,7 +3776,7 @@
}
},
"source": [
- "The [format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method may alternatively be used with *keyword* arguments as well. Then, we must put the keywords' names within the curly brackets."
+ "The [.format()
](https://docs.python.org/3/library/stdtypes.html#str.format) method may alternatively be used with *keyword* arguments as well. Then, we must put the keywords' names within the curly brackets."
]
},
{