diff options
-rw-r--r-- | LectureNotesOnPython.html | 105 | ||||
-rw-r--r-- | LectureNotesOnPython.rst | 27 |
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&tf=U2VydmljZT1EaWN0aW9uYXJ5QW5zd2VyVjIgU2NlbmFyaW89RGVmaW5pdGlvblNjZW5hcmlvIFBvc2l0aW9uPU5PUCBSYW5raW5nRGF0YT1UcnVlIEZvcmNlUGxhY2U9RmFsc2UgUGFpcnM9RGljdGlvbmFyeVdvcmQ6cHl0aG9uO3NjbjpEZWZpbml0aW9uU2NlbmFyaW87cDpRQVM7IHw%3d&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. ''' |