Python从入门到实战 (3):流程控制语句(if 判断与循环)

上一篇我们掌握了变量、数据类型和运算符,能处理基础数据了。但代码还只能“按顺序执行”——比如从第一行跑到最后一行,没法根据条件做选择,也没法重复做一件事。这篇就学“流程控制语句”,让代码拥有“判断能力”(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,就会显示猜的次数,游戏结束。

总结

这篇我们掌握了流程控制的核心:

  1. if 判断(if/if-else/if-elif-else):让代码能“做选择”;
  2. 循环(for/while):让代码能“重复做事”,for 适合遍历序列,while 适合按条件循环;
  3. break/continue:灵活控制循环的终止和跳过。

有了这些,代码就能实现更复杂的逻辑了——比如“批量处理数据”“做交互游戏”。下一篇我们会学“列表与元组”,这两种数据结构能帮我们更方便地存储多个数据,配合循环使用更高效~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值