<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.xhliu.cn/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.xhliu.cn/" rel="alternate" type="text/html" hreflang="zh-CN" /><updated>2026-08-12T22:44:11+08:00</updated><id>https://www.xhliu.cn/feed.xml</id><title type="html">My Python Notebook</title><subtitle>记录 Python 学习、数据分析与全栈开发的个人博客</subtitle><author><name>LiuXiaohan</name></author><entry><title type="html">你好，Python！我的第一篇博客</title><link href="https://www.xhliu.cn/blog/2026/08/12/hello-python/" rel="alternate" type="text/html" title="你好，Python！我的第一篇博客" /><published>2026-08-12T00:00:00+08:00</published><updated>2026-08-12T00:00:00+08:00</updated><id>https://www.xhliu.cn/blog/2026/08/12/hello-python</id><content type="html" xml:base="https://www.xhliu.cn/blog/2026/08/12/hello-python/"><![CDATA[<p>欢迎来到我的个人博客！这是我在 <strong>My Python Notebook</strong> 的第一篇文章。</p>

<h2 id="为什么写博客">为什么写博客？</h2>

<p>学习编程的路上，我积累了不少笔记和项目经验，但它们散落在各个地方——本地文件夹、Jupyter Notebook、笔记软件里。写博客的目的很简单：</p>

<ol>
  <li><strong>整理知识</strong>：把零散的学习经验系统化</li>
  <li><strong>分享交流</strong>：让更多 Python 学习者受益</li>
  <li><strong>见证成长</strong>：记录从入门到进阶的每一步</li>
</ol>

<h2 id="这个博客会写什么">这个博客会写什么？</h2>

<h3 id="-python-基础">🐍 Python 基础</h3>

<p>从变量、循环、函数到面向对象、装饰器、生成器，系统整理 Python 学习笔记。</p>

<h3 id="-数据分析">📊 数据分析</h3>

<p>使用 Pandas、NumPy、Matplotlib 处理真实数据，记录数据清洗、分析和可视化的实战经验。</p>

<h3 id="-机器学习">🤖 机器学习</h3>

<p>逐步学习 Scikit-learn 中的经典算法，从线性回归到决策树、聚类，配合完整代码示例。</p>

<h3 id="-web-开发">💻 Web 开发</h3>

<p>探索 Flask 框架，构建自己的小工具和 Web 应用。</p>

<h2 id="一个简单的-python-示例">一个简单的 Python 示例</h2>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># hello_python.py
</span><span class="k">def</span> <span class="nf">greet</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
    <span class="sh">"""</span><span class="s">一个简单的问候函数</span><span class="sh">"""</span>
    <span class="k">return</span> <span class="sa">f</span><span class="sh">"</span><span class="s">你好，</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s">！欢迎来到 Python 的世界。</span><span class="sh">"</span>

<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="sh">"</span><span class="s">__main__</span><span class="sh">"</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="nf">greet</span><span class="p">(</span><span class="sh">"</span><span class="s">Python</span><span class="sh">"</span><span class="p">))</span>
</code></pre></div></div>

<p>运行结果：</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span>python hello_python.py
你好，Python！欢迎来到 Python 的世界。
</code></pre></div></div>

<h2 id="技术栈">技术栈</h2>

<p>这个博客使用：</p>

<ul>
  <li><strong>Jekyll</strong> - 静态网站生成器</li>
  <li><strong>EdgeOne Pages</strong> - 站点托管</li>
  <li><strong>Lagrange 风格主题</strong> - 简洁清爽的设计</li>
</ul>

<hr />

<blockquote>
  <p>学习编程是一场持续的长跑，让我们一起坚持下去。🐍</p>
</blockquote>

<p>Happy coding! 🚀</p>]]></content><author><name>LiuXiaohan</name></author><category term="学习笔记" /><category term="Python" /><category term="博客" /><category term="Jekyll" /><category term="开始" /><summary type="html"><![CDATA[从零搭建 Jekyll 博客，记录 Python 学习、项目实践与思考。]]></summary></entry><entry><title type="html">Python条件判断</title><link href="https://www.xhliu.cn/blog/2026/08/12/python-condition/" rel="alternate" type="text/html" title="Python条件判断" /><published>2026-08-12T00:00:00+08:00</published><updated>2026-08-12T00:00:00+08:00</updated><id>https://www.xhliu.cn/blog/2026/08/12/python-condition</id><content type="html" xml:base="https://www.xhliu.cn/blog/2026/08/12/python-condition/"><![CDATA[<h1 id="python-条件判断语句学习笔记">Python 条件判断语句学习笔记</h1>

