今天你 AI 赋能了吗?打开浏览器,在地址栏输入 xuefulu.ai ,按下 Enter 即可访问学府路1号!
2026年10月14日 星期三 10:40:03
常用网址: | | 学府路1号 https://xuefulu.ai | 下载 Python https://xuefulu.ai/Python.html | 下载 TRAE https://xuefulu.ai/Trae.html

一、先认识这四个概念

先看一小段真实的 Python 程序。现在还不用全懂,只要先有个印象。

Python
# 这是一个小程序:问名字,然后打招呼
name = input("你叫什么名字?")     # name 是变量
if name == "小明":                 # if 是关键字
    print("你好,小明!")          # 行首 4 个空格,就是缩进
else:                              # else 也是关键字
    print("你好," + name + "!")

这段代码里,藏着我们要学的四个概念:

你看到的它叫什么一句话作用
行首那 4 个空格缩进决定这行代码“归谁管”
# 后面的话注释写给人的说明,电脑不看
name变量给数据起的名字
if、else关键字Python 自己留用的词
这一节只要记住一句话就够了:缩进定层级,注释给人看,变量起名字,关键字不能用。

下面四节,我们一个一个拆开讲。

二、缩进:Python 靠“台阶”分层

在别的编程语言里,缩进只是“好看”;在 Python 里,缩进是语法——它不是装饰,是内容本身。

打个比方:写作文时,段落开头空两格,是为了让人一眼看出“新的一段开始了”。Python 的缩进更严格,它靠行首空格的多少,判断这行代码“属于谁”。

三条必须记住的规矩

  1. 同一层,空格数要一样。大家都缩 4 个空格,就都写 4 个,别有的 4 个、有的 2 个。
  2. 空格和 Tab 别混着用。看着一样宽,电脑认得不一样,会报错。
  3. 冒号 : 后面的下一行,一定要缩进。if、else、for、while、def 结尾的那个冒号,就是在说“下面是它的内部”。

实际用在哪里

凡是“满足条件才做”“重复做几次”的地方,都要靠缩进圈出范围。这是它最主要的用途。

Python
balance = 30

if balance >= 20:
    print("余额够,来杯奶茶")        # 缩进了 → 只有 balance ≥ 20 才执行
    print("再带一杯给室友")          # 同样缩进 → 和上一行是同一层
print("结账完成")                    # 没缩进 → 不管条件如何都会执行

运行结果:

输出
余额够,来杯奶茶
再带一杯给室友
结账完成

如果把 balance 改成 15,前两行都不会打印,只有最后那行“结账完成”还会打印。这就是缩进的威力:它决定了哪几行代码是被“管着”的。

记忆口诀:缩进对齐的,就是一伙的;退回顶格的,就是不归它管。后面学 for 循环、def 函数,全靠这个判断。

缩进写错了会怎样

Python 会直接罢工,并在报错信息里给出 IndentationError(缩进错误)。两种最常见的错法:

Python
if balance >= 20:
print("来杯奶茶")      # ❌ 忘了缩进,报 IndentationError

if balance >= 20:
    print("来杯奶茶")      # 缩进 4 个空格
        print("再加珍珠")    # ❌ 缩进 8 个空格,和上一行不是一层,同样报错
新手遇到的 IndentationError,九成是“多按了几下空格”或者“空格和 Tab 混用”。改法很简单:把出问题那几行的行首空白全删掉,再统一敲 4 个空格重新对齐(这也是 Python 官方推荐的做法)。

课程思政|工匠精神与严谨求实 · 缩进就是规矩

在别的语言里缩进只是好看,在 Python 里它是语法本身。同一层要缩一样多,空格和 Tab 不能混用,冒号后面必须缩进——差一个空格,程序就给你颜色看。没人盯着的时候也照样对齐,这种「不用别人管、自己守规矩」的习惯,正是工程素养最朴素的样子。

三、注释:写给人的话

注释就是写在代码里的“小纸条”。它只有一个作用:给人看。程序运行时,计算机会直接跳过它。

为什么值得写

  1. 提醒自己。过一个月再打开这个文件,还能想起当时在想什么。
  2. 方便别人。同学或同事接手你的代码,不用一个字母一个字母地猜。
  3. 临时关掉某段代码。调试时不想删代码,加个符号让它先“停用”。

写法一:单行注释,一个井号 #

从 # 开始,这一行后面的内容全都算注释。

Python
# 下面这行用来记录这周奶茶一共花了多少钱
milk_tea_week = 42.5

