上一篇我们掌握了变量、数据类型和运算符,能处理基础数据了。但代码还只能“按顺序执行”——比如从第一行跑到最后一行,没法根据条件做选择,也没法重复做一件事。这篇就学“流程控制语句”,让代码拥有“判断能力”(if)和“重复能力”(for/while),实现更灵活的逻辑。
一、先学 if 判断:让代码“做选择”
if 语句的核心是“满足条件就执行,不满足就跳过”,就像生活里“如果下雨就带伞,否则不带”。
1. 基础 if 结构(单条件)
语法:
if 条件: # 条件是布尔值(True/False),或能转成布尔值的表达式
满足条件时执行的代码块 # 注意缩进!缩进一般是4个空格,代表“属于if的代码”
案例:判断年龄是否成年(满18岁):
age = 20
if age >= 18:
print("你已成年,可以独立办理业务~") # 条件age>=18是True,会执行这行
如果把 age 改成 16,条件变成 False,这行打印代码就会跳过,不执行。
2. if-else 结构(二选一)
语法:
if 条件:
满足条件执行的代码块
else:
不满足条件执行的代码块 # else不用写条件,对应“if不满足”的情况
案例:根据考试分数判断“及格/不及格”(60分及以上及格):
score = 58
if score >= 60:
print("恭喜!考试及格啦~")
else:
print("加油!下次再努力~") # 58<60,执行else里的代码
3. if-elif-else 结构(多条件选其一)
当有多个条件需要判断时用,比如“90分以上优秀,70-89良好,60-69及格,低于60不及格”:
score = 85
if score >= 90:
print("成绩等级:优秀")
elif score >= 70: # 等价于“score<90且score>=70”,不用重复写前一个条件
print("成绩等级:良好") # 85满足这个条件,执行后跳过后面的判断
elif score >= 60:
print("成绩等级:及格")
else:
print("成绩等级:不及格")
⚠️ 注意:elif 会按顺序判断,满足一个就执行对应代码,后面的条件不再看,所以不用写“区间重叠”的条件。
二、再学循环:让代码“重复做事”
循环就是“重复执行一段代码”,比如“打印1到5的数字”“重复输入密码直到正确”,Python 里常用两种循环:for 循环和 while 循环。
1. for 循环:“遍历序列”用它(最常用)
for 循环适合“已知要循环多少次”的场景,比如遍历列表、字符串、数字范围等。
(1)遍历“数字范围”:用 range() 函数
range(n) 会生成 0 到 n-1 的整数序列;range(a, b) 生成 a 到 b-1 的序列;range(a, b, step) 按 step 步长生成序列(比如 step=2 是隔一个取一个)。
案例1:打印1到5的数字:
for num in range(1, 6): # range(1,6)生成1、2、3、4、5
print(num) # 循环5次,依次打印1、2、3、4、5
案例2:打印1到10的偶数:
for num in range(2, 11, 2): # 从2开始,到10结束,步长2(2、4、6、8、10)
print(num)
(2)遍历“字符串/列表”:直接取元素
案例1:遍历字符串,打印每个字符:
s = "Python"
for char in s: # 依次取字符串里的每个字符:P、y、t、h、o、n
print(char)
案例2:遍历列表,计算所有数字的和:
nums = [10, 20, 30]
total = 0
for n in nums: # 依次取列表里的10、20、30
total += n # 每次循环把n加到total里(total=0→10→30→60)
print("列表总和:", total) # 输出:60
2. while 循环:“满足条件就循环”用它
while 循环适合“不知道要循环多少次,只知道循环条件”的场景,比如“重复输入密码,直到输入正确”。
语法:
while 条件: # 条件为True时,就执行循环体;变成False时,循环停止
循环体代码(要缩进)
案例1:打印1到5的数字(用 while 实现):
num = 1
while num <= 5: # 条件:num小于等于5时循环
print(num)
num += 1 # 每次循环让num加1(避免无限循环!)
# 循环过程:num=1→2→3→4→5→6(6>5,条件False,循环停止)
案例2:“密码验证”:输入正确密码(假设是“123456”)才停止:
correct_password = "123456"
password = "" # 初始密码为空
while password != correct_password: # 密码不对就一直循环
password = input("请输入密码:")
print("密码正确!欢迎进入~")
⚠️ 关键:while 循环一定要有“让条件变False的代码”(比如案例1的 num+=1、案例2的输入正确密码),否则会无限循环(代码一直跑停不下来,需按 Ctrl+C 强制终止)。
3. 循环里的“小助手”:break 和 continue
有时候需要“提前终止循环”或“跳过当前次循环”,用这两个关键字:
(1)break:直接终止整个循环
案例:遍历1到10,遇到5就停止:
for num in range(1, 11):
if num == 5:
break # 遇到5,终止循环,后面的6-10都不遍历了
print(num) # 只打印1、2、3、4
(2)continue:跳过当前次循环,继续下一次
案例:遍历1到5,跳过3,打印其他数字:
for num in range(1, 6):
if num == 3:
continue # 跳过当前次(不打印3),直接进入下一次循环(num=4)
print(num) # 打印1、2、4、5
三、实战小案例:用流程控制写“猜数字游戏”
把 if 判断和 while 循环结合,写一个简单的猜数字游戏:程序随机生成1-100的数字,用户猜,程序提示“大了”“小了”,直到猜对,统计猜的次数。
import random # 导入随机数模块
# 1. 程序随机生成1-100的数字
target_num = random.randint(1, 100)
guess_count = 0 # 统计猜的次数
# 2. while循环:一直猜,直到猜对
while True: # True表示“无限循环”,靠break终止
guess = int(input("请猜一个1-100的数字:"))
guess_count += 1 # 每次猜,次数加1
# 3. if判断:提示“大了”“小了”“猜对了”
if guess > target_num:
print("猜大了!再试试~")
elif guess < target_num:
print("猜小了!再试试~")
else:
print(f"恭喜猜对啦!你一共猜了{guess_count}次~")
break # 猜对了,终止循环
运行后,比如目标数字是45,输入50会提示“大了”,输入40提示“小了”,直到输入45,就会显示猜的次数,游戏结束。
总结
这篇我们掌握了流程控制的核心:
- if 判断(if/if-else/if-elif-else):让代码能“做选择”;
- 循环(for/while):让代码能“重复做事”,for 适合遍历序列,while 适合按条件循环;
- break/continue:灵活控制循环的终止和跳过。
有了这些,代码就能实现更复杂的逻辑了——比如“批量处理数据”“做交互游戏”。下一篇我们会学“列表与元组”,这两种数据结构能帮我们更方便地存储多个数据,配合循环使用更高效~