<h2 id="1-什么是条件判断">1. 什么是条件判断</h2>

<p>条件判断是编程中用于根据特定条件决定执行哪段代码的机制。在 Python 中，条件判断语句让程序能够像人类一样做出“如果……就……”的逻辑决策。</p>

<h2 id="2-布尔值bool与比较运算">2. 布尔值（bool）与比较运算</h2>

<p>条件判断的核心是<strong>布尔值</strong>（<code class="language-plaintext highlighter-rouge">True</code> / <code class="language-plaintext highlighter-rouge">False</code>）。任何条件表达式最终都会被求值为布尔值。</p>

<h3 id="21-常用比较运算符">2.1 常用比较运算符</h3>

<table>
  <thead>
    <tr>
      <th>运算符</th>
      <th>含义</th>
      <th>示例</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">==</code></td>
      <td>等于</td>
      <td><code class="language-plaintext highlighter-rouge">a == b</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">!=</code></td>
      <td>不等于</td>
      <td><code class="language-plaintext highlighter-rouge">a != b</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">&gt;</code></td>
      <td>大于</td>
      <td><code class="language-plaintext highlighter-rouge">a &gt; b</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">&lt;</code></td>
      <td>小于</td>
      <td><code class="language-plaintext highlighter-rouge">a &lt; b</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">&gt;=</code></td>
      <td>大于等于</td>
      <td><code class="language-plaintext highlighter-rouge">a &gt;= b</code></td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">&lt;=</code></td>
      <td>小于等于</td>
      <td><code class="language-plaintext highlighter-rouge">a &lt;= b</code></td>
    </tr>
  </tbody>
</table>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">age</span> <span class="o">=</span> <span class="mi">18</span>
<span class="nf">print</span><span class="p">(</span><span class="n">age</span> <span class="o">&gt;=</span> <span class="mi">18</span><span class="p">)</span>  <span class="c1"># True
</span><span class="nf">print</span><span class="p">(</span><span class="n">age</span> <span class="o">==</span> <span class="mi">20</span><span class="p">)</span>  <span class="c1"># False
</span></code></pre></div></div>

<h2 id="3-if-语句单分支">3. <code class="language-plaintext highlighter-rouge">if</code> 语句（单分支）</h2>

<p>最基本的条件判断结构，当条件为 <code class="language-plaintext highlighter-rouge">True</code> 时执行缩进的代码块。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">if</span> <span class="n">条件</span><span class="p">:</span>
    <span class="c1"># 条件为 True 时执行
</span>    <span class="n">语句块</span>
</code></pre></div></div>

<p><strong>示例：</strong></p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">score</span> <span class="o">=</span> <span class="mi">85</span>
<span class="k">if</span> <span class="n">score</span> <span class="o">&gt;=</span> <span class="mi">60</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">恭喜，你及格了！</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<blockquote>
  <p><strong>注意</strong>：Python 使用缩进（通常 4 个空格）表示代码块，不要忘记冒号 <code class="language-plaintext highlighter-rouge">:</code>。</p>
</blockquote>

<h2 id="4-if-else-语句双分支">4. <code class="language-plaintext highlighter-rouge">if-else</code> 语句（双分支）</h2>

<p>当需要“二选一”时，使用 <code class="language-plaintext highlighter-rouge">else</code> 处理条件为 <code class="language-plaintext highlighter-rouge">False</code> 的情况。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">if</span> <span class="n">条件</span><span class="p">:</span>
    <span class="c1"># 条件为 True 时执行
</span>    <span class="n">语句块1</span>
<span class="k">else</span><span class="p">:</span>
    <span class="c1"># 条件为 False 时执行
</span>    <span class="n">语句块2</span>
</code></pre></div></div>

