基础语法:缩进与标识符
本教程共 70 篇 · 第 6 篇 · 更新于 2026-07-22 · 约 4 分钟阅读
6. 基础语法:缩进与标识符
本节目标:掌握 Python 最核心的语法规则——缩进和标识符,能写出合法、规范的代码。
缩进是语法,不是风格
Python 最独特的地方,是用缩进来表示代码块,而不是大括号 {}。
if True:
print("条件成立")
print("这行和上面是一块的")
else:
print("条件不成立")
if 语句后面的两行缩进相同,属于同一个代码块。如果缩进不一致,会直接报错:
if True:
print("第一行")
print("缩进不对") # IndentationError
Warning混用空格和 Tab 是灾难之源。明明看着对齐,Python 却报缩进错误。在编辑器里设置「Tab 自动转为 4 个空格」,可以从根本上杜绝这个问题。
缩进的空格数没有硬性规定,但社区共识是 4 个空格。这是 PEP 8 的推荐,也是几乎所有 Python 项目的实际标准。
代码组:冒号 + 缩进
以 if、while、def、class 等关键字开头的复合语句,行尾加冒号 :,下一行开始缩进,就构成了一个代码组。
def greet(name):
print(f"Hello, {name}")
print("Welcome!")
if name == "Alice":
greet(name)
print("她是管理员")
else:
print("普通用户")
Note函数和函数之间空 2 行,函数内部逻辑紧凑不空行。空行不是语法,但能让代码更易读。
标识符命名规则
标识符就是变量名、函数名、类名这些。Python 的标识符规则很简单:
- 首字符必须是字母(a-z, A-Z)或下划线
_ - 其余部分可以是字母、数字、下划线
- 区分大小写:
name和Name是两个不同的标识符 - 不能用关键字(如
if、for、class)
# 合法的标识符
age = 25
user_name = "Alice"
_total = 100
MAX_SIZE = 1024
# 非法的标识符
2nd_place = "silver" # 数字开头
user-name = "Bob" # 含连字符
class = "Math" # 用了关键字
Python 3 支持 Unicode 标识符,所以理论上可以用中文变量名:
姓名 = "张三"
π = 3.14159
Tip技术上合法,但生产环境里别用中文变量名。协作时英文是通用语言,用中文会让代码难以维护。
关键字一览
关键字是 Python 预留的单词,不能当标识符用。完整列表如下:
import keyword
print(keyword.kwlist)
常见关键字按功能分类:
| 类别 | 关键字 |
|---|---|
| 逻辑值 | True, False, None |
| 逻辑运算 | and, or, not |
| 条件控制 | if, elif, else |
| 循环控制 | for, while, break, continue |
| 函数/类 | def, return, lambda, class |
| 异常处理 | try, except, finally, raise |
| 模块导入 | import, from, as |
| 作用域 | global, nonlocal |
| 异步编程 | async, await |
| 其他 | pass, assert, del, in, is, with, yield |
多行语句
Python 默认一行一条语句。如果太长需要换行,有两种方式:
方式一:反斜杠 \
total = item_one + \
item_two + \
item_three
方式二:括号内自动换行(推荐)
total = (item_one +
item_two +
item_three)
my_list = [
'item_one', 'item_two', 'item_three',
'item_four', 'item_five'
]
括号内换行不需要反斜杠,也更不容易出错。
同一行多条语句
用分号 ; 可以在同一行写多条语句,但不推荐:
import sys; x = 'hello'; sys.stdout.write(x + '\n')
这种写法降低了可读性。除非是在交互模式里快速测试,否则一行只写一条语句。
来源:参考了 runoob「Python3 基础语法」、liaoxuefeng「Python 基础」、w3cschool「Python3 基础语法」等,改写后所得。