<li><strong><codeclass="python hljs"><spanclass="hljs-string">'int(<str>)'</span></code> and <codeclass="python hljs"><spanclass="hljs-string">'float(<str>)'</span></code> raise ValueError on malformed strings.</strong></li>
<li><strong>Decimal numbers are stored exactly, unlike most floats where: <codeclass="python hljs"><spanclass="hljs-string">'1.1 + 2.2 != 3.3'</span></code>.</strong></li>
<li><strong>Decimal numbers are stored exactly, unlike most floats where <codeclass="python hljs"><spanclass="hljs-string">'1.1 + 2.2 != 3.3'</span></code>.</strong></li>
<li><strong>Floats can be compared with: <codeclass="python hljs"><spanclass="hljs-string">'math.isclose(<float>, <float>)'</span></code>.</strong></li>
<li><strong>Floats can be compared with: <codeclass="python hljs"><spanclass="hljs-string">'math.isclose(<float>, <float>)'</span></code>.</strong></li>
<li><strong>Precision of decimal operations is set with: <codeclass="python hljs"><spanclass="hljs-string">'decimal.getcontext().prec = <int>'</span></code>.</strong></li>
<li><strong>Precision of decimal operations is set with: <codeclass="python hljs"><spanclass="hljs-string">'decimal.getcontext().prec = <int>'</span></code>.</strong></li>
<li><strong>Bools can be used anywhere ints can, because bool is a subclass of int: <codeclass="python hljs"><spanclass="hljs-string">'True + 1 == 2'</span></code>.</strong></li>
<pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>list(it.product(<spanclass="hljs-string">'abc'</span>, <spanclass="hljs-string">'abc'</span>)) <spanclass="hljs-comment"># a b c</span>
<pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>list(it.product(<spanclass="hljs-string">'abc'</span>, <spanclass="hljs-string">'abc'</span>)) <spanclass="hljs-comment"># a b c</span>
[(<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># a x x x</span>
[(<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># a x x x</span>
(<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># b x x x</span>
(<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># b x x x</span>
(<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'c'</span>)] <spanclass="hljs-comment"># c x x x</span>
(<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'c'</span>)] <spanclass="hljs-comment"># c x x x</span>
</code></pre>
<pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>list(it.combinations(<spanclass="hljs-string">'abc'</span>, <spanclass="hljs-number">2</span>)) <spanclass="hljs-comment"># a b c</span>
[(<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># a . x x</span>
(<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'c'</span>)] <spanclass="hljs-comment"># b . . x</span>
</code></pre>
</code></pre>
<pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>list(it.combinations_with_replacement(<spanclass="hljs-string">'abc'</span>, <spanclass="hljs-number">2</span>)) <spanclass="hljs-comment"># a b c</span>
<pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>list(it.permutations(<spanclass="hljs-string">'abc'</span>, <spanclass="hljs-number">2</span>)) <spanclass="hljs-comment"># a b c</span>
[(<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'c'</span>),<spanclass="hljs-comment"># a x x x</span>
[(<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># a . x x</span>
(<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># b . x x</span>
(<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># b x . x</span>
(<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'c'</span>)] <spanclass="hljs-comment"># c . . x</span>
(<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'b'</span>)]<spanclass="hljs-comment"># c x x .</span>
</code></pre>
</code></pre>
<pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>list(it.permutations(<spanclass="hljs-string">'abc'</span>, <spanclass="hljs-number">2</span>))<spanclass="hljs-comment"># a b c</span>
<pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>list(it.combinations(<spanclass="hljs-string">'abc'</span>, <spanclass="hljs-number">2</span>)) <spanclass="hljs-comment"># a b c</span>
[(<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># a . x x</span>
[(<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'b'</span>), (<spanclass="hljs-string">'a'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># a . x x</span>
(<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'c'</span>),<spanclass="hljs-comment"># b x . x</span>
(<spanclass="hljs-string">'b'</span>, <spanclass="hljs-string">'c'</span>), <spanclass="hljs-comment"># b . . x</span>
(<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'a'</span>), (<spanclass="hljs-string">'c'</span>, <spanclass="hljs-string">'b'</span>)]<spanclass="hljs-comment"># c x x .</span>
] <spanclass="hljs-comment"># c . . .</span>
</code></pre>
</code></pre>
<div><h2id="datetime"><ahref="#datetime"name="datetime">#</a>Datetime</h2><p><strong>Provides 'date', 'time', 'datetime' and 'timedelta' classes. All are immutable and hashable.</strong></p><pre><codeclass="python language-python hljs"><spanclass="hljs-comment"># $ pip3 install python-dateutil</span>
<div><h2id="datetime"><ahref="#datetime"name="datetime">#</a>Datetime</h2><p><strong>Provides 'date', 'time', 'datetime' and 'timedelta' classes. All are immutable and hashable.</strong></p><pre><codeclass="python language-python hljs"><spanclass="hljs-comment"># $ pip3 install python-dateutil</span>
<spanclass="hljs-keyword">from</span> datetime <spanclass="hljs-keyword">import</span> date, time, datetime, timedelta, timezone
<spanclass="hljs-keyword">from</span> datetime <spanclass="hljs-keyword">import</span> date, time, datetime, timedelta, timezone
@ -2945,7 +2944,7 @@ $ deactivate <span class="hljs-comment"># Deactivates the active
xxxxxxxxxx