Skip to content

Commit 5a4b31d

Browse files
committed
website push
1 parent 6e4be05 commit 5a4b31d

File tree

55 files changed

+1459
-4078
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1459
-4078
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

docs/.doctrees/environment.pickle

-22.3 KB
Binary file not shown.

docs/.doctrees/intro.doctree

-1016 Bytes
Binary file not shown.

docs/Module2_EssentialsOfPython/Basic_Objects.html

+82-84
Large diffs are not rendered by default.

docs/Module2_EssentialsOfPython/ConditionalStatements.html

+40-23
Original file line numberDiff line numberDiff line change
@@ -234,16 +234,26 @@ <h1>Conditional Statements<a class="headerlink" href="#Conditional-Statements" t
234234
<p>In this section, we will be introduced to the <code class="docutils literal"><span class="pre">if</span></code>, <code class="docutils literal"><span class="pre">else</span></code>, and
235235
<code class="docutils literal"><span class="pre">elif</span></code> statements. These allow you to specify that blocks of code are
236236
to be executed only if specified conditions are found to be true, or
237-
perhaps alternative code if the condition is found to be false.</p>
237+
perhaps alternative code if the condition is found to be false. For
238+
example, the following code will square <code class="docutils literal"><span class="pre">x</span></code> if it is a negative
239+
number, and will cube <code class="docutils literal"><span class="pre">x</span></code> if it is a positive number:</p>
240+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># a simple if-else block</span>
241+
<span class="k">if</span> <span class="n">x</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
242+
<span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">**</span> <span class="mi">2</span>
243+
<span class="k">else</span><span class="p">:</span>
244+
<span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">**</span> <span class="mi">3</span>
245+
</pre></div>
246+
</div>
238247
<p>Please refer to the “Basic Python Object Types” subsection to recall the
239248
basics of the “boolean” type, which represents True and False. We will
240249
extend that discussion by introducing comparison operations and
241250
membership-checking, and then expanding on the utility of the built-in
242251
<code class="docutils literal"><span class="pre">bool</span></code> type.</p>
243252
<div class="section" id="Comparison-Operations">
244253
<h2>Comparison Operations<a class="headerlink" href="#Comparison-Operations" title="Permalink to this headline"></a></h2>
245-
<p>Comparison statements will evaluate explicitly to either <code class="docutils literal"><span class="pre">True</span></code> or
246-
<code class="docutils literal"><span class="pre">False</span></code>. There are eight comparison operations in Python:</p>
254+
<p>Comparison statements will evaluate explicitly to either of the
255+
boolean-objects: <code class="docutils literal"><span class="pre">True</span></code> or <code class="docutils literal"><span class="pre">False</span></code>. There are eight comparison
256+
operations in Python:</p>
247257
<table border="1" class="docutils">
248258
<colgroup>
249259
<col width="32%" />
@@ -349,8 +359,9 @@ <h2><code class="docutils literal"><span class="pre">bool</span></code> and Trut
349359
</pre></div>
350360
</div>
351361
<p>and non-zero Python integers are associated with <code class="docutils literal"><span class="pre">True</span></code>:</p>
352-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="nb">bool</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
353-
<span class="go">True</span>
362+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># nonzero values evaluate to `True`</span>
363+
<span class="o">&gt;&gt;&gt;</span> <span class="nb">bool</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
364+
<span class="bp">True</span>
354365
</pre></div>
355366
</div>
356367
<p>The following built-in Python objects evaluate to <code class="docutils literal"><span class="pre">False</span></code> via
@@ -498,15 +509,18 @@ <h2><code class="docutils literal"><span class="pre">if</span></code>, <code cla
498509
</div>
499510
<p>What will happen if <code class="docutils literal"><span class="pre">my_list</span></code> is <code class="docutils literal"><span class="pre">[]</span></code>? Will <code class="docutils literal"><span class="pre">IndexError</span></code> be
500511
raised? What will <code class="docutils literal"><span class="pre">first_item</span></code> be?</p>
501-
<p>2. The variable <code class="docutils literal"><span class="pre">my_file</span></code> is a string like <code class="docutils literal"><span class="pre">&quot;code.py&quot;</span></code>,
502-
<code class="docutils literal"><span class="pre">&quot;my_doc.txt&quot;</span></code>, etc, where a period denotes the end of the file-name
503-
and the beginning of the file-type. <code class="docutils literal"><span class="pre">my_file</span></code> will have at most one
504-
period in it. Write code that creates a variable which stores only the
505-
filename. Accommodate cases where <code class="docutils literal"><span class="pre">my_file</span></code> does <em>not</em> include a
506-
file-type.</p>
507-
<p>That is, <code class="docutils literal"><span class="pre">&quot;code.py&quot;</span></code> <span class="math">\(\rightarrow\)</span> <code class="docutils literal"><span class="pre">&quot;code&quot;</span></code>, <code class="docutils literal"><span class="pre">&quot;doc2.pdf&quot;</span></code>
508-
<span class="math">\(\rightarrow\)</span> <code class="docutils literal"><span class="pre">&quot;doc2&quot;</span></code>, <code class="docutils literal"><span class="pre">&quot;hello_world&quot;</span></code> <span class="math">\(\rightarrow\)</span>
509-
<code class="docutils literal"><span class="pre">&quot;hello_world&quot;</span></code> ***</p>
512+
<p>2. Assume variable <code class="docutils literal"><span class="pre">my_file</span></code> is a string storing a filename, where a
513+
period denotes the end of the filename and the beginning of the
514+
file-type. Write code that extracts only the filename.</p>
515+
<p><code class="docutils literal"><span class="pre">my_file</span></code> will have at most one period in it. Accommodate cases where
516+
<code class="docutils literal"><span class="pre">my_file</span></code> does <em>not</em> include a file-type.</p>
517+
<p>That is:</p>
518+
<ul class="simple">
519+
<li><code class="docutils literal"><span class="pre">&quot;code.py&quot;</span></code> <span class="math">\(\rightarrow\)</span> <code class="docutils literal"><span class="pre">&quot;code&quot;</span></code></li>
520+
<li><code class="docutils literal"><span class="pre">&quot;doc2.pdf&quot;</span></code> <span class="math">\(\rightarrow\)</span> <code class="docutils literal"><span class="pre">&quot;doc2&quot;</span></code></li>
521+
<li><code class="docutils literal"><span class="pre">&quot;hello_world&quot;</span></code> <span class="math">\(\rightarrow\)</span> <code class="docutils literal"><span class="pre">&quot;hello_world&quot;</span></code></li>
522+
</ul>
523+
<hr class="docutils" />
510524
<div class="section" id="Inline-if-else-statements">
511525
<h3>Inline if-else statements<a class="headerlink" href="#Inline-if-else-statements" title="Permalink to this headline"></a></h3>
512526
<p>Python supports a syntax for writing a restricted version of if-else
@@ -534,15 +548,18 @@ <h3>Inline if-else statements<a class="headerlink" href="#Inline-if-else-stateme
534548
nor are muli-line code blocks within the if/else clauses.</p>
535549
<p>Inline if-else statements can be used anywhere, not just on the right
536550
side of an assignment statement, and can be quite convenient:</p>
537-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="n">my_list</span> <span class="o">=</span> <span class="p">[]</span>
538-
<span class="c1"># will append 1 to `my_list` if `x` is non-negative</span>
539-
<span class="c1"># will append 0 to `my_list if `x` is negative</span>
540-
<span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">1</span> <span class="k">if</span> <span class="n">x</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="k">else</span> <span class="mi">0</span><span class="p">)</span>
541-
</pre></div>
542-
</div>
543-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="mi">2</span>
544-
<span class="gp">&gt;&gt;&gt; </span><span class="s2">&quot;a&quot;</span> <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">&quot;b&quot;</span>
545-
<span class="go">&quot;b</span>
551+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># using inline if-else statements in different scenarios</span>
552+
553+
<span class="o">&gt;&gt;&gt;</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">2</span>
554+
555+
<span class="c1"># will store 1 if `x` is non-negative</span>
556+
<span class="c1"># will store 0 if `x` is negative</span>
557+
<span class="o">&gt;&gt;&gt;</span> <span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span> <span class="k">if</span> <span class="n">x</span> <span class="o">&gt;=</span> <span class="mi">0</span> <span class="k">else</span> <span class="mi">0</span><span class="p">]</span>
558+
<span class="o">&gt;&gt;&gt;</span> <span class="n">my_list</span>
559+
<span class="p">[</span><span class="mi">1</span><span class="p">]</span>
560+
561+
<span class="o">&gt;&gt;&gt;</span> <span class="s2">&quot;a&quot;</span> <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">&quot;b&quot;</span>
562+
<span class="s2">&quot;b</span>
546563
</pre></div>
547564
</div>
548565
<p>We will see this syntax shine when we learn about comprehension