cup_price = 12        # 也可以写在代码右边,叫“行尾注释”

# print("这行被注释掉了,不会运行")

习惯上,# 和代码之间留一个空格,读起来更清爽。

写法二:多行注释,三对引号包起来

要写好几行说明,就用三个引号把它们包住,单引号、双引号都可以。

Python
"""
这个脚本用来记录今天的奶茶订单
作者:小林
日期:2026-10-13
说明:练习变量和注释的用法
"""

print("开始记账")
三引号还有一个隐藏用法:把它写在函数的第一行,就变成了这个函数的“说明书”,别人用 help(函数名) 就能看到。后面学到函数时会经常见到,现在有个印象就好。

写注释的两个好习惯

该怎么做例子
✅ 说清“为什么这么做”score = score * 0.6 # 期末成绩占六成
❌ 只是复述代码本身a = 1 # 给 a 赋值 1(这是废话)
✅ 代码改了,注释跟着改两处保持一致,别打架
❌ 注释和代码对不上代码在算加法,注释却写着“求平均”
判断一条注释该不该写,就问自己:光看代码,能不能看出来?看不出来的才值得写。

AI 助手小贴士|注释是「写给人的话」——好注释和坏注释差在哪,让 AI 用同一段代码摆出来最直观。

打开任意 AI 对话工具(网页版或 App 都可以),试试这样问:给同一段代码写两个版本的注释:一个只重复代码说什么的坏注释,一个解释为什么这么做的好注释,并说明差别在哪

四、变量:给数据起个名字

变量,就是给数据起的名字。你可以把它想成一个贴了标签的盒子:盒子里装东西,标签上写着“这是什么”。

Python
cup_price = 12          # 盒子上写着 cup_price,里面放 12
drinker = "小林"         # 盒子上写着 drinker,里面放“小林”
cups = 3                # 盒子上写着 cups,里面放 3

中间那个等号 =,不是数学里的“相等”。它的意思是:把右边的值,放进左边这个名字里。读作“把 12 赋给 cup_price”。

用了有什么好处

看这两段代码,都在算「3 杯自己喝、2 杯帮室友带」的奶茶钱:

Python
# 不用变量:同一个数要写好几遍
print(12 * 3 + 12 * 2)

# 用变量:数据变了只改一行
cup_price = 12
print(cup_price * 3 + cup_price * 2)

如果奶茶涨到 15 元一杯,第二种写法只要改 cup_price = 12 这一行。这就是变量最实在的用处:让数据有个名字,改起来方便,读起来也明白。

必须遵守的规则(违反会报错)

规则合法的会报错的
只能用字母、数字、下划线name、age18、user_nameuser-name(减号)、my name(空格)、user@123(@ 号)
不能用数字开头n1、_n12age、18age
大小写算两个名字age 和 Age 是两个不同的盒子定义了 age 却去用 Age,会报“名字没定义”
不能使用关键字if_flag(加个下划线绕开)if、for、class(下一节细讲)

约定俗成的规矩(不报错,但该守)

这些不是硬性规定,违反了程序照样跑,但代码会显得乱,别人读起来费劲。

用在哪儿推荐写法例子
普通变量全小写,单词之间用下划线(蛇形命名法)user_name、student_age、total_score
常量(不打算改的数)全部大写PI = 3.14159、MAX_SCORE = 100
类名每个单词首字母大写(大驼峰)class StudentInfo:
最重要的一条规矩:见名知意。apple_price = 5.9 比 a = 5.9 好一百倍。三个月后的你,会感谢现在多敲的那几个字母。
小提醒:i、j、k 这种单字母名字,只在“数到第几个”的临时场景里用(比如 for i in range(5):),平时别拿它当变量的名字。
冷知识:Python 3 的变量名其实可以用汉字,写 姓名 = "小明" 完全合法,程序照跑。不过正式代码里大家还是用英文或拼音命名——文件不乱码、别人看得懂,也不会和关键字撞车。

课程思政|诚信与职业操守 · 变量名里见作风

给数据起名字,看着随意,其实处处见态度。a、b、x1 堆在一起,当时省事,过一周连自己都看不懂。名字起得含糊,多半是想先把眼前糊弄过去——可代码会长期存着,糊弄不了任何人。把每个名字起成一句能读懂的话,是对后来接手的人负责,也是对当时写下它的自己诚实。

五、关键字:Python 的自留词

关键字(也叫保留字),是 Python 提前占下的词。它们都有专门的用途,不能拿来当变量名。