<p><strong>示例：</strong></p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">temperature</span> <span class="o">=</span> <span class="mi">30</span>
<span class="k">if</span> <span class="n">temperature</span> <span class="o">&gt;</span> <span class="mi">25</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">天气炎热</span><span class="sh">"</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">天气凉爽</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<h2 id="5-if-elif-else-语句多分支">5. <code class="language-plaintext highlighter-rouge">if-elif-else</code> 语句（多分支）</h2>

<p>当有多个互斥条件需要依次判断时，使用 <code class="language-plaintext highlighter-rouge">elif</code>（即 <code class="language-plaintext highlighter-rouge">else if</code> 的缩写）。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">if</span> <span class="n">条件1</span><span class="p">:</span>
    <span class="n">语句块1</span>
<span class="k">elif</span> <span class="n">条件2</span><span class="p">:</span>
    <span class="n">语句块2</span>
<span class="k">elif</span> <span class="n">条件3</span><span class="p">:</span>
    <span class="n">语句块3</span>
<span class="k">else</span><span class="p">:</span>
    <span class="c1"># 所有条件均为 False 时执行
</span>    <span class="n">语句块4</span>
</code></pre></div></div>

<p><strong>示例：</strong></p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">score</span> <span class="o">=</span> <span class="mi">78</span>
<span class="k">if</span> <span class="n">score</span> <span class="o">&gt;=</span> <span class="mi">90</span><span class="p">:</span>
    <span class="n">grade</span> <span class="o">=</span> <span class="sh">"</span><span class="s">A</span><span class="sh">"</span>
<span class="k">elif</span> <span class="n">score</span> <span class="o">&gt;=</span> <span class="mi">80</span><span class="p">:</span>
    <span class="n">grade</span> <span class="o">=</span> <span class="sh">"</span><span class="s">B</span><span class="sh">"</span>
<span class="k">elif</span> <span class="n">score</span> <span class="o">&gt;=</span> <span class="mi">70</span><span class="p">:</span>
    <span class="n">grade</span> <span class="o">=</span> <span class="sh">"</span><span class="s">C</span><span class="sh">"</span>
<span class="k">elif</span> <span class="n">score</span> <span class="o">&gt;=</span> <span class="mi">60</span><span class="p">:</span>
    <span class="n">grade</span> <span class="o">=</span> <span class="sh">"</span><span class="s">D</span><span class="sh">"</span>
<span class="k">else</span><span class="p">:</span>
    <span class="n">grade</span> <span class="o">=</span> <span class="sh">"</span><span class="s">E</span><span class="sh">"</span>
<span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="s">等级：</span><span class="si">{</span><span class="n">grade</span><span class="si">}</span><span class="sh">"</span><span class="p">)</span>  <span class="c1"># 输出 C
</span></code></pre></div></div>

<blockquote>
  <p><strong>注意</strong>：<code class="language-plaintext highlighter-rouge">elif</code> 可以有任意多个，<code class="language-plaintext highlighter-rouge">else</code> 是可选的，且最多只能有一个。</p>
</blockquote>

<h2 id="6-条件嵌套">6. 条件嵌套</h2>

<p><code class="language-plaintext highlighter-rouge">if</code> 语句内部可以再包含 <code class="language-plaintext highlighter-rouge">if</code> 语句，形成嵌套结构，用于处理更复杂的逻辑。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">is_weekend</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">temperature</span> <span class="o">=</span> <span class="mi">28</span>

<span class="k">if</span> <span class="n">is_weekend</span><span class="p">:</span>
    <span class="k">if</span> <span class="n">temperature</span> <span class="o">&gt;</span> <span class="mi">30</span><span class="p">:</span>
        <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">周末去游泳</span><span class="sh">"</span><span class="p">)</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">周末去公园</span><span class="sh">"</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">工作日上班</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p>嵌套层次不宜过多（建议不超过 3 层），否则可读性会下降。</p>

<h2 id="7-逻辑运算符andornot">7. 逻辑运算符（<code class="language-plaintext highlighter-rouge">and</code>、<code class="language-plaintext highlighter-rouge">or</code>、<code class="language-plaintext highlighter-rouge">not</code>）</h2>

<p>用于组合多个条件，构造更复杂的表达式。</p>

