summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHui Lan <lanhui@zjnu.edu.cn>2019-04-01 08:49:55 +0800
committerHui Lan <lanhui@zjnu.edu.cn>2019-04-01 08:49:55 +0800
commitba3c61624bc224d0c5ef39b3c0f0c9ce6f426786 (patch)
tree3a61bf857da0d0b634402bf200ac47cf9ca07362
parent4ce937568716177d90ffbdde3c8ad1e5e935bc1d (diff)
updated lecture notes
-rw-r--r--LectureNotesOnPython.html32
-rw-r--r--LectureNotesOnPython.rst37
2 files changed, 64 insertions, 5 deletions
diff --git a/LectureNotesOnPython.html b/LectureNotesOnPython.html
index 34d3462..4333633 100644
--- a/LectureNotesOnPython.html
+++ b/LectureNotesOnPython.html
@@ -406,10 +406,11 @@ ul.auto-toc {
<li><a class="reference internal" href="#id11" id="id38">函数</a><ul>
<li><a class="reference internal" href="#id12" id="id39">局部变量</a></li>
<li><a class="reference internal" href="#id13" id="id40">全局变量</a></li>
-<li><a class="reference internal" href="#id14" id="id41">函数执行顺序</a></li>
+<li><a class="reference internal" href="#id14" id="id41">调用函数与传递参数</a></li>
+<li><a class="reference internal" href="#flow-of-execution" id="id42">函数执行顺序 (flow of execution)</a></li>
</ul>
</li>
-<li><a class="reference internal" href="#id15" id="id42">参考</a></li>
+<li><a class="reference internal" href="#id15" id="id43">参考</a></li>
</ul>
</div>
<div class="section" id="python">
@@ -1281,11 +1282,34 @@ error-prone(易错)</p>
<p>练习: 定义一个函数 <tt class="docutils literal">empty_dict</tt> 清空字典 <tt class="docutils literal">record</tt>。 要求: 不能用 <tt class="docutils literal">return</tt> 语句。 提示: 可以用 <tt class="docutils literal">pop</tt> 方法, 或者直接给 <tt class="docutils literal">record</tt> 赋值 <tt class="docutils literal">{}</tt> 。</p>
</div>
<div class="section" id="id14">
-<h2><a class="toc-backref" href="#id41">函数执行顺序</a></h2>
+<h2><a class="toc-backref" href="#id41">调用函数与传递参数</a></h2>
+<p>在使用函数前要先确定函数已经被定义。</p>
+<p>区别 <tt class="docutils literal">argument</tt> 与 <tt class="docutils literal">parameter</tt> 。传过去的是 <tt class="docutils literal">argument</tt> , 函数头的参数列表是 <tt class="docutils literal">parameter</tt> 。 <tt class="docutils literal">argument</tt> 的值赋给 <tt class="docutils literal">parameter</tt> , <tt class="docutils literal">parameter</tt> 是函数的局部变量。</p>
+<p><tt class="docutils literal">argument</tt> 与 <tt class="docutils literal">parameter</tt> 的名字可以相同也可以不同。</p>
+<pre class="code python literal-block">
+<span class="keyword">def</span> <span class="name function">reverse_string</span><span class="punctuation">(</span><span class="name">s</span><span class="punctuation">):</span>
+ <span class="name">t</span> <span class="operator">=</span> <span class="literal string single">''</span>
+ <span class="keyword">for</span> <span class="name">i</span> <span class="operator word">in</span> <span class="name builtin">range</span><span class="punctuation">(</span><span class="name builtin">len</span><span class="punctuation">(</span><span class="name">s</span><span class="punctuation">)</span><span class="operator">-</span><span class="literal number integer">1</span><span class="punctuation">,</span><span class="operator">-</span><span class="literal number integer">1</span><span class="punctuation">,</span><span class="operator">-</span><span class="literal number integer">1</span><span class="punctuation">):</span>
+ <span class="name">t</span> <span class="operator">+=</span> <span class="name">s</span><span class="punctuation">[</span><span class="name">i</span><span class="punctuation">]</span>
+ <span class="keyword">return</span> <span class="name">t</span>
+
+
+
+<span class="name">s</span> <span class="operator">=</span> <span class="literal string single">'put'</span>
+<span class="name">t</span> <span class="operator">=</span> <span class="name">reverse_string</span><span class="punctuation">(</span><span class="name">s</span><span class="punctuation">)</span>
+<span class="keyword">print</span><span class="punctuation">(</span><span class="name">t</span><span class="punctuation">)</span>
+</pre>
+<p>以上 s 一个是全局变量一个是局部变量。</p>
+<p>以上 t 一个是全局变量一个是局部变量。</p>
+</div>
+<div class="section" id="flow-of-execution">
+<h2><a class="toc-backref" href="#id42">函数执行顺序 (flow of execution)</a></h2>
+<p>函数的定义不执行,被调用时才执行。</p>
+<p>顺序执行。 当遇到函数调用时,跳转到函数,执行函数,函数返回后继续执行跳转地后一条语句。</p>
</div>
</div>
<div class="section" id="id15">
-<h1><a class="toc-backref" href="#id42">参考</a></h1>
+<h1><a class="toc-backref" href="#id43">参考</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 80e9d5e..3f1e76d 100644
--- a/LectureNotesOnPython.rst
+++ b/LectureNotesOnPython.rst
@@ -987,9 +987,44 @@ key与value互换
练习: 定义一个函数 ``empty_dict`` 清空字典 ``record``。 要求: 不能用 ``return`` 语句。 提示: 可以用 ``pop`` 方法, 或者直接给 ``record`` 赋值 ``{}`` 。
-函数执行顺序
+调用函数与传递参数
~~~~~~~~~~~~~~~~~~~~~~~~~
+在使用函数前要先确定函数已经被定义。
+
+区别 ``argument`` 与 ``parameter`` 。传过去的是 ``argument`` , 函数头的参数列表是 ``parameter`` 。 ``argument`` 的值赋给 ``parameter`` , ``parameter`` 是函数的局部变量。
+
+``argument`` 与 ``parameter`` 的名字可以相同也可以不同。
+
+
+.. code:: python
+
+ def reverse_string(s):
+ t = ''
+ for i in range(len(s)-1,-1,-1):
+ t += s[i]
+ return t
+
+
+
+ s = 'put'
+ t = reverse_string(s)
+ print(t)
+
+以上 s 一个是全局变量一个是局部变量。
+
+以上 t 一个是全局变量一个是局部变量。
+
+
+
+
+函数执行顺序 (flow of execution)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+函数的定义不执行,被调用时才执行。
+
+顺序执行。 当遇到函数调用时,跳转到函数,执行函数,函数返回后继续执行跳转地后一条语句。
+
参考