打个比方:就像班里的“班长”“课代表”——这些称呼有专门的意思,你不能再给同学起这个外号,否则一喊就乱套。

Python 3 一共预留了 35 个关键字。想自己看一眼,运行这两行:

Python
import keyword
print(keyword.kwlist)     # 一次打印出全部 35 个关键字

按用途归类,其实不难记

分类关键字干什么用
逻辑运算and、or、not把几个条件连起来一起判断
条件分支if、elif、else满足条件才做某件事
循环for、while、break、continue重复做,或中途跳出、跳过
定义def、class、return、lambda自己造函数、造类
导入工具import、from、as借用别人写好的功能
真真假假True、False、None表示“对”“不对”“还没有值”
判断关系in、is在不在里面、是不是同一个
异常处理try、except、finally、raise、assert出错时不让程序直接崩掉
其他with、pass、global、nonlocal、del、async、await、yield文件管理、占位、跨函数改变量等

不用一次背完。下面这几个,是你最初几周就会用到的:

关键字一句话用途短例子
if如果……就……if balance >= 20: print("够买奶茶")
else否则……else: print("余额不够")
for挨个处理一遍for i in range(3): print(i)
while只要……就一直做while n < 5: n = n + 1
def把一段代码做成工具def add(a, b): return a + b
import借别人的工具来用import math
True / False对 / 不对is_pass = True
None暂时还没有值result = None
分清一个小细节:print、input、len 这些不是关键字。它们叫内置函数,相当于 Python 送你的现成工具。技术上它们可以被当变量名用,但千万别这么干——一旦盖掉,后面就调不动了。
看到 SyntaxError(语法错误)时,先检查两件事:是不是把关键字当变量名了?是不是少了个冒号或引号?新手绝大多数语法错误都出在这两处。

六、四个概念一起用:BMI 小计算器

把四个概念合起来,写一个完整的小程序:算 BMI(身体质量指数)。

Python
# BMI 小计算器(注释:说明这段程序是干什么的)
print("=== BMI 计算器 ===")

height = float(input("请输入身高(米):"))     # 变量:存身高
weight = float(input("请输入体重(公斤):"))    # 变量:存体重
bmi = weight / (height * height)               # 变量:存算出来的结果

print(f"你的 BMI 是 {bmi:.1f}")                 # f"..." 能把变量填进文字里

if bmi < 18.5:            # 关键字 if:开始判断
    print("偏瘦")           # 缩进 → 属于 if
elif bmi < 24:            # 关键字 elif:接着判断
    print("正常")           # 缩进 → 属于 elif
else:                      # 关键字 else:剩下的情况
    print("偏胖")           # 缩进 → 属于 else

print("计算结束")           # 没缩进 → 不管怎样都会执行

运行一次,输入身高 1.70、体重 65:

输出
=== BMI 计算器 ===
请输入身高(米):1.70
请输入体重(公斤):65
你的 BMI 是 22.5
正常
计算结束

回头看看,四个概念各自在哪儿:

概念在这段代码里的位置少了它会怎样
变量height、weight、bmi数据没名字,后面用不了
注释# 开头的那些话程序照样跑,但没人看得懂
关键字if、elif、else(print 是内置函数,别混进来)不知道该判断什么、输出什么
缩进三个 print 前面的 4 个空格直接报错,程序根本跑不起来
这里的 18.5 和 24 两个分界值,用的是中国成人 BMI 标准(18.5~24 算正常);世界卫生组织的标准是 18.5~25,数字略有出入,查资料时留意看的是哪一套。
建议亲自动手:把这段代码敲进 IDLE,改成自己的身高体重跑一遍。亲手敲过一次,比看十遍记得都牢。

AI 助手小贴士|规范意识靠「找茬」练出来最快。

打开任意 AI 对话工具(网页版或 App 都可以),试试这样问:给我出 5 道找茬题:每题一段有命名或缩进问题的短代码,让我先指出问题,再对答案

课程思政|数据安全与法治素养 · 身高体重也是隐私

这个小程序要你输入身高和体重——它们属于个人健康信息,是隐私的一部分。练习时随手敲几个数字没关系,但真到了做「全班健康统计」这类程序,就要多想一步:能采集,不等于可以随便存、随便传。收进来的是数据,背后是一个个具体的人,动手前先想清谁有权看、存到哪儿、留多久。

七、新手最容易踩的坑

下面这几条,几乎每个人都中过招。看一眼,能省你不少时间。