<table>
  <thead>
    <tr>
      <th>运算符</th>
      <th>含义</th>
      <th>短路规则</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">and</code></td>
      <td>与（所有条件为 True 才为 True）</td>
      <td>左边为 False 则不再计算右边</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">or</code></td>
      <td>或（任一条件为 True 即为 True）</td>
      <td>左边为 True 则不再计算右边</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">not</code></td>
      <td>非（取反）</td>
      <td>单目运算符</td>
    </tr>
  </tbody>
</table>

<p><strong>示例：</strong></p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">age</span> <span class="o">=</span> <span class="mi">22</span>
<span class="n">has_id</span> <span class="o">=</span> <span class="bp">True</span>

<span class="c1"># 同时满足两个条件
</span><span class="k">if</span> <span class="n">age</span> <span class="o">&gt;=</span> <span class="mi">18</span> <span class="ow">and</span> <span class="n">has_id</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">可以进入网吧</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># 满足任一条件
</span><span class="k">if</span> <span class="n">age</span> <span class="o">&lt;</span> <span class="mi">18</span> <span class="ow">or</span> <span class="n">age</span> <span class="o">&gt;</span> <span class="mi">60</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">享受优惠票价</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># 取反
</span><span class="k">if</span> <span class="ow">not</span> <span class="n">has_id</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">请出示身份证</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<h2 id="8-成员运算符与身份运算符">8. 成员运算符与身份运算符</h2>

<ul>
  <li><code class="language-plaintext highlighter-rouge">in</code> / <code class="language-plaintext highlighter-rouge">not in</code>：判断元素是否存在于序列（字符串、列表、元组等）中。</li>
  <li><code class="language-plaintext highlighter-rouge">is</code> / <code class="language-plaintext highlighter-rouge">is not</code>：判断两个变量是否引用同一个对象（而非值相等）。</li>
</ul>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># 成员运算符
</span><span class="n">fruits</span> <span class="o">=</span> <span class="p">[</span><span class="sh">"</span><span class="s">apple</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">banana</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">orange</span><span class="sh">"</span><span class="p">]</span>
<span class="k">if</span> <span class="sh">"</span><span class="s">apple</span><span class="sh">"</span> <span class="ow">in</span> <span class="n">fruits</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">有苹果</span><span class="sh">"</span><span class="p">)</span>

<span class="c1"># 身份运算符（通常用于 None 判断）
</span><span class="n">value</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">值为空</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<h2 id="9-条件表达式三元运算符">9. 条件表达式（三元运算符）</h2>

<p>Python 支持简洁的<strong>条件表达式</strong>，形式为 <code class="language-plaintext highlighter-rouge">值1 if 条件 else 值2</code>，用于在单行内根据条件返回不同值。</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># 传统写法
</span><span class="k">if</span> <span class="n">age</span> <span class="o">&gt;=</span> <span class="mi">18</span><span class="p">:</span>
    <span class="n">status</span> <span class="o">=</span> <span class="sh">"</span><span class="s">成年</span><span class="sh">"</span>
<span class="k">else</span><span class="p">:</span>
    <span class="n">status</span> <span class="o">=</span> <span class="sh">"</span><span class="s">未成年</span><span class="sh">"</span>

<span class="c1"># 三元表达式
</span><span class="n">status</span> <span class="o">=</span> <span class="sh">"</span><span class="s">成年</span><span class="sh">"</span> <span class="k">if</span> <span class="n">age</span> <span class="o">&gt;=</span> <span class="mi">18</span> <span class="k">else</span> <span class="sh">"</span><span class="s">未成年</span><span class="sh">"</span>
</code></pre></div></div>

<p>适合简单场景，不推荐过度嵌套使用。</p>

<h2 id="10-常见错误与最佳实践">10. 常见错误与最佳实践</h2>

<h3 id="101-常见错误">10.1 常见错误</h3>

