Python if语句怎么写:基本格式与缩进规则
在Python中,if语句用于根据条件的真假决定是否执行某段代码;其核心语法由if关键字、条件表达式、末尾英文冒号(:)以及其后缩进的代码块构成。编写Python条件分支的关键不仅在于写对逻辑表达式,更在于严格遵守Python独有的“缩进组织代码块”规则。
一、单分支 if 语句的基本书写格式
最基础的if语句只包含单向判断:当条件成立(值为True)时执行缩进内的操作,若条件不成立(值为False)则直接跳过该代码块继续往下执行。
# 基本语法格式
if 条件表达式:
条件成立时执行的语句
条件成立时执行的语句(同级缩进)
我们来看一个具体的值检查示例:
score = 85
if score >= 60:
print("考试及格")
print("请继续保持")
print("成绩审核流程结束")
在这段代码中:
score >= 60是条件表达式,经计算得到布尔值True。- 行尾必须紧跟英文冒号
:,用以提示解释器接下来的内容属于分支代码块。 - 两行
print语句开头均缩进了4个空格,表示它们受该if语句管辖。 - 最后一行顶格书写,不再属于
if内部,因此无论成绩是否及格都会被执行。
二、多分支结构:if-elif-else 的完整语法解剖
当面临两种或多种互斥情况时,仅用单分支if无法简洁表达,此时需要引入else(否则)和elif(否则如果):
- 双分支(if-else):当条件成立执行块A,否则执行块B。
- 多分支(if-elif-else):自上而下逐一匹配条件,一旦某个条件成立,执行对应缩进块后立刻跳出整个结构,不再计算后续条件。
# if-elif-else 完整书写示例
age = 22
if age < 14:
category = "儿童"
elif age < 18:
category = "青少年"
elif age < 60:
category = "劳动力人口"
else:
category = "长者"
print(f"所属群体:{category}")
在编写多分支时,有三项基本事实需要注意:
- 每个
if、elif、else之后都必须带上英文冒号:。 elif必须紧跟在if或另一个elif之后,不可独立出现;else必须位于整个分支结构的最后。- 条件的先后顺序直接影响运行结果,范围较窄的特定条件应置于前,宽泛条件置于后。
三、Python 缩进规则:核心机制与对齐规范
C、Java等语言通过大括号 {} 区分代码块,而 Python 直接依赖缩进(Indentation)组织代码结构。如果在其他语言中缩进仅影响排版美观,那么在 Python 中,缩进是解释器理解程序逻辑的唯一语法依据。
1. 缩进的基准单位:4个半角空格
根据 Python 官方规范 PEP 8,首选的缩进方式是连续4个半角空格。虽然语法上只要使用一致的缩进量(如2个空格)也能运行,但社区统一标准为4个空格,这样能最大程度保证团队协作和代码互通。
2. 同一代码块必须完全对齐
处于同一层级的语句必须拥有完全相同数量的前置空格,不能错位。
# 正确:同块语句严格对齐
if is_vip:
print("尊贵会员欢迎光临")
apply_discount()
# 错误:同一代码块缩进不一致
if is_vip:
print("尊贵会员欢迎光临")
apply_discount() # 触发 IndentationError: unexpected indent
3. 严禁混用制表符(Tab)与空格(Space)
不同编辑器对 Tab 键展现的视觉宽度不同(有的展现为4列,有的展现为8列)。如果一段代码中某些行用了4个空格,另一些行用了 Tab 字符,肉眼看着完全对齐,但 Python 解释器解析出的字节并不相同,会直接抛出 TabError: inconsistent use of tabs and spaces in indentation 错误。现代编辑器通常建议开启“将 Tab 转换为空格”功能。
四、常见报错与定位排查方法
初学者编写条件判断时,最容易遭遇两类语法异常。通过错误信息名称即可准确定位问题根源:
| 报错类型 | 常见触发原因 | 排查与修正方案 |
|---|---|---|
SyntaxError: expected ':' |
if、elif 或 else 语句行末遗漏英文冒号,或误输入为中文全角冒号(:)。 |
在报错指向的行末补齐半角英文冒号 :,并检查输入法状态。 |
IndentationError: expected an indented block |
if: 后面紧邻的下一行忘记缩进,或者分支内部留空没有任何有效语句。 |
将分支子语句按4空格缩进。若暂未想好具体操作,可填入 pass 占位语句。 |
IndentationError: unexpected indent |
在不该缩进的地方(例如顶格逻辑、平级语句)无故添加了前置空格。 | 删除多余空格,保证代码与所在上下文层级对齐。 |
TabError: inconsistent use of tabs... |
同一源文件中混合使用了制表符(Tab)和半角空格作为缩进。 | 统一使用编辑器内置的“转为空格”功能,规范为全空格缩进。 |
在构思业务逻辑时,有时我们需要先写好条件结构,具体处理逻辑后续再补。Python 不允许分支内部完全为空。此时在缩进位置写入
pass 语句,即可让解释器合法通过:
if status == "PENDING":
pass # 待后续接入异步队列处理,占位避免缩进报错
五、条件判断编写规范自查总结
掌握了基本格式与缩进规则后,在日常编写 Python 代码时可参照以下自查流程:
- 结构完整性:每行
if/elif/else是否均以半角冒号结尾? - 对齐规范性:是否全项目统一使用 4 个空格?是否存在混杂制表符的隐患?
- 作用域确认:分支内部做的事情是否缩进?不受条件控制的后续执行语句是否已经顶格还原?
- 空块防护:分支内部是否存在完全空白的行?是否需要使用
pass占位?
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









