<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Python - 标签 - Isaac's Blog</title><link>https://neutralmilkzzz.github.io/tags/python/</link><description>Python - 标签 - Isaac's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Fri, 05 Dec 2025 01:28:35 +0000</lastBuildDate><atom:link href="https://neutralmilkzzz.github.io/tags/python/" rel="self" type="application/rss+xml"/><item><title>COMP1117复习：第一弹</title><link>https://neutralmilkzzz.github.io/%E9%94%99%E9%A2%98%E6%9C%AC/</link><pubDate>Fri, 05 Dec 2025 01:28:35 +0000</pubDate><author>xxxx</author><guid>https://neutralmilkzzz.github.io/%E9%94%99%E9%A2%98%E6%9C%AC/</guid><description><![CDATA[<hr>
<h2 id="整理了一些易错点发到博客上帮大家查缺补漏">整理了一些易错点，发到博客上帮大家查缺补漏。</h2>
<p>考虑以下Python代码。如果<code>add_item()</code>函数被调用两次，第二次调用会打印什么？</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">add_item</span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="n">basket</span><span class="o">=</span><span class="p">[]):</span>
</span></span><span class="line"><span class="cl">    <span class="n">basket</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="nb">print</span><span class="p">(</span><span class="n">basket</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">   
</span></span><span class="line"><span class="cl"><span class="n">add_item</span><span class="p">(</span><span class="s1">&#39;apple&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">add_item</span><span class="p">(</span><span class="s1">&#39;banana&#39;</span><span class="p">)</span></span></span></code></pre></div></div>
<p>答案是<code>[apple,banana]</code></p>
<p>注意到Lecture 5中提到</p>
<blockquote>
<p><strong>Default arguments are evaluated at definition time, not function run time.</strong></p>
</blockquote>
<p>同类型还有一道题</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">nums</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></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">nums</span><span class="p">)):</span>
</span></span><span class="line"><span class="cl"><span class="n">nums</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">&#34; &#34;</span><span class="p">)</span></span></span></code></pre></div></div>
<p>输出是？</p>
<p>不是无限循环！</p>
<p>是0 1 2啦，因为len(nums)只算一次</p>
<hr>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">update_list</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">data</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></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">9</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="n">update_list</span><span class="p">(</span><span class="n">my_list</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">my_list</span><span class="p">)</span></span></span></code></pre></div></div>
<p>没搞懂的可以在<code>pythontutor.com</code>上跑一遍代码。</p>
<p>应该输出<code>[8,9,4]</code>而不是<code>[1,2]</code></p>
<p>append(4)直接修改了原列表，而<code>data = [1,2]</code>是在函数内的局部变量赋值。</p>
<hr>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">matrix</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">*</span> <span class="mi">3</span>
</span></span><span class="line"><span class="cl"><span class="n">matrix</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">5</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span></span></span></code></pre></div></div>
<p>是[[5],[5],[5]]，而非[[0],[0],[0]]</p>
<p><code>*</code> 操作符复制的是<strong>引用</strong>（地址）而不是对象本身</p>
<hr>
<p>A._1_2_3</p>
<p>B.1_2_3_</p>
<p>C.A_1.com</p>
<p>哪个是valid的？</p>
<p>答案：A</p>
<p>在课程里提到了两次valid的问题</p>
<ul>
<li>文件名</li>
<li>变量名</li>
</ul>
<p>对于前者，结尾是.py就可以</p>
<p>对于后者有两项要求：</p>
<ul>
<li>变量名必须以字母或者下划线开头，<strong>数字</strong>不行</li>
<li>变量名只能包含字母、数字和下划线，<code>.</code>,<code>-</code>都不行。</li>
</ul>
<hr>
<p>一个冷知识，return多个值的时候，其实return的是元组。</p>
]]></description></item><item><title>Comp1117_1</title><link>https://neutralmilkzzz.github.io/comp1117_1/</link><pubDate>Fri, 05 Dec 2025 01:36:09 +0800</pubDate><author>xxxx</author><guid>https://neutralmilkzzz.github.io/comp1117_1/</guid><description><![CDATA[<hr>
<p>考虑以下Python代码。如果<code>add_item()</code>函数被调用两次，第二次调用会打印什么？</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">add_item</span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="n">basket</span><span class="o">=</span><span class="p">[]):</span>
</span></span><span class="line"><span class="cl">    <span class="n">basket</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="nb">print</span><span class="p">(</span><span class="n">basket</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">   
</span></span><span class="line"><span class="cl"><span class="n">add_item</span><span class="p">(</span><span class="s1">&#39;apple&#39;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">add_item</span><span class="p">(</span><span class="s1">&#39;banana&#39;</span><span class="p">)</span></span></span></code></pre></div></div>
<p>答案是<code>[apple,banana]</code></p>
<p>注意到Lecture 5中提到</p>
<blockquote>
<p><strong>Default arguments are evaluated at definition time, not function run time.</strong></p>
</blockquote>
<p>同类型还有一道题</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">nums</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></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">nums</span><span class="p">)):</span>
</span></span><span class="line"><span class="cl"><span class="n">nums</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">&#34; &#34;</span><span class="p">)</span></span></span></code></pre></div></div>
<p>输出是？</p>
<p>不是无限循环！</p>
<p>是0 1 2啦，因为len(nums)只算一次</p>
<hr>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">update_list</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="n">data</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></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">8</span><span class="p">,</span><span class="mi">9</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="n">update_list</span><span class="p">(</span><span class="n">my_list</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">my_list</span><span class="p">)</span></span></span></code></pre></div></div>
<p>没搞懂的可以在<code>pythontutor.com</code>上跑一遍代码。</p>
<p>应该输出<code>[8,9,4]</code>而不是<code>[1,2]</code></p>
<p>append(4)直接修改了原列表，而<code>data = [1,2]</code>是在函数内的局部变量赋值。</p>
<hr>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-python">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">matrix</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">*</span> <span class="mi">3</span>
</span></span><span class="line"><span class="cl"><span class="n">matrix</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">5</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="n">matrix</span><span class="p">)</span></span></span></code></pre></div></div>
<p>是[[5],[5],[5]]，而非[[0],[0],[0]]</p>
<p><code>*</code> 操作符复制的是<strong>引用</strong>（地址）而不是对象本身</p>
<hr>
<p>A._1_2_3</p>
<p>B.1_2_3_</p>
<p>C.A_1.com</p>
<p>哪个是valid的？</p>
<p>答案：A</p>
<p>在课程里提到了两次valid的问题</p>
<ul>
<li>文件名</li>
<li>变量名</li>
</ul>
<p>对于前者，结尾是.py就可以</p>
<p>对于后者有两项要求：</p>
<ul>
<li>变量名必须以字母或者下划线开头，<strong>数字</strong>不行</li>
<li>变量名只能包含字母、数字和下划线，<code>.</code>,<code>-</code>都不行。</li>
</ul>
<hr>
<p>一个冷知识，return多个值的时候，其实return的是元组。</p>
]]></description></item></channel></rss>