<ul>
  <li><strong>忘记冒号</strong>：<code class="language-plaintext highlighter-rouge">if score &gt; 60</code> ❌ 应为 <code class="language-plaintext highlighter-rouge">if score &gt; 60:</code> ✅</li>
  <li><strong>缩进不一致</strong>：混用制表符和空格（建议统一使用 4 个空格）</li>
  <li><strong>将赋值 <code class="language-plaintext highlighter-rouge">=</code> 误用为比较 <code class="language-plaintext highlighter-rouge">==</code></strong>：<code class="language-plaintext highlighter-rouge">if x = 5</code> 会报错，应为 <code class="language-plaintext highlighter-rouge">if x == 5</code></li>
  <li><strong>条件顺序不严谨</strong>：多分支时先判断更严格的条件（如先判断 <code class="language-plaintext highlighter-rouge">&gt;=90</code> 再判断 <code class="language-plaintext highlighter-rouge">&gt;=80</code>）</li>
</ul>

<h3 id="102-最佳实践">10.2 最佳实践</h3>

<ul>
  <li>保持条件简单清晰，复杂条件可拆分为多个变量</li>
  <li>避免过深的嵌套，可使用 <code class="language-plaintext highlighter-rouge">elif</code> 或提前 <code class="language-plaintext highlighter-rouge">return</code> 扁平化逻辑</li>
  <li>对于多个相等性判断，可用 <code class="language-plaintext highlighter-rouge">in</code> 替代多个 <code class="language-plaintext highlighter-rouge">or</code>：<br />
<code class="language-plaintext highlighter-rouge">if x in (1, 2, 3):</code> 优于 <code class="language-plaintext highlighter-rouge">if x == 1 or x == 2 or x == 3:</code></li>
  <li>布尔值本身可直接作为条件：<code class="language-plaintext highlighter-rouge">if is_valid:</code> 而非 <code class="language-plaintext highlighter-rouge">if is_valid == True:</code></li>
</ul>

<h2 id="11-综合示例">11. 综合示例</h2>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># 模拟登录验证 + 权限分级
</span><span class="n">username</span> <span class="o">=</span> <span class="sh">"</span><span class="s">admin</span><span class="sh">"</span>
<span class="n">password</span> <span class="o">=</span> <span class="sh">"</span><span class="s">123456</span><span class="sh">"</span>
<span class="n">captcha</span> <span class="o">=</span> <span class="sh">"</span><span class="s">abc</span><span class="sh">"</span>

<span class="k">if</span> <span class="ow">not</span> <span class="n">username</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">password</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">captcha</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">所有字段均需填写</span><span class="sh">"</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
    <span class="k">if</span> <span class="n">username</span> <span class="o">==</span> <span class="sh">"</span><span class="s">admin</span><span class="sh">"</span> <span class="ow">and</span> <span class="n">password</span> <span class="o">==</span> <span class="sh">"</span><span class="s">123456</span><span class="sh">"</span> <span class="ow">and</span> <span class="n">captcha</span> <span class="o">==</span> <span class="sh">"</span><span class="s">abc</span><span class="sh">"</span><span class="p">:</span>
        <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">登录成功</span><span class="sh">"</span><span class="p">)</span>
        <span class="c1"># 嵌套判断权限
</span>        <span class="k">if</span> <span class="n">username</span> <span class="o">==</span> <span class="sh">"</span><span class="s">admin</span><span class="sh">"</span><span class="p">:</span>
            <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">欢迎管理员，您拥有所有权限</span><span class="sh">"</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">欢迎普通用户</span><span class="sh">"</span><span class="p">)</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="nf">print</span><span class="p">(</span><span class="sh">"</span><span class="s">用户名、密码或验证码错误</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<h2 id="12-总结">12. 总结</h2>

<ul>
  <li><code class="language-plaintext highlighter-rouge">if</code>、<code class="language-plaintext highlighter-rouge">elif</code>、<code class="language-plaintext highlighter-rouge">else</code> 构成 Python 条件判断的核心</li>
  <li>条件表达式求值为布尔值，支持比较、逻辑、成员和身份运算</li>
  <li>缩进是语法的一部分，必须严格遵守</li>
  <li>合理使用逻辑运算符和嵌套，注意代码可读性</li>
  <li>三元运算符适合简单分支，多分支用 <code class="language-plaintext highlighter-rouge">if-elif-else</code></li>
</ul>

<p>掌握条件判断，是编写具有“智能”逻辑的程序的第一步。多写多练，自然熟能生巧。</p>]]></content><author><name>LiuXiaohan</name></author><category term="学习笔记" /><category term="Python" /><category term="条件判断" /><summary type="html"><![CDATA[在 Python 中，条件判断语句让程序能够像人类一样做出“如果……就……”的逻辑决策。]]></summary></entry><entry><title type="html">python函数</title><link href="https://www.xhliu.cn/blog/2026/08/12/python-function/" rel="alternate" type="text/html" title="python函数" /><published>2026-08-12T00:00:00+08:00</published><updated>2026-08-12T00:00:00+08:00</updated><id>https://www.xhliu.cn/blog/2026/08/12/python-function</id><content type="html" xml:base="https://www.xhliu.cn/blog/2026/08/12/python-function/"><![CDATA[<h1 id="python函数与获取帮助学习笔记">Python函数与获取帮助学习笔记</h1>

