<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/feeds/atom-style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://whatcannotbesaid.com/</id>
    <title>不系舟</title>
    <updated>2026-11-02T11:08:21.512Z</updated>
    <generator>Astro-Theme-Retypeset with Feed for Node.js</generator>
    <author>
        <name>参寥</name>
        <uri>https://whatcannotbesaid.com/</uri>
    </author>
    <link rel="alternate" href="https://whatcannotbesaid.com/"/>
    <link rel="self" href="https://whatcannotbesaid.com/atom.xml"/>
    <subtitle>泛若不系之舟　虚而遨游者也</subtitle>
    <rights>Copyright © 2026 参寥</rights>
    <entry>
        <title type="html"><![CDATA[Python学习第一课：变量、列表和索引]]></title>
        <id>https://whatcannotbesaid.com/posts/python/python%E5%AD%A6%E4%B9%A0%E7%AC%AC%E4%B8%80%E8%AF%BE%E5%8F%98%E9%87%8F%E5%88%97%E8%A1%A8%E5%92%8C%E7%B4%A2%E5%BC%95/</id>
        <link href="https://whatcannotbesaid.com/posts/python/python%E5%AD%A6%E4%B9%A0%E7%AC%AC%E4%B8%80%E8%AF%BE%E5%8F%98%E9%87%8F%E5%88%97%E8%A1%A8%E5%92%8C%E7%B4%A2%E5%BC%95/"/>
        <updated>2026-10-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[学习 Python 的过程中，变量与数据类型是最先接触的两个概念。它们看似简单，却涉及编程语言如何表示数据、引用对象以及执行运算等基本问题...]]></summary>
        <content type="html"><![CDATA[<h1>Python 基础：变量与数据类型</h1>
<p>学习 Python 的过程中，变量与数据类型是最先接触的两个概念。它们看似简单，却涉及编程语言如何表示数据、引用对象以及执行运算等基本问题。</p>
<p>本文结合《Python 编程：从入门到实践（第 3 版）》第 2 章的内容，梳理变量与变量名的区别，以及数据类型的基本含义。</p>
<h2>一、变量与变量名</h2>
<h3>1. 变量是什么？</h3>
<p>变量（Variable）是编程语言中的一个抽象概念。在概念层面，我们可以将变量理解为程序中能够与不同值建立关联的程序实体。</p>
<p>变量名（Variable Name）则是程序中用于标识变量的具体符号，例如 <code>x</code>、<code>name</code> 和 <code>age</code>。</p>
<p>为了避免概念混淆，可以暂时区分为：</p>
<ul>
<li><strong>变量</strong>：抽象的编程概念。</li>
<li><strong>变量名</strong>：程序中具体的标识符。</li>
<li><strong>值</strong>：变量当前关联的数据。</li>
</ul>
<p>需要注意，这是一种用于概念分析的区分。在 Python 的实际运行机制中，并不存在一个必须独立于名称之外的变量容器。</p>
<h3>2. Python 如何实现变量机制？</h3>
<p>考虑以下代码：</p>
<pre><code>name = 1
</code></pre>
<p>这里包含三个部分：</p>
<ul>
<li><code>name</code>：标识符，充当变量名。</li>
<li><code>=</code>：赋值运算符。</li>
<li><code>1</code>：表示整数值的字面量。</li>
</ul>
<p>Python 通过名称绑定（Name Binding）实现变量机制。执行赋值语句时，名称 <code>name</code> 与相应的整数对象建立绑定关系。</p>
<p>可以将这一过程理解为：名称是标记，对象是它所引用的数据，而绑定关系将二者联系起来。</p>
<p>这也是《Python 编程：从入门到实践（第 3 版）》将变量比喻为“标签”的原因。</p>
<h3>3. 重新赋值意味着什么？</h3>
<pre><code>x = 18
x = 20
</code></pre>
<p>执行第一行后，名称 <code>x</code> 绑定到整数对象 <code>18</code>；执行第二行后，名称 <code>x</code> 重新绑定到整数对象 <code>20</code>。</p>
<p>这里发生变化的是名称与对象之间的绑定关系，而不是变量名 <code>x</code> 本身。</p>
<p>再看一个例子：</p>
<pre><code>x = 18
y = x
x = 20

print(y)
</code></pre>
<p>输出：</p>
<pre><code>18
</code></pre>
<p>执行 <code>y = x</code> 时，Python 让 <code>y</code> 绑定到 <code>x</code> 当时所关联的对象。之后，<code>x</code> 重新绑定到 <code>20</code>，并不会使 <code>y</code> 自动跟随变化。</p>
<p>因此，两个不同的名称可以关联同一个对象；一个名称的重新绑定，也不会自动改变另一个名称的绑定关系。</p>
<h2>二、什么是数据类型？</h2>
<h3>1. 数据类型的基本含义</h3>
<p>数据类型（Data Type）是对数据进行分类的概念。它不仅用于区分不同种类的数据，也规定了相应对象所支持的操作及其行为。</p>
<p>Python 中常见的基本数据类型包括：</p>
<table>
<thead>
<tr>
<th>数据类型</th>
<th>名称</th>
<th>示例</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>int</code></td>
<td>整数类型</td>
<td><code>18</code>、<code>-3</code>、<code>0</code></td>
</tr>
<tr>
<td><code>float</code></td>
<td>浮点数类型</td>
<td><code>3.14</code>、<code>-0.5</code>、<code>18.0</code></td>
</tr>
<tr>
<td><code>str</code></td>
<td>字符串类型</td>
<td><code>"Python"</code>、<code>"18"</code></td>
</tr>
</tbody>
</table>
<p>可以使用内置函数 <code>type()</code> 查看对象的类型：</p>
<pre><code>print(type(18))
print(type(3.14))
print(type("Python"))
</code></pre>
<p>输出分别表明，这三个对象的类型是 <code>int</code>、<code>float</code> 和 <code>str</code>。</p>
<h3>2. 数据类型与数学集合的类比</h3>
<p>可以借助数学中的集合来理解数据类型。</p>
<p>例如，在数学中：</p>
<p>[
3\in\mathbb{Z}
]</p>
<p>表示整数 (3) 属于整数集合 (\mathbb{Z})。</p>
<p>类似地，在 Python 中，我们可以说整数对象 <code>3</code> 属于 <code>int</code> 类型。</p>
<p>不过，这只是一种帮助理解的类比。Python 的类型并不完全等同于数学集合：类型除了对对象进行分类，还规定了对象支持的操作和行为。</p>
<h3>3. 数据类型属于对象，而不是固定属于变量名</h3>
<p>考虑以下代码：</p>
<pre><code>x = 18
x = "Hello"
</code></pre>
<p>第一行执行后，<code>x</code> 绑定到 <code>int</code> 类型的整数对象；第二行执行后，<code>x</code> 重新绑定到 <code>str</code> 类型的字符串对象。</p>
<p>因此，不能认为变量名 <code>x</code> 固定属于 <code>int</code> 类型。</p>
<p>更准确地说，<strong>Python 中对象具有相应的数据类型，而名称可以在程序执行过程中绑定到不同类型的对象。</strong></p>
<p>这也是 Python 动态类型特征的一部分。</p>
<h2>三、整数与浮点数</h2>
<h3>1. 整数类型 <code>int</code></h3>
<p>整数类型用于表示整数，例如：</p>
<pre><code>age = 18
count = 100
temperature = -3
</code></pre>
<p>这些整数对象都属于 <code>int</code> 类型。</p>
<h3>2. 浮点数类型 <code>float</code></h3>
<p>Python 将带小数点的数称为浮点数。</p>
<pre><code>height = 1.75
price = 3.14
number = 18.0
</code></pre>
<p>它们都属于 <code>float</code> 类型。</p>
<p>需要注意，浮点数不一定具有非零的小数部分。<code>18.0</code> 在数学上与整数 (18) 数值相等，但在 Python 中，它仍然属于 <code>float</code> 类型。</p>
<pre><code>print(type(18))
print(type(18.0))
</code></pre>
<p>前者是 <code>int</code>，后者是 <code>float</code>。</p>
<h3>3. 普通除法与整除</h3>
<p>Python 使用 <code>/</code> 和 <code>//</code> 表示两种不同的除法运算。</p>
<pre><code>print(9 / 3)
print(9 // 3)
</code></pre>
<p>输出：</p>
<pre><code>3.0
3
</code></pre>
<p>普通除法 <code>/</code> 返回浮点数，即使结果在数学上是整数。</p>
<p>整除运算符 <code>//</code> 则返回向下取整后的商。当两个操作数都是整数时，结果为整数。</p>
<p>例如：</p>
<pre><code>print(5 / 2)    # 2.5
print(5 // 2)   # 2
print(-5 // 2)  # -3
</code></pre>
<p>最后一个例子说明，整除并不是简单地删除小数部分，而是向负无穷方向取整。</p>
<p>区分 <code>int</code> 和 <code>float</code>，有助于理解 Python 如何表示数值，以及不同运算如何影响结果的类型。</p>
<h2>四、字符串 <code>str</code></h2>
<h3>1. 什么是字符串？</h3>
<p>根据教材第 2.3 节，字符串（String）是一系列字符。</p>
<p>字符可以是字母、数字、标点符号、空格等。例如：</p>
<pre><code>"Hello"
"Python 3"
"2026"
"Hello, world!"
</code></pre>
<p>这些都是字符串。</p>
<h3>2. 引号的作用</h3>
<p>Python 使用单引号或双引号界定字符串：</p>
<pre><code>name = "Alice"
language = 'Python'
</code></pre>
<p>两种写法都合法。</p>
<p>引号属于 Python 语法的一部分，用来告诉解释器将其中的内容识别为字符串。引号本身通常不属于字符串的实际内容。</p>
<p>例如：</p>
<pre><code>text = "18"
number = 18
</code></pre>
<p>虽然二者都与数字字符 <code>18</code> 有关，但它们的数据类型不同：</p>
<ul>
<li><code>"18"</code> 是字符串，表示由字符组成的文本。</li>
<li><code>18</code> 是整数，表示整数值。</li>
</ul>
<p>因此，字符串并不等于数字，只是恰好可以包含数字字符。</p>
<h3>3. 数据类型如何影响运算？</h3>
<p>不同数据类型可能对同一个运算符具有不同的行为。</p>
<p>例如：</p>
<pre><code>print(3 + 3)
print("3" + "3")
</code></pre>
<p>输出：</p>
<pre><code>6
33
</code></pre>
<p>对整数使用 <code>+</code>，执行的是算术加法；对字符串使用 <code>+</code>，执行的是字符串拼接。</p>
<p>这说明数据类型并非仅仅给数据贴上分类标签，它还影响 Python 如何处理数据。</p>
<h2>五、总结</h2>
<p>通过今天的学习，可以建立以下认识：</p>
<ol>
<li>变量是抽象的编程概念，变量名是程序中的具体标识符；二者可以在概念上区分。</li>
<li>Python 通过名称绑定实现变量机制。赋值操作可以改变名称当前关联的对象。</li>
<li>数据类型用于对对象进行分类，并规定相应对象支持的操作与行为。</li>
<li><code>int</code>、<code>float</code> 和 <code>str</code> 分别表示整数、浮点数和字符串。</li>
<li>数据类型属于对象，而不是固定属于变量名。</li>
<li>相同的运算符作用于不同的数据类型时，可能产生不同的行为。</li>
</ol>
<p>变量与数据类型构成了理解 Python 的基础。后续学习列表、字典、条件判断和函数时，我们仍然会不断用到这些概念。</p>
<p><strong>学习原则：先理解概念，再掌握语法，最后通过实践巩固。</strong></p>
]]></content>
        <author>
            <name>参寥</name>
            <uri>https://whatcannotbesaid.com/</uri>
        </author>
        <published>2026-10-22T00:00:00.000Z</published>
    </entry>
</feed>