第 2 课 / 共 9 课12 分钟2 个闯关

变量:给数据贴标签

等号不是"等于",是"放进去"。搞懂这一点,后面全通。

变量就是贴标签的抽屉

你有一堆东西要用很多次,每次都重新说一遍太累了。所以你找个抽屉把它装进去,在抽屉上贴个标签。下次要用,喊标签的名字就行。

name = "小明"
age = 18

print(name)        # 小明
print(age)         # 18
print(name, age)   # 小明 18

name = "小明" 读作:把 "小明" 装进叫 name 的抽屉里

等号不是"等于"

这是初学者最大的坑。数学里 x = 5 是在陈述一个事实;编程里 x = 5 是一条命令:"去做这件事——把 5 放进 x"。

所以下面这行在数学上是荒谬的,在编程里却完全正常:

count = 0
count = count + 1
print(count)   # 1

执行顺序永远是先算右边,再放进左边:右边 count + 1 算出 0 + 1 = 1,然后把 1 装进 count。老值被覆盖了。

count = count + 1 太常用,所以有个简写:count += 1。两者完全一样。

起名字的规矩

硬规矩(违反会报错):

  • 只能用字母、数字、下划线,且不能用数字开头。2name 错,name2 对。
  • 区分大小写。Namename 是两个不同的抽屉。
  • 不能用 Python already 占用的词,比如 printifforclass

软规矩(不会报错,但请照做):

  • 有意义的名字。a = 18 三天后你不知道它是什么;user_age = 18 一眼就懂。
  • 多个单词用下划线连接:total_priceuser_name。这是 Python 社区的共识写法。

抽屉里能装什么

四种最常用的:

title = "灯塔编程"     # 字符串 str  —— 文字
count = 42            # 整数 int    —— 没有小数点的数
price = 19.9          # 浮点数 float —— 有小数点的数
is_free = True        # 布尔值 bool  —— 只有 True / False 两个取值

不确定某个抽屉里装的是什么类型?问它:

print(type(price))   # <class 'float'>

f-string:把变量塞进句子里

拼接文字最舒服的写法,是在引号前加一个 f,然后用 {} 挖坑:

name = "小明"
age = 18
print(f"{name}今年{age}岁")   # 小明今年18岁

没有 f 的话,{name} 就只是四个普通字符,会原样打印出来。忘记写 f 是超高频笔误,看到输出里出现花括号,先检查这里。

10 秒自测

x = 10
y = x
x = 99
print(y)

y 是多少?答案是 10y = x 那一刻,把 x 当时的值 10 复制进了 y;后来 x 换成 99,跟 y 再无关系。抽屉是两个独立的抽屉。

广告位(未配置 AdSense,上线后在此展示)

动手闯关

读懂了不算会,写出来才算

0/2 已通过

闯关和判题完全免费,交错了不扣任何东西。卡住随时点「问 AI」,它能看到你正在写的代码。

关卡 01猜输出+10 点 · +15 XP

抽屉是各自独立的

这段代码打印出什么? ```python x = 10 y = x x = 99 print(y) ```

  • 可能是多选,选错不扣点数,随便试。
登录后闯关拿点数
关卡 02选择+10 点 · +15 XP

哪些名字是合法的变量名

下面哪些可以用作 Python 变量名?(可多选)

  • 可能是多选,选错不扣点数,随便试。
登录后闯关拿点数

学完了?标记一下

标记完成会记进度、涨 20 XP,还会点亮连续学习天数。