<h2 id="一核心概念为什么需要函数">一、核心概念：为什么需要函数？</h2>

<ul>
  <li><strong>化繁为简</strong>：将重复的代码块封装起来，提高代码复用性。</li>
  <li><strong>模块化</strong>：将复杂问题分解为小的、可管理的任务，使代码逻辑更清晰。</li>
  <li><strong>易于维护和调试</strong>：修改函数内部实现，所有调用处自动生效；独立测试函数更方便。</li>
</ul>

<h2 id="二定义与调用函数">二、定义与调用函数</h2>

<p><strong>1. 基本语法</strong></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">函数名</span><span class="p">(</span><span class="n">参数1</span><span class="p">,</span> <span class="n">参数2</span><span class="p">,</span> <span class="p">...):</span>
    <span class="sh">"""</span><span class="s">文档字符串（可选），描述函数功能</span><span class="sh">"""</span>
    <span class="c1"># 函数体（执行的具体操作）
</span>    <span class="k">return</span> <span class="n">返回值</span> <span class="c1"># 可选
</span></code></pre></div></div>

<p><strong>2. 关键点</strong></p>

<ul>
  <li><strong><code class="language-plaintext highlighter-rouge">def</code>关键字</strong>：用于定义函数。</li>
  <li><strong>函数名</strong>：应具有描述性，遵循<code class="language-plaintext highlighter-rouge">小写_和_下划线</code>命名规范。</li>
  <li><strong>参数</strong>：函数可以接收零个或多个参数（也叫自变量）。</li>
  <li><strong><code class="language-plaintext highlighter-rouge">return</code>语句</strong>：用于返回结果。如果没有<code class="language-plaintext highlighter-rouge">return</code>，函数默认返回<code class="language-plaintext highlighter-rouge">None</code>。</li>
</ul>

<p><strong>3. 调用函数</strong></p>

<ul>
  <li>使用<code class="language-plaintext highlighter-rouge">函数名(实际参数)</code>的方式执行函数。</li>
</ul>

<h2 id="三参数传递的灵活性">三、参数传递的灵活性</h2>

<ul>
  <li><strong>位置参数</strong>：按定义时的顺序传递，如<code class="language-plaintext highlighter-rouge">func(a, b)</code>。</li>
  <li><strong>关键字参数</strong>：通过<code class="language-plaintext highlighter-rouge">参数名=值</code>的方式传递，顺序可以改变，如<code class="language-plaintext highlighter-rouge">func(b=2, a=1)</code>。</li>
  <li><strong>默认参数</strong>：在定义时为参数指定默认值，如<code class="language-plaintext highlighter-rouge">def func(a, b=10):</code>，调用时<code class="language-plaintext highlighter-rouge">b</code>可选。</li>
  <li><strong>可变参数</strong>（了解即可）：
    <ul>
      <li><code class="language-plaintext highlighter-rouge">*args</code>：接收任意数量的位置参数，打包为元组。</li>
      <li><code class="language-plaintext highlighter-rouge">**kwargs</code>：接收任意数量的关键字参数，打包为字典。</li>
    </ul>
  </li>
</ul>

<h2 id="四函数作用域">四、函数作用域</h2>

