summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LectureNotesOnPython.html105
-rw-r--r--LectureNotesOnPython.rst27
2 files changed, 93 insertions, 39 deletions
diff --git a/LectureNotesOnPython.html b/LectureNotesOnPython.html
index 6e8a1f7..966a1b5 100644
--- a/LectureNotesOnPython.html
+++ b/LectureNotesOnPython.html
@@ -374,13 +374,44 @@ ul.auto-toc {
</tbody>
</table>
<p>非学究写书,无空洞行文。Python语法简洁,库函数全面强大,编程速度快,运行速度也不慢。</p>
+<div class="contents topic" id="id1">
+<p class="topic-title first">内容目录</p>
+<ul class="simple">
+<li><a class="reference internal" href="#python" id="id12">Python的发音纠正</a></li>
+<li><a class="reference internal" href="#id2" id="id13">Python源流</a></li>
+<li><a class="reference internal" href="#id3" id="id14">Python的关键词</a></li>
+<li><a class="reference internal" href="#id4" id="id15">值的类型</a></li>
+<li><a class="reference internal" href="#variable" id="id16">变量(Variable)</a></li>
+<li><a class="reference internal" href="#mutable" id="id17">可变(mutable)类型与不可变类型</a></li>
+<li><a class="reference internal" href="#id5" id="id18">数与格式化显示</a></li>
+<li><a class="reference internal" href="#strings" id="id19">字符串(Strings)</a></li>
+<li><a class="reference internal" href="#concatenation" id="id20">字符串相加(concatenation)</a></li>
+<li><a class="reference internal" href="#slice" id="id21">子串(slice)</a></li>
+<li><a class="reference internal" href="#id6" id="id22">搜索字符串</a></li>
+<li><a class="reference internal" href="#string" id="id23">String类(对象)方法</a></li>
+<li><a class="reference internal" href="#in" id="id24">in操作符</a></li>
+<li><a class="reference internal" href="#id7" id="id25">字符串比较</a></li>
+<li><a class="reference internal" href="#id8" id="id26">列表</a></li>
+<li><a class="reference internal" href="#id9" id="id27">列表作为参数</a></li>
+<li><a class="reference internal" href="#append" id="id28">注意区别 <tt class="docutils literal">append</tt> 与 <tt class="docutils literal">+</tt> 操作符</a><ul>
+<li><a class="reference internal" href="#tdd-test-driven-development" id="id29">TDD - Test-driven Development</a></li>
+<li><a class="reference internal" href="#id10" id="id30">计算复杂度</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#dictionary" id="id31">字典(Dictionary)</a><ul>
+<li><a class="reference internal" href="#incremental-development" id="id32">递增开发(Incremental Development)</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#id11" id="id33">参考</a></li>
+</ul>
+</div>
<div class="section" id="python">
-<h1>Python的发音纠正</h1>
+<h1><a class="toc-backref" href="#id12">Python的发音纠正</a></h1>
<p>国人普遍把th发作s。 Not quite correct。</p>
<p>ˈpī-ˌthän , -thən <a class="reference external" href="https://cn.bing.com/search?q=define%20python&amp;tf=U2VydmljZT1EaWN0aW9uYXJ5QW5zd2VyVjIgU2NlbmFyaW89RGVmaW5pdGlvblNjZW5hcmlvIFBvc2l0aW9uPU5PUCBSYW5raW5nRGF0YT1UcnVlIEZvcmNlUGxhY2U9RmFsc2UgUGFpcnM9RGljdGlvbmFyeVdvcmQ6cHl0aG9uO3NjbjpEZWZpbml0aW9uU2NlbmFyaW87cDpRQVM7IHw%3d&amp;hs=hyRBF0mYq9hrfQUq66DIZnFVta1ZGRfBiBks25oUguk%3d">pronounciation</a></p>
</div>
-<div class="section" id="id1">
-<h1>Python源流</h1>
+<div class="section" id="id2">
+<h1><a class="toc-backref" href="#id13">Python源流</a></h1>
<p>Python之父Guido van Rossum,荷兰人,1956年生,1982年阿姆斯特丹大学获得
数学与计算机科学硕士学位。有过ABC语言的工作经验。1989年设计了Python语
言。</p>
@@ -429,8 +460,8 @@ ul.auto-toc {
</div>
</blockquote>
</div>
-<div class="section" id="id2">
-<h1>Python的关键词</h1>
+<div class="section" id="id3">
+<h1><a class="toc-backref" href="#id14">Python的关键词</a></h1>
<div class="line-block">
<div class="line">def pass</div>
<div class="line">from import</div>
@@ -451,8 +482,8 @@ ul.auto-toc {
</div>
<p>关键词被语言留用(reserved),无法作变量名。</p>
</div>
-<div class="section" id="id3">
-<h1>值的类型</h1>
+<div class="section" id="id4">
+<h1><a class="toc-backref" href="#id15">值的类型</a></h1>
<p>所有的值都是对象。a = 5, help(a) a.bit_length()</p>
<p>数字。1, 1.,1.1, .1, 1e1, 1e-1, 1E1, 1E-1</p>
<dl class="docutils">
@@ -472,7 +503,7 @@ A list of objects</dd>
<p>元组(tuple),字典(dict)。</p>
</div>
<div class="section" id="variable">
-<h1>变量(Variable)</h1>
+<h1><a class="toc-backref" href="#id16">变量(Variable)</a></h1>
<p>是一个名字(name),是指向一个值(value)的名字。</p>
<p>值存放在内存(memory)中的某个地址。</p>
<p>尽量选有意义的简短的名字。比如,代表个数用n,代表索引用i,j,k。</p>
@@ -561,7 +592,7 @@ A list of objects</dd>
</ul>
</div>
<div class="section" id="mutable">
-<h1>可变(mutable)类型与不可变类型</h1>
+<h1><a class="toc-backref" href="#id17">可变(mutable)类型与不可变类型</a></h1>
<p>字符串是不可变的(immutable)类型,不能在原内存地址改变。</p>
<p>a = 'hello' 不可以原地修改a[0] = 'H'。需要修改a的值时,需要对a进行重新赋值a = 'Hello'。</p>
<p>列表是可变(mutable)类型,能在原内存地址改变。</p>
@@ -585,8 +616,8 @@ A list of objects</dd>
</div>
</blockquote>
</div>
-<div class="section" id="id4">
-<h1>数</h1>
+<div class="section" id="id5">
+<h1><a class="toc-backref" href="#id18">数与格式化显示</a></h1>
<div class="line-block">
<div class="line">x = 3.1415926</div>
</div>
@@ -632,7 +663,7 @@ A list of objects</dd>
</div>
</div>
<div class="section" id="strings">
-<h1>字符串(Strings)</h1>
+<h1><a class="toc-backref" href="#id19">字符串(Strings)</a></h1>
<p>由字符组成。</p>
<div class="line-block">
<div class="line">fruit = 'banana!'</div>
@@ -688,7 +719,7 @@ A list of objects</dd>
<p>以上 <tt class="docutils literal"># [start,stop,step]</tt> 代表注释(comment),注释以 <tt class="docutils literal">#</tt> 号开头。</p>
</div>
<div class="section" id="concatenation">
-<h1>字符串相加(concatenation)</h1>
+<h1><a class="toc-backref" href="#id20">字符串相加(concatenation)</a></h1>
<p>输出Jack, Kack, Lack, Mack, Nack, Ouack, Pack, and Quack</p>
<div class="line-block">
<div class="line">prefixes = 'JKLMNOPQ'</div>
@@ -707,7 +738,7 @@ A list of objects</dd>
</div>
</div>
<div class="section" id="slice">
-<h1>子串(slice)</h1>
+<h1><a class="toc-backref" href="#id21">子串(slice)</a></h1>
<p>s[n:m],其中n或m可省略。
包括第n个字符,不包括第m个字符。(索引自0开始)</p>
<div class="line-block">
@@ -730,8 +761,8 @@ A list of objects</dd>
<div class="line">new_greeting = 'J' + greeting[1:]</div>
</div>
</div>
-<div class="section" id="id5">
-<h1>搜索字符串</h1>
+<div class="section" id="id6">
+<h1><a class="toc-backref" href="#id22">搜索字符串</a></h1>
<div class="line-block">
<div class="line">def find(word, c):</div>
<div class="line-block">
@@ -757,7 +788,7 @@ A list of objects</dd>
<p>练习:用上面三参数的find来做。</p>
</div>
<div class="section" id="string">
-<h1>String类(对象)方法</h1>
+<h1><a class="toc-backref" href="#id23">String类(对象)方法</a></h1>
<div class="line-block">
<div class="line">upper()</div>
<div class="line">lower()</div>
@@ -770,14 +801,14 @@ A list of objects</dd>
</div>
</div>
<div class="section" id="in">
-<h1>in操作符</h1>
+<h1><a class="toc-backref" href="#id24">in操作符</a></h1>
<p>'a' in 'banana'
'seed' in 'banana'</p>
<p>练习:写出下面的函数,使得
in_both('apples', 'oranges')返回'aes'</p>
</div>
-<div class="section" id="id6">
-<h1>字符串比较</h1>
+<div class="section" id="id7">
+<h1><a class="toc-backref" href="#id25">字符串比较</a></h1>
<p>字典序(alphabetical order)。大写字母排在小写字母前。</p>
<p>字符串之间可以有以下对比操作:</p>
<div class="line-block">
@@ -792,8 +823,8 @@ in_both('apples', 'oranges')返回'aes'</p>
<p>计算复杂度。</p>
<p>即兴定义函数,制造一个长度不小于4的密码。</p>
</div>
-<div class="section" id="id7">
-<h1>列表</h1>
+<div class="section" id="id8">
+<h1><a class="toc-backref" href="#id26">列表</a></h1>
<p>语言的内置(built-in)类型。注意与String类比,index也是从0开始, in操作符, 求长度,获得字串,遍历操作类似。</p>
<blockquote>
<div class="line-block">
@@ -910,8 +941,8 @@ a与b是指向[1,2,3]的两个references。
因为[1,2,3]是mutable的,所以使用a对[1,2,3]做改变同样影响到b对应的值。
error-prone(易错)</p>
</div>
-<div class="section" id="id8">
-<h1>列表作为参数</h1>
+<div class="section" id="id9">
+<h1><a class="toc-backref" href="#id27">列表作为参数</a></h1>
<blockquote>
<div class="line-block">
<div class="line">def delete_head(t):</div>
@@ -927,7 +958,7 @@ error-prone(易错)</p>
</blockquote>
</div>
<div class="section" id="append">
-<h1>注意区别 <tt class="docutils literal">append</tt> 与 <tt class="docutils literal">+</tt> 操作符</h1>
+<h1><a class="toc-backref" href="#id28">注意区别 <tt class="docutils literal">append</tt> 与 <tt class="docutils literal">+</tt> 操作符</a></h1>
<blockquote>
<div class="line-block">
<div class="line">t1 = [1, 2]</div>
@@ -953,15 +984,19 @@ error-prone(易错)</p>
<dd>return t[1:]</dd>
</dl>
</blockquote>
-<dl class="docutils">
-<dt><strong>TDD</strong></dt>
-<dd>Test-driven Development。测试驱动开发。 使用pytest。如何安装? 使用命令 <tt class="docutils literal">pip install pytest</tt></dd>
-</dl>
+<div class="section" id="tdd-test-driven-development">
+<h2><a class="toc-backref" href="#id29">TDD - Test-driven Development</a></h2>
+<p>测试驱动开发。 My favourite。 刺激有挑战性。 帮助厘清需求。 帮助编写代码。</p>
+<p>推荐使用pytest。如何安装? 使用命令 <tt class="docutils literal">pip install pytest</tt></p>
+</div>
+<div class="section" id="id10">
+<h2><a class="toc-backref" href="#id30">计算复杂度</a></h2>
<p>用Big O表述复杂度。O(n), O(n^2), O(n^3)。</p>
<p>密码实验回顾。</p>
</div>
+</div>
<div class="section" id="dictionary">
-<h1>字典(Dictionary)</h1>
+<h1><a class="toc-backref" href="#id31">字典(Dictionary)</a></h1>
<p>Mutable数据类型。</p>
<p>实际开发中超级有用。</p>
<blockquote>
@@ -984,7 +1019,10 @@ error-prone(易错)</p>
<p>value</p>
<p>key-value pair (item)</p>
<p>item的顺序不可预测,不是按照创建时的顺序。</p>
-<p>练习:给定一个字符串,数出每个字母出现的频率。使用 <strong>Incremental Development</strong> 。</p>
+<div class="section" id="incremental-development">
+<h2><a class="toc-backref" href="#id32">递增开发(Incremental Development)</a></h2>
+<p>每次完成一小点。从易到难。</p>
+<p>练习:给定一个字符串,数出每个字母出现的频率。</p>
<blockquote>
<div class="line-block">
<div class="line">def histogram(s):</div>
@@ -1039,8 +1077,9 @@ error-prone(易错)</p>
</blockquote>
<p>练习:给定一个字符串,数出每个单词出现的频率。</p>
</div>
-<div class="section" id="id9">
-<h1>参考</h1>
+</div>
+<div class="section" id="id11">
+<h1><a class="toc-backref" href="#id33">参考</a></h1>
<ul class="simple">
<li>Think Python 2e – Green Tea Press. <a class="reference external" href="http://greenteapress.com/thinkpython2/thinkpython2.pdf">http://greenteapress.com/thinkpython2/thinkpython2.pdf</a>.</li>
</ul>
diff --git a/LectureNotesOnPython.rst b/LectureNotesOnPython.rst
index b47b929..8505e95 100644
--- a/LectureNotesOnPython.rst
+++ b/LectureNotesOnPython.rst
@@ -10,6 +10,7 @@ Lecture Notes on Python
非学究写书,无空洞行文。Python语法简洁,库函数全面强大,编程速度快,运行速度也不慢。
+.. contents:: 内容目录
Python的发音纠正
@@ -259,8 +260,8 @@ a = [1, 2] 可以原地修改a[0] = 2
-数
-------
+数与格式化显示
+-------------------------
| x = 3.1415926
@@ -641,11 +642,18 @@ error-prone(易错)
return t[1:]
-**TDD**
- Test-driven Development。测试驱动开发。 使用pytest。如何安装? 使用命令 ``pip install pytest``
+TDD - Test-driven Development
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+测试驱动开发。 My favourite。 刺激有挑战性。 帮助厘清需求。 帮助编写代码。
+
+推荐使用pytest。如何安装? 使用命令 ``pip install pytest``
+
-
+计算复杂度
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
用Big O表述复杂度。O(n), O(n^2), O(n^3)。
@@ -680,7 +688,14 @@ key-value pair (item)
item的顺序不可预测,不是按照创建时的顺序。
-练习:给定一个字符串,数出每个字母出现的频率。使用 **Incremental Development** 。
+
+递增开发(Incremental Development)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+每次完成一小点。从易到难。
+
+
+练习:给定一个字符串,数出每个字母出现的频率。
| def histogram(s):
| ''' Cannot pass any test cases. '''