Agent学习路线之——python 入门 ③(循环结构与流程控制)

本文为Python学习第三天的内容,涵盖拦截判断与漏斗式判断、while循环、循环控制语句(break/continue)以及for循环的深入理解。适合零基础入门学习,建议配合代码实操。


一、拦截判断和漏斗式判断

在循环中,我们经常需要对用户输入或数据进行多条件判断。根据判断逻辑的不同,可以分为拦截式漏斗式两种写法。

1.1 拦截式判断

特点:每个条件独立判断,使用多个 if 语句,条件之间互不影响。

while True:
    a = int(input())
    if a > 0:
        print("正数,重新输入")
    if a < 0:
        print("负数,重新输入")
    if a == 0:
        print("是0")
        break

注意:拦截式中,如果多个条件同时满足(虽然本例中不会),会执行多个分支。每个 if 都会进行判断。

1.2 漏斗式判断

特点:使用 if-elif-else 结构,条件依次判断,一旦某个条件满足,后续条件不再判断,像漏斗一样层层筛选。

while True:
    a = int(input())
    if a > 0:
        print("正数,重新输入")
    elif a < 0:
        print("负数,重新输入")
    else:
        print("是0")
        break

1.3 两种方式的对比

对比项拦截式漏斗式
结构多个独立的 ifif-elif-else 串联
执行效率每个条件都判断满足一个后跳过其余
适用场景条件之间可能同时成立条件之间互斥,只需一个成立
推荐程度⭐⭐⭐⭐⭐⭐⭐

开发建议:在条件互斥的情况下,优先使用漏斗式,效率更高,逻辑更清晰。


二、while循环

while 循环是Python中最基础的循环结构,当条件为真时重复执行代码块。

2.1 while计数循环

三要素:计数器初始化、判断条件、计数器改变。三者缺一不可,否则容易出现死循环或循环不执行。

# 打印1~5的数字
count = 1          # 1. 计数器初始化
while count <= 5:  # 2. 判断条件
    print(count)
    count += 1     # 3. 计数器改变(count = count + 1)

执行流程

  1. 初始化 count = 1

  2. 判断 count <= 5,成立则执行循环体

  3. 打印并自增

  4. 回到步骤2,直到 count = 6 时条件不成立,循环结束

2.2 while的死循环

当条件永远为 True 时,循环将无限执行,称为死循环。通常需要配合 break 语句在特定条件下退出。

while True:
    user_input = input("请输入'quit'退出程序:")
    if user_input == "quit":
        print("程序已退出")
        break
    print(f"你输入的是:{user_input}")

注意:死循环本身不是错误,在需要持续监听用户输入、服务器运行等场景下非常有用。但一定要确保有退出机制(如 break),否则程序将永远无法结束。


三、循环控制语句

循环控制语句用于改变循环的正常执行流程。

3.1 break 语句

作用:立即终止整个循环,跳出循环体,执行循环后面的代码。

# 查找列表中第一个负数
numbers = [3, 5, 8, -2, 9, 1]
for num in numbers:
    if num < 0:
        print(f"找到第一个负数:{num}")
        break

3.2 continue 语句

作用:跳过当前循环的剩余代码,直接进入下一次循环判断。

# 打印1~10中的奇数(跳过偶数)
for i in range(1, 11):
    if i % 2 == 0:   # 如果是偶数
        continue     # 跳过本次循环,不执行下面的print
    print(i)

3.3 break 与 continue 对比

语句作用使用场景
break终止整个循环找到目标后提前退出
continue跳过当前迭代过滤不符合条件的项

四、for循环

for 循环是Python中最常用的循环结构,特别适合遍历序列(字符串、列表、元组等)。

4.1 range()函数

range()for 循环的黄金搭档,用于生成一个整数序列。

用法说明示例
range(stop)从0开始,到stop-1结束range(5) → 0,1,2,3,4
range(start, stop)从start开始,到stop-1结束range(1,5) → 1,2,3,4
range(start, stop, step)带步长,step为间隔range(0,10,2) → 0,2,4,6,8
# 基础用法:打印1到4
for i in range(1, 5):
    print(i)

# 带步长:打印0到20的偶数
for i in range(0, 21, 2):
    print(i)

4.2 for...else 循环

这是Python中一个独特且实用的语法结构。

4.2.1 如果for正常结束,必须执行else语句

for 循环没有被 break 中断,正常遍历完所有元素后,会执行 else 块。

for i in range(1, 5):
    print(i)
else:
    print("for正常结束了...")

输出

1
2
3
4
for正常结束了...

实际应用:查找字符

str1 = "abdefg"
for i in str1:
    if i == 'c':
        print("找到了")
        break
else:
    print("没找到")
# 输出:没找到(因为字符串中没有'c',循环正常结束,执行else)
4.2.2 如果for异常结束,不会执行else语句

for 循环被 break 中断时,else不会执行

for i in range(20):
    if i % 7 == 0 and i != 0:
        break  # 遇到第一个能被7整除的数就退出
else:
    # 不会执行这里,因为循环被break异常结束
    print("没有可以被7整除的数字")

核心理解else 的触发条件是"循环正常跑完",而不是"循环条件不满足"。一旦被 break,就属于异常结束。


五、循环嵌套与综合案例

5.1 循环嵌套

循环内部再写循环,称为嵌套循环。外层循环执行一次,内层循环执行一轮。

# 打印九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()  # 换行

5.2 综合案例:猜数字游戏

综合运用今天所学知识:

import random

target = random.randint(1, 100)
count = 0

while True:
    guess = int(input("请输入你猜的数字(1-100):"))
    count += 1
    
    if guess > target:
        print("猜大了,再试试")
    elif guess < target:
        print("猜小了,再试试")
    else:
        print(f"恭喜你猜对了!答案就是{target},你一共猜了{count}次")
        break

六、总结

Day04主要学习了Python中的循环结构与流程控制。重点掌握:

知识点核心内容
拦截式 vs 漏斗式互斥条件优先用漏斗式(if-elif-else
while循环计数循环三要素;死循环配合 break 使用
break终止整个循环
continue跳过当前迭代
range()range(start, stop, step) 生成整数序列
for...else循环正常结束才执行 else,被 break 则跳过

下一篇将继续学习Python的数据结构(列表、元组、字典、集合),敬请期待!

练习建议:动手敲一遍文中的所有代码,尤其是 for...else 的两种结束情况,只有亲自运行过才能真正理解"正常结束"与"异常结束"的区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值