docs/Module2_EssentialsOfPython/Introduction.html

+4-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,10 @@ <h1>Introducing Control Flow<a class="headerlink" href="#Introducing-Control-Flo
220220
in which the code in your program are executed. Up until this point in
221221
the course, you have seen (and hopefully written) code that executes
222222
linearly, for example:</p>
223-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="mi">6</span>
223+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># simple code without any &quot;control flow&quot;</span>
224+
<span class="c1"># i.e. no branches in logic, loops, or</span>
225+
<span class="c1"># code encapsulation</span>
226+
<span class="n">x</span> <span class="o">=</span> <span class="mi">6</span>
224227
<span class="n">y</span> <span class="o">=</span> <span class="mi">23</span>
225228
<span class="k">print</span><span class="p">(</span><span class="s2">&quot;x + y = &quot;</span><span class="p">,</span> <span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">)</span>
226229
<span class="k">print</span><span class="p">(</span><span class="s2">&quot;x - y = &quot;</span><span class="p">,</span> <span class="n">x</span> <span class="o">-</span> <span class="n">y</span><span class="p">)</span>

docs/Module2_EssentialsOfPython/SequenceTypes.html

+25-10
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,22 @@ <h1>Sequence Types<a class="headerlink" href="#Sequence-Types" title="Permalink
232232
These are meant to help you put your reading to practice. Solutions for
233233
the exercises are included at the bottom of this page.</p>
234234
</div>
235+
<p>The following objects are all example of sequences:</p>
236+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># examples of sequences</span>
237+
238+
<span class="c1"># a list</span>
239+
<span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span>
240+
241+
<span class="c1"># a string</span>
242+
<span class="s2">&quot;hello out there&quot;</span>
243+
244+
<span class="c1"># a tuple</span>
245+
<span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
246+
247+
<span class="c1"># a NumPy array</span>
248+
<span class="n">numpy</span><span class="o">.</span><span class="n">ndarray</span><span class="p">([</span><span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.4</span><span class="p">,</span> <span class="mf">0.6</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">])</span>
249+
</pre></div>
250+
</div>
235251
<p>Being able to work with sequences of objects/data is so important that
236252
it warrants us to take our first (relatively) deep dive into Python. The
237253
preceding reading introduced Python lists and strings, two important
@@ -584,14 +600,15 @@ <h3>Slicing<a class="headerlink" href="#Slicing" title="Permalink to this headli
584600
is a built-in <code class="docutils literal"><span class="pre">slice</span></code> object that Python uses to form slices. It
585601
accepts the same start, stop, and stop values, and produces the same
586602
sort of slicing behavior:</p>
587-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">seq</span> <span class="o">=</span> <span class="s2">&quot;abcdefg&quot;</span>
588-
<span class="gp">&gt;&gt;&gt; </span><span class="n">seq</span><span class="p">[</span><span class="nb">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">)]</span>
589-
<span class="go">&quot;abc&quot;</span>
603+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># using the `slice` object explicitly</span>
604+
<span class="o">&gt;&gt;&gt;</span> <span class="n">seq</span> <span class="o">=</span> <span class="s2">&quot;abcdefg&quot;</span>
605+
<span class="o">&gt;&gt;&gt;</span> <span class="n">seq</span><span class="p">[</span><span class="nb">slice</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">)]</span>
606+
<span class="s2">&quot;abc&quot;</span>
590607
</pre></div>
591608
</div>
592609
<p>This gives you the ability to work with slices in more creative ways in
593610
your code, since it allows you to assign a variable to a slice.</p>
594-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># using the `slice` object</span>
611+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># using the `slice` object to slice several sequences</span>
595612
<span class="o">&gt;&gt;&gt;</span> <span class="n">seq1</span> <span class="o">=</span> <span class="s2">&quot;apple&quot;</span>
596613
<span class="o">&gt;&gt;&gt;</span> <span class="n">seq2</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
597614
<span class="o">&gt;&gt;&gt;</span> <span class="n">seq3</span> <span class="o">=</span> <span class="p">[</span><span class="bp">True</span><span class="p">,</span> <span class="bp">False</span><span class="p">,</span> <span class="bp">None</span><span class="p">]</span>
@@ -632,7 +649,7 @@ <h4>Handling out-of-bounds indices<a class="headerlink" href="#Handling-out-of-b
632649
<p>However, specifying an out-of-bounds start or stop value for a slice
633650
does not raise an error. Instead, the nearest valid start/stop value is
634651
used instead:</p>
635-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># python</span>
652+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># no bounds checking is used for slicing</span>
636653
<span class="o">&gt;&gt;&gt;</span> <span class="n">x</span><span class="p">[:</span><span class="mi">10000</span><span class="p">]</span>
637654
<span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">]</span>
638655
</pre></div>
@@ -704,11 +721,9 @@ <h4>Reading Comprehension: Checking Your General Understanding<a class="headerli
704721
<div class="section" id="Reading-Comprehension-Exercise-Solutions:">
705722
<h2>Reading Comprehension Exercise Solutions:<a class="headerlink" href="#Reading-Comprehension-Exercise-Solutions:" title="Permalink to this headline"></a></h2>
706723
<p><strong>Basics of sequences</strong></p>
707-
<ol class="arabic simple">
708-
<li></li>
709-
</ol>
710-
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="nb">tuple</span><span class="p">([</span><span class="bp">True</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">22</span><span class="p">])</span>
711-
<span class="go">(True, None, 22)</span>
724+
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="c1"># 1. Change the list [True, None, 22] into a tuple.</span>
725+
<span class="o">&gt;&gt;&gt;</span> <span class="nb">tuple</span><span class="p">([</span><span class="bp">True</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">22</span><span class="p">])</span>
726+
<span class="p">(</span><span class="bp">True</span><span class="p">,</span> <span class="bp">None</span><span class="p">,</span> <span class="mi">22</span><span class="p">)</span>
712727
</pre></div>
713728
</div>
714729
<p>2. We have been introduced to three Python types that are sequential in

0 commit comments

Comments
 (0)