<ul>
  <li><strong>局部变量</strong>：在函数内部赋值的变量，仅在函数内有效。</li>
  <li><strong>全局变量</strong>：在函数外部赋值的变量，在整个模块中有效。在函数内修改全局变量需使用<code class="language-plaintext highlighter-rouge">global</code>关键字（通常不推荐，容易引起混乱）。</li>
</ul>

<h2 id="五获取帮助与文档">五、获取帮助与文档</h2>

<p><strong>1. <code class="language-plaintext highlighter-rouge">help()</code>函数</strong></p>

<ul>
  <li><strong>用途</strong>：是Python内置的交互式帮助系统。在Jupyter Notebook或命令行中，输入<code class="language-plaintext highlighter-rouge">help(函数名)</code>可以查看函数的文档字符串、参数和用法示例。</li>
  <li><strong>示例</strong>：<code class="language-plaintext highlighter-rouge">help(print)</code> 会显示<code class="language-plaintext highlighter-rouge">print</code>函数的详细说明。</li>
</ul>

<p><strong>2. 文档字符串 (Docstring)</strong></p>

<ul>
  <li><strong>用途</strong>：函数开头的三引号字符串，是编写函数说明的标准方式。它会被<code class="language-plaintext highlighter-rouge">help()</code>函数读取并显示。</li>
  <li>
    <p><strong>示例</strong>：</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="k">def</span> <span class="nf">calculate_average</span><span class="p">(</span><span class="n">numbers</span><span class="p">):</span>
      <span class="sh">"""</span><span class="s">计算一个数字列表的平均值。

      参数:
          numbers (list): 包含数字的列表。

      返回:
          float: 列表元素的平均值，如果列表为空则返回0.0。
      </span><span class="sh">"""</span>
      <span class="k">if</span> <span class="ow">not</span> <span class="n">numbers</span><span class="p">:</span>
          <span class="k">return</span> <span class="mf">0.0</span>
      <span class="k">return</span> <span class="nf">sum</span><span class="p">(</span><span class="n">numbers</span><span class="p">)</span> <span class="o">/</span> <span class="nf">len</span><span class="p">(</span><span class="n">numbers</span><span class="p">)</span>
</code></pre></div>    </div>
  </li>
</ul>

<p><strong>3. <code class="language-plaintext highlighter-rouge">print()</code>与<code class="language-plaintext highlighter-rouge">return</code>的区别</strong>
    *<code class="language-plaintext highlighter-rouge">print()</code>：将内容输出到控制台（屏幕），方便调试和查看中间结果，但不会影响程序的执行流程和数据传递。
    *   <code class="language-plaintext highlighter-rouge">return</code>：是函数的返回值，它将结果传递给函数的调用者，供后续代码使用。</p>

<h2 id="六常见错误与调试提示">六、常见错误与调试提示</h2>

<ul>
  <li><code class="language-plaintext highlighter-rouge">NameError</code>：尝试访问一个未定义的变量或函数名。检查拼写和变量作用域。</li>
  <li><code class="language-plaintext highlighter-rouge">TypeError</code>：函数接收了错误类型或数量的参数。使用<code class="language-plaintext highlighter-rouge">help()</code>检查函数签名。</li>
  <li><code class="language-plaintext highlighter-rouge">IndentationError</code>：代码缩进不正确。Python对缩进敏感，确保函数体缩进一致。</li>
</ul>

<h2 id="七总结与实践建议">七、总结与实践建议</h2>

<ul>
  <li><strong>编写函数的原则</strong>：一个函数只做一件事，并做好它（单一职责原则）。</li>
  <li><strong>使用<code class="language-plaintext highlighter-rouge">help()</code>的习惯</strong>：遇到不熟悉的函数或模块，先使用<code class="language-plaintext highlighter-rouge">help()</code>查看文档，是高效学习的关键。</li>
  <li><strong>动手练习</strong>：尝试将之前编写的一段重复性代码改写为函数，并为其添加详细的文档字符串，然后用<code class="language-plaintext highlighter-rouge">help()</code>查看效果。</li>
</ul>]]></content><author><name>LiuXiaohan</name></author><category term="学习笔记" /><category term="Python" /><category term="函数" /><summary type="html"><![CDATA[将重复的代码块封装起来，提高代码复用性]]></summary></entry></feed>