Python 基础语法入门(二):条件与循环语句
前言
在上一篇基础语法中,我们搭建了变量、运算符、输入输出等编程基础,但程序只能按固定顺序执行。本文将聚焦 Python 的核心逻辑控制,条件语句和循环语句,帮助你解锁根据情况做选择和重复执行任务的关键能力。
Python 条件语句与循环语句核心语法。涵盖顺序、选择、循环三种执行结构。详解 if-elif-else 分支逻辑及缩进规则,介绍 while 与 for 循环差异及 range 函数用法。包含 break 与 continue 控制流程,并通过学生成绩管理系统综合实战演示输入校验、等级判定与统计计算。

在上一篇基础语法中,我们搭建了变量、运算符、输入输出等编程基础,但程序只能按固定顺序执行。本文将聚焦 Python 的核心逻辑控制,条件语句和循环语句,帮助你解锁根据情况做选择和重复执行任务的关键能力。
所有编程场景的执行逻辑,都离不开三种基础结构:
条件语句的核心是分支逻辑,程序会根据条件的真(True)或假(False),走向不同的执行路径。
Python 的条件语句语法简洁,但有两个特殊规则,和 C/C++、Java 等语言差异较大:
:(冒号)。{}。elif(else if 的简写),不用重复写 else,使得逻辑更清晰。满足条件才执行。
# 示例:判断是否成年
age = int(input("请输入你的年龄:"))
if age >= 18:
print("你已成年,可独立办理业务~")
print("记得带好身份证哦!") # 同一缩进,同属 if 代码块
二选一逻辑。条件真执行代码块 1,假执行代码块 2。
# 示例:判断数字奇偶性
num = int(input("请输入一个整数:"))
if num % 2 == 0:
print(f"{num}是偶数")
else:
print(f"{num}是奇数")
多选一。按顺序判断,满足一个即执行。
# 示例:成绩等级判定
score = int(input("请输入成绩(0-100):"))
if score >= 90:
print("优秀!继续保持~")
elif score >= 80:
print("良好!再努努力就能冲优秀啦~")
elif score >= 60:
print("及格!基础掌握了,还要多练习~")
else:
print("不及格,需要补考哦!建议重新复习知识点~")
Python 用缩进区分代码块的归属,缩进错误会直接导致语法报错,这是新手最容易踩的坑之一。
# 正确示例:缩进一致,逻辑清晰
a = 10
if a > 5:
print("a 大于 5")
print("执行代码块 1") # 4 个空格缩进,属于 if 内部
print("无论条件是否成立,都会执行") # 无缩进,属于外部代码
# 错误示例:缩进混乱,直接报错
b = 10
if b > 5:
print("b 大于 5") # 无缩进,语法报错
print("执行代码块 1")
print("缩进不一致") # 缩进层级混乱,报错
小技巧:
如果条件语句中暂时没有要执行的代码,不能留空(会语法报错),此时用 pass 占位——它不执行任何操作,只保证语法完整,后续可随时补充代码。
# 示例:暂时不处理'输入 1'的情况,用 pass 占位
num = int(input("请输入数字:"))
if num == 1:
pass # 占位用,后续可添加具体逻辑
else:
print("你输入的不是 1")
闰年规则:
我们可以用嵌套条件语句来实现:
year = int(input("请输入年份:"))
if year % 100 == 0: # 嵌套条件:世纪年的额外判断
if year % 400 == 0:
print(f"{year}是闰年,有 366 天")
else:
print(f"{year}是平年,有 365 天")
else:
if year % 4 == 0:
print(f"{year}是闰年,有 366 天")
else:
print(f"{year}是平年,有 365 天")
当然也可以简化成这种写法:
year = int(input('请输入年份:'))
if (not year % 4 and year % 100) or not year % 400:
print(f"{year}是闰年,有 366 天")
else:
print(f"{year}是平年,有 365 天")
遇到需要反复执行的操作,使用循环语句能帮你避免写大量重复代码,实现自动化重复。
Python 主要有 while 和 for 两种循环,它们适用的场景不同。
while 循环的逻辑:只要条件为真,就反复执行循环体,直到条件为假才结束。适合不确定循环次数,但知道结束条件的场景。
while 条件:
循环体(缩进代码)
循环变量更新(必须要有!否则程序会一直无限循环)
num = 1
while num <= 10:
print(num)
num += 1 # 循环变量 +1,否则条件永远为真(无限循环)
sum_total = 0 # 存储总和的变量,初始值 0
num = 1
while num <= 100:
sum_total += num # 等价于 sum_total = sum_total + num
num += 1
print(f"1-100 的和:{sum_total}") # 输出:5050
i = 1
while i <= 5:
j = 1
while j <= i:
print(f"{j}×{i}={j*i}", end="\t") # end="\t"让结果横向对齐
j += 1
print() # 换行,进入下一行乘法表
i += 1
如果循环变量不更新,条件会永远为真,程序会一直循环下去,只能强制终止。
常见无限循环场景及解决:
num += 1、i -= 1 等更新语句;while True):需在循环体内用 break 手动终止。Python 的 for 循环和其他语言差异很大,它不用手动管理循环变量,而是直接遍历可迭代对象(比如数字序列、字符串、列表),语法更简洁。
for 循环变量 in 可迭代对象:
循环体
range 是 Python 中的内置函数,专门用来生成连续整数序列,有三种常用格式:
range(n):生成 0~n-1,比如 range(5)→0,1,2,3,4。range(a, b):生成 a~b-1(左闭右开区间),比如 range(1,6)→1,2,3,4,5。range(a, b, step):生成 a~b-1,且步长为 step,比如 range(2,12,2)→2,4,6,8,10。for i in range(1, 11):
print(i)
for i in range(2, 12, 2):
print(i)
for i in range(10, 0, -1):
print(i)
text = "Python"
for char in text:
print(char) # 依次输出:P、y、t、h、o、n
循环中需要提前结束或跳过某次执行时,用 break 和 continue 控制流程。
不管后续条件是否满足,立即跳出循环,不再执行任何循环体代码。适合找到目标后就停止的场景。
# 示例:找 10 以内的第一个偶数,找到即停止
for i in range(1, 11):
if i % 2 == 0:
print(f"找到的第一个偶数:{i}")
break # 终止整个循环,后续数字不再判断
只跳过当前这次的循环体,不终止整个循环,接下来继续执行下一次迭代。适合筛选掉不需要的情况,继续后续执行。
# 示例:打印 1-10,跳过奇数(只打印偶数)
for i in range(1, 11):
if i % 2 != 0:
continue # 跳过奇数,不执行后续 print
print(i) # 只输出偶数:2、4、6、8、10
sum_total = 0
while True: # 无限循环,靠 break 手动终止
num = float(input("请输入数字(输入 0 结束):"))
if num == 0:
break # 输入 0,终止循环
sum_total += num
print(f"所有输入数字的和:{sum_total}")
结合条件语句和循环,实现一个实用小工具——录入 3 名学生的成绩,自动判定等级、计算平均分。
# 简易学生成绩管理系统
sum_score = 0 # 存储 3 名学生的总分
student_count = 3 # 学生人数
print("=" * 30)
print("学生成绩管理系统(录入 3 名学生)")
print("=" * 30)
# 循环录入 3 名学生成绩(for 循环+range,明确循环次数)
for i in range(1, student_count + 1):
# 内层 while 循环:校验成绩有效性(0-100)
while True:
score = float(input(f"\n请输入第{i}名学生的成绩(0-100):"))
if 0 <= score <= 100:
break # 成绩有效,跳出校验循环
print("成绩无效!请输入 0-100 之间的数字~")
# 累加总分
sum_score += score
# 条件语句:判定成绩等级
if score >= 90:
grade = "优秀"
elif score >= 80:
grade = "良好"
elif score >= 60:
grade = "及格"
else:
grade = "不及格"
# 输出单名学生结果
print(f"第{i}名学生:成绩{score}分,等级{grade}")
# 计算并输出平均分(保留 2 位小数,更规范)
avg_score = sum_score / student_count
print(f"\n{'='*30}")
print(f"3 名学生的平均分:{avg_score:.2f}分")
print(f"{'='*30}")
至此,我们已梳理完 Python 基础语法(二)的核心内容。后续我们将深入探索函数、函数嵌套等内容。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online