一句话收尾:变量给数据起名,关键字是 Python 的自留词,注释写给人看,缩进决定谁归谁管。把这四句记住,Python 的基础语法就过关了。

AI 助手小贴士|代码「能跑」和「好读」是两回事。让 AI 当代码风格检查员,逐条指出不规范的地方,比自己翻规范文档快得多。

打开任意 AI 对话工具(网页版或 App 都可以),试试这样问:请检查下面这段 Python 代码哪些地方不符合规范(命名、缩进、空格、注释),逐条指出并给出修改后的完整代码:<粘贴代码>

八、随堂自测(10 题)

点击选项即可判分,答错的题会立刻显示解析。全部答完后会给出正确率和错题清单。

已答 0 / 10 · 正确 0 —

1在 Python 里,缩进最主要的作用是什么?

  • A. 让代码看起来整齐好看
  • B. 决定一行代码属于哪个代码块
  • C. 影响程序的运行速度
  • D. 表示这一行是注释
答案:B。缩进在 Python 里是语法的一部分,用来划分代码块的归属,不只是好看。A 是别的语言的习惯,C、D 与缩进无关。

2下面哪个 if 的写法是正确的?

  • A. if age >= 18: 换行后空 4 格写 print("成年")
  • B. if age >= 18: 换行后直接顶格写 print("成年")
  • C. if age >= 18(末尾没有冒号),换行后空 4 格写
  • D. if age >= 18: 换行后第一行空 4 格、第二行空 8 格
答案:A。冒号后换行必须缩进(B 漏了缩进);条件行末尾必须有冒号(C 漏了冒号);同一个块里缩进要一致(D 自己乱了)。

3程序一运行就报 IndentationError,最可能的原因是?

  • A. 变量名里用了中文
  • B. 某个字符串忘了加引号
  • C. 少写了一个 print
  • D. 行首的空格数量不一致
答案:D。IndentationError 专指缩进问题:行首空格数不一致,或者空格和 Tab 混用。忘加引号会报 SyntaxError,跟缩进无关。

4想给一行代码加说明,又不影响程序运行,正确做法是?

  • A. 把说明用一对圆括号包起来
  • B. 把说明写在 # 后面
  • C. 直接把说明写成没有引号的文字
  • D. 在说明的前后各加一个分号
答案:B。# 后面的内容会被 Python 忽略,这是最常用的单行注释。A、C、D 都不是合法写法,程序会直接报语法错误。

5用三个双引号 """ 把一段说明括起来,这段内容会怎样?

  • A. 会被打印到屏幕上
  • B. 会导致程序报错
  • C. 会被当成一个字符串,但不会显示出来
  • D. 会自动变成注释,用 print 也打印不出来
答案:C。三引号括起来的本质是一个字符串,只是既没赋给变量、也没被打印,所以看不到。它并不是真正意义的注释,D 的说法不准确。

6下面哪个变量名是合法的?

  • A. 2name
  • B. user-name
  • C. user_name
  • D. user name
答案:C。变量名只能用字母、数字、下划线,且不能用数字开头。2name 数字开头,user-name 含减号,user name 含空格,都会报错。

7代码 age = 18 里的等号,正确的理解是?

  • A. 判断左右两边是否相等
  • B. 把右边的 18 存进名为 age 的变量
  • C. 让 age 永远等于 18,以后不能改
  • D. 把 18 打印出来
答案:B。单独的 = 是赋值:把右边放进左边。判断相等要用两个等号 ==(A 错);变量随时能改(C 错);输出要用 print(D 错)。

8按 Python 的命名习惯,普通变量最推荐下面哪种写法?

  • A. UserName
  • B. userName
  • C. user_name
  • D. USERNAME
答案:C。普通变量推荐蛇形命名法:全小写加下划线。UserName 是大驼峰(留给类名),userName 是小驼峰(少用),全大写留给常量。

9下面哪个词不能用来当变量名?

  • A. class
  • B. score
  • C. total_score
  • D. score1
答案:A。class 是 Python 关键字,写 class = 1 会直接报 SyntaxError。想用就加下划线,写成 class_name。

10关于 print,下面哪种说法是正确的?

  • A. 它是 Python 的关键字
  • B. 它既是关键字,也是合法的变量名
  • C. 它是注释的另一种写法
  • D. 它是内置函数,不是关键字,但也不该拿来当变量名
答案:D。print 属于内置函数,不在 35 个关键字里。它虽然能被覆盖,但千万别这么干,否则打印功能就废了。