查看全课大纲(第 6 / 51 节)
- 1.Python 是什么?为什么值得学?
- 2.如何为 Python 编程准备一个“全家桶”环境?
- 3.Python 有哪几种执行方法?
- 4.行与缩进到底有什么用?
- 5.注释有什么用,怎么写?
- 6.变量:如何给数据起个好名字?
- 7.运算符的优先级和常见坑点是什么?
- 8.Python 中,数字和布尔值究竟有哪几种?
- 9.输入函数 `input()` 和文件读取 `open()` 怎么用?
- 10.如何将程序的结果展示给用户或保存下来?
- 11.CSV 文件怎么读怎么写才方便?
- 12.列表是什么,如何创建和访问它?
- 13.列表的修改操作,有哪些方法?
- 14.列表切片为什么能取到部分元素?排序和查找又该怎么用?
- 15.判断语句:如何让程序根据条件做不同的事?
- 16.for 循环如何遍历序列中的元素?
- 17.while 循环什么时候才会停?
- 18.while 循环的结束条件,你写对了吗?
- 19.循环中途想提前结束,怎么办?
- 20.`break` 和 `continue` 到底有什么区别?
- 21.列表推导式如何让代码更简洁高效?
- 22.字符串怎么定义、拼接和操作?
- 23.元组:为什么定义单个元素时要加逗号?
- 24.集合(set)怎么用?如何快速去重和做集合运算?
- 25.字典是什么,为什么比列表更方便?
- 26.字典的增删改查与遍历,如何避免 KeyError?
- 27.函数里的变量,为什么有的能用有的不能用?
- 28.在函数内部修改全局变量,为什么有时不生效?
- 29.函数里能修改全局变量吗?返回值怎么用?
- 30.匿名函数:如何用 lambda 快速定义简单函数?
- 31.面向对象编程是什么,为什么需要它?
- 32.类中的方法和属性到底怎么定义和使用?
- 33.如何控制对对象内部属性和方法的访问?
- 34.异常发生时,程序会怎样继续执行?
- 35.如何组织代码:包和模块
- 36.`if __name__ == '__main__'` 到底有什么用?
- 37.如何用 IDE 的 Debug 功能排查程序错误?
- 38.Matplotlib 绘图的第一步该做什么?
- 39.Figure 是什么,如何设置图形尺寸?
- 40.如何自定义 Matplotlib 的坐标轴?
- 41.如何为图表添加图例,让不同曲线一目了然?
- 42.饼图怎么画才能直观展示数据占比?
- 43.如何用 Matplotlib 绘制散点图?
- 44.柱状图怎么画?
- 45.如何使用 Matplotlib 绘制等高线图?
- 46.如何在 Matplotlib 中绘制子图?
- 47.zip 函数如何把多个列表“打包”在一起?
- 48.如何给可迭代对象加上索引?
- 49.random 模块如何生成随机数?
- 50.math 模块怎么用?
- 51.Counter 如何快速统计元素出现次数?
变量:如何给数据起个好名字?
约 16 分钟
小象实战讲义 · Python 编程从入门到实践
在编程中,我们经常需要处理各种数据,比如年龄、价格、姓名等。如果每次使用数据都要写具体的值(如 23、13.5),不仅麻烦,而且数据一旦变化,就需要修改很多地方。变量就是解决这个问题的工具:它像一个标签,可以贴在任何数据上,让我们通过一个简短的名字来引用复杂的数据。本节将学习变量的定义、使用、命名规则以及如何查看变量类型,这是理解后续所有数据操作的基础。
💡 核心导读
- 变量是什么:一个指向数据的名字,通过
变量名 = 值的形式创建。 - 变量的特点:Python 中变量类型由解释器自动判断,无需手动声明。
- 如何查看变量类型:使用
type(变量名)函数。 - 变量命名规则:要简洁明了、见名知意,并遵循特定的命名惯例。
- 命名禁区:不能使用 Python 的保留关键字作为变量名。
变量的定义与基本使用
在 Python 中,变量是各种类型值的名字。你可以把它想象成内存中存储数据的一个“小方格”的标签。计算机内存有很多这样的“小方格”,每个都有复杂的地址。变量就是用一个简单好记的名字(如 age)来代替那串难以记忆的地址,从而方便我们操作数据。
定义变量的语法非常简单:
变量名 = 值等号 = 在这里是赋值的意思,表示“把右边的值,交给左边的名字来保管”。
# 定义变量并赋值
age = 23 # 变量 age 现在指向整数值 23
money = 13.5 # 变量 money 指向浮点数值 13.5
greeting = "Hello" # 变量 greeting 指向字符串 "Hello"
# 使用变量:直接使用变量名就相当于使用它指向的值
print(age) # 输出:23
print(greeting) # 输出:Hello
# 对变量进行操作
total = age + money # 将 age 和 money 的值相加,结果赋值给新变量 total
print(total) # 输出:36.523
Hello
36.5变量的类型与动态特性
在 Python 中,变量的类型不需要我们显式指定。当你写下 age = 23 时,Python 解释器会自动判断 23 是整数(int 类型),并让 age 成为指向这个整数的变量。这种特性称为动态类型。
这意味着,同一个变量名,在不同时刻可以指向不同类型的数据。
如何查看变量类型?
使用内置函数 type(),将变量名作为参数传入,就能查看变量当前指向的数据类型。
# 变量可以指向任何类型的数据
something = 100 # something 是整数
print(type(something))
something = 3.14 # 现在 something 变成了浮点数
print(type(something))
something = "Python" # 现在 something 又变成了字符串
print(type(something))
# 对普通变量使用 type()
name = "Alice"
score = 95.5
print(type(name))
print(type(score))<class 'int'>
<class 'float'>
<class 'str'>
<class 'str'>
<class 'float'>注意:虽然 Python 允许变量类型随意改变,但在实际编程中,为了让代码更清晰、易维护,我们通常会让一个变量保持同一种数据类型。
标识符与命名规则
标识符是我们在程序中自定义的各种名字,主要包括变量名、函数名、类名等。给标识符(尤其是变量)起一个好名字至关重要,要做到“见名知意”。
命名规则(必须遵守)
- 组成字符:只能由字母(a-z, A-Z)、数字(0-9)和下划线(_)组成。
- 开头字符:不能以数字开头。
- 区分大小写:
age、Age和AGE是三个不同的变量。 - 不能是关键字:不能使用 Python 语言保留的特殊单词(如
for、if)。
命名惯例(建议遵守)
Python 社区有一些约定俗成的命名风格:
- 变量名、函数名:推荐使用小写字母 + 下划线,多个单词之间用下划线连接,例如
user_name、student_age。 - 类名:推荐使用大驼峰命名法,即每个单词的首字母大写,例如
UserInfo。
user_name = "张三" # 好:清晰易懂
student_age = 20 # 好:多个单词用下划线连接
class UserInfo: # 类名使用大驼峰
pass关键字:不能用作变量名的单词
关键字是 Python 语言内部已经定义好、具有特殊功能的单词,它们被用来构建程序的控制结构(如循环、条件判断)。你不能用它们作为变量名、函数名或类名。
如何查看所有关键字?可以通过 keyword 模块。
import keyword # 导入 keyword 模块
print(keyword.kwlist) # 打印所有关键字列表['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']以上列表为 Python 3.12.10 下的实跑输出;不同 Python 版本的关键字列表可能略有差异。
尝试用关键字作为变量名会直接导致语法错误。
# 错误示例:使用关键字 'for' 作为变量名
for = 2
运行后报错:
File "<stdin>", line 1
for = 2
^
SyntaxError: invalid syntax📝 动手练一练
- 变量创建与类型查看:创建一个变量
book_title,赋值为你最近读的一本书的名字(字符串)。再创建一个变量reading_hours,赋值为你阅读它所用的小时数(整数或浮点数)。最后,分别打印这两个变量的值和它们的类型。
👉 点击查看参考答案
思路:按照 变量名 = 值 的格式创建两个变量,然后使用 print 分别输出值和 type() 函数的结果。
# 创建变量并赋值
book_title = "Python编程从入门到实践"
reading_hours = 15.5
# 打印变量的值
print("书名:", book_title)
print("阅读时长(小时):", reading_hours)
# 打印变量的类型
print("book_title 的类型是:", type(book_title))
print("reading_hours 的类型是:", type(reading_hours))书名: Python编程从入门到实践
阅读时长(小时): 15.5
book_title 的类型是: <class 'str'>
reading_hours 的类型是: <class 'float'>- 命名判断:以下哪些是合法的 Python 变量名?哪些是不合法的?为什么?
my_var2nd_place_internalclasstotal-score
👉 点击查看参考答案
思路:根据命名规则(字母/数字/下划线组成、不以数字开头、不是关键字)进行判断。
my_var:合法。符合命名规则。2nd_place:不合法。变量名不能以数字开头。_internal:合法。以下划线开头是允许的(通常有特殊含义,但语法上合法)。class:不合法。class是 Python 关键字,用于定义类。total-score:不合法。变量名中不能包含减号-,只能使用下划线_。
常见错误
| 错误写法 | 现象或报错 | 原因 | 正确写法 |
|---|---|---|---|
2name = "Tom" | SyntaxError: invalid decimal literal | 变量名以数字开头,违反了命名规则。 | name2 = "Tom" 或 _2name = "Tom" |
for = 5 | SyntaxError: invalid syntax | for 是 Python 关键字,不能用作变量名。 | loop_count = 5 |
first-name = "Li" | SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='? | 变量名中包含非法字符减号 -,它被解释为减法运算符,左边成了表达式而不是变量名。 | first_name = "Li" |
使用 name 和 Name 时混淆 | 程序逻辑错误,但无报错 | Python 区分大小写,name 和 Name 是两个不同的变量。 | 保持变量名大小写一致,并遵循命名惯例。 |
小结
- 变量是数据的名字,通过
变量名 = 值创建,让我们能用简单的标签引用复杂的数据。 - Python 具有动态类型特性,变量类型由解释器自动推断,无需声明,且同一变量可重新赋值为不同类型(但不建议频繁这样做)。
- 使用
type(变量名)可以随时查看变量当前指向的数据类型。 - 变量命名必须遵守规则:由字母、数字、下划线组成,不以数字开头,且不能是关键字。
- 良好的命名应见名知意,变量和函数名推荐使用小写字母加下划线(如
user_age),类名推荐使用大驼峰命名法(如UserInfo)。 - Python 区分大小写,
age和Age是不同的变量。
📋 行动清单
- 在代码编辑器中,尝试用错误的命名(如以数字开头、使用关键字)创建变量,观察产生的错误信息。
- 定义一个变量,先后赋给它整数、字符串、浮点数,每次赋值后都用
print和type()查看其值和类型的变化。 - 为你身边的三样物品(如手机品牌、价格、购买年份)分别创建变量,并确保变量名清晰表达了其含义。
—— 小象教研组