Python 流程控制学习笔记

一、选择结构(if 语句)

1. 概念理解

选择结构就是让程序根据条件“选择”执行不同的代码,像生活里“如果下雨就打伞,不下雨就晒太阳” ,程序里用 if 实现这种判断。

2. 三种选择结构形式

(1)单分支选择结构

# 如果条件成立,就执行缩进的语句
if 条件表达式:  
    语句
# 示例:判断数字是否大于 10
num = 15
if num > 10:
    print("这个数字大于10")
  • 解释:if 后面的条件表达式 num > 10 成立(15 确实大于 10),就执行 print 语句,打印内容。

(2)双分支选择结构

if 条件表达式:  
    语句1  # 条件成立时执行
else:
    语句2  # 条件不成立时执行
# 示例:判断数字是奇数还是偶数
num = 7
if num % 2 == 0:
    print("是偶数")
else:
    print("是奇数")
  • 解释:num % 2 == 0 判断是否能被 2 整除,7 除以 2 余 1,条件不成立,执行 else 里的 print("是奇数")

(3)多分支选择结构

if 条件表达式1:
    语句1  # 条件1成立执行
elif 条件表达式2:
    语句2  # 条件1不成立、条件2成立执行
elif 条件表达式3:
    语句3  # 前面条件都不成立,条件3成立执行
# 以此类推,可多个 elif
# 示例:根据成绩评级(简化版,假设成绩是整数)
score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("合格")
else:
    print("不合格")
  • 解释:先看 score >= 90 ,85 不满足;再看 score >= 80 ,满足,执行 print("良好")

3. 实际应用案例(出租车计价、坐标象限判断 )

(1)出租车计价

# 输入公里数,自动计算费用
a = eval(input("请输入公里数:"))  # 获取用户输入的公里数,eval 把输入转成数字
price = 0  # 先定义费用变量
if a <= 3:
    price = 11.0  # 3公里及以内,起步价11元
else:
    # 超过3公里的部分,每公里2.4元,总费用=起步价 + 超出部分费用
    price = 11.0 + (a - 3) * 2.4  
print("请付费:¥", price)  # 输出最终费用
  • 比如输入 4 公里,a=4 大于 3 ,price = 11 + (4-3)*2.4 = 13.4 ,就会输出 请付费:¥ 13.4

(2)坐标象限判断

# 输入x、y坐标,判断在哪个位置
x = eval(input("请输入x坐标:"))  
y = eval(input("请输入y坐标:"))  
if (x == 0 and y == 0):
    print("在原点")  # x和y都为0,就是原点
elif (x == 0):
    print("在y轴")  # x为0,y不是0,就在y轴
elif (y == 0):
    print("在x轴")  # y为0,x不是0,就在x轴
elif (x > 0 and y > 0):
    print("在第一象限")  # x、y都大于0,第一象限
elif (x < 0 and y > 0):
    print("在第二象限")  # x小于0,y大于0,第二象限
elif (x < 0 and y < 0):
    print("在第三象限")  # x、y都小于0,第三象限
elif (x > 0 and y < 0):
    print("在第四象限")  # x大于0,y小于0,第四象限
  • 比如输入 x=5y=8 ,满足 x>0 and y>0 ,就输出 在第一象限

二、循环结构(for 循环、while 循环 )

1. for 循环

(1)概念理解

确定次数的循环,也叫遍历循环,就是把一个序列(列表、字符串等)里的元素逐个“过一遍”,依次执行循环里的代码。

(2)基本语法

for 循环变量 in 遍历结构:
    循环语句
else:
    语句  # 遍历完所有元素后,会执行这里(如果循环没被 break 打断)
# 简单示例:遍历列表里的编程语言
languages = ["C", "C++", "Python", "Java"]
for x in languages:
    print(x)
else:
    print("遍历完啦")
  • 执行过程:x 依次取 languages 里的元素,打印 CC++PythonJava ,遍历完后执行 else 里的 print("遍历完啦")

(3)实际应用(计算累加和 )

① 计算 1 到 100 偶数的和
sum = 0  # 用来存总和,初始为0
for i in range(1, 101):  # i 从1到100依次取值
    if i % 2 == 0:  # 判断是否是偶数
        sum = sum + i  # 是偶数就加到总和里,也可以写 sum += i
print(sum)  # 最后输出总和,结果是 2550(2+4+…+100 的和)
  • 解释:range(1,101) 生成 1 到 100 的数字序列,循环里判断偶数并累加。
② 计算 1 到 99 奇数的和(两种写法 )

写法一:

s = 0
for i in range(1, 100, 2):  # range(起始, 结束, 步长),这里步长2,取1、3、5…99
    s += i  # 累加奇数
print(s)  # 结果是 2500(1+3+…+99 的和)

写法二:

s = 0
for i in range(1, 100):  # i 从1到99
    if i % 2 == 1:  # 判断是否是奇数
        s += i  # 是奇数就累加
print(s)  # 结果同样是2500

(4)for 循环结合 break(提前终止循环 )

list1 = [1, 3, 5, 7, 9]
for i in list1:
    print(i, end=" ")  # 打印元素,end=" " 让打印不换行,用空格隔开
    if i >= 5:  # 当元素大于等于5时
        break  # 跳出循环,后面的元素就不遍历了
else:
    print("else")  # 因为循环被 break 打断,这里不会执行
# 执行结果:1 3 5 
  • 解释:i 依次取 135 ,取到 5 时,满足 i>=5 ,执行 break ,循环提前结束,else 部分不执行 。

2. while 循环

(1)概念理解

非确定次数的循环,也叫无限循环(不过实际会通过条件控制结束),只要条件表达式为 True ,就一直执行循环里的代码。

(2)基本语法

while 循环条件表达式:
    循环语句
    改变循环条件的语句  # 必须有,否则容易死循环
# 示例:求 1*2*3*…*n 的值(阶乘)
s = 1  # 存乘积结果,初始为1(乘法初始值选1)
n = int(input("请输入n:"))  # 让用户输入想算到几的阶乘
i = 1  # 循环变量,从1开始
while i <= n:  # 只要i小于等于n,就继续循环
    s *= i  # 相当于 s = s * i ,累乘
    i = i + 1  # 改变循环条件,让i逐渐增大,靠近n
print(s)  # 输出最终的阶乘结果
  • 比如输入 n=5 ,循环过程:i=1s=1*1=1i=2s=1*2=2i=3s=2*3=6i=4s=6*4=24i=5s=24*5=120 ,最后输出 120

(3)while 循环结合 break(提前终止 )

var = 10
while var > 0:
    print('当前值:', var)
    var = var - 1  # 改变循环条件,让var减小
    if var == 5:  # 当var减到5时
        break  # 跳出循环
print("Done!")
# 执行结果:
# 当前值: 10
# 当前值: 9
# 当前值: 8
# 当前值: 7
# 当前值: 6
# Done!
  • 解释:var 从 10 开始,每次减 1 ,当 var 变成 5 时,执行 break ,循环终止,最后打印 Done!

三、break 语句

1. 作用

在循环(forwhile )里,当满足某个条件时,用 break 可以直接跳出当前循环,循环里 break 之后的代码不再执行,要是有 else 部分(和循环配套的),else 也不执行。

2. 示例(遍历字符串时用 break )

for letter in 'Python':
    if letter == 'h':
        break  # 遇到'h'就跳出循环
    print('当前字母:', letter)
# 执行结果:
# 当前字母: P
# 当前字母: y
# 当前字母: t
  • 解释:letter 依次取 'P''y''t''h' ,取到 'h' 时,if 条件成立,执行 break ,循环结束,所以只打印到 't'

这些就是 Python 里选择结构和循环结构的基础知识点啦,多敲代码练习练习,就能慢慢熟练掌握啦,遇到问题别慌,一步步分析条件和执行流程就好~

1 条评论

  • @ 2025-6-3 20:29:50

    🐍 Python :控制结构 —— 选择结构与循环结构


    🧠 本节课目标:

    通过本节课,你将掌握以下内容:

    • 选择结构:单分支、双分支、多分支
    • for 循环:遍历数据、计算累加和
    • while 循环:条件驱动的循环
    • break 语句:跳出当前循环
    • else 子句:配合 for/while 使用

    一、选择结构(if 语句)

    1. 单分支选择结构

    if 条件:
        # 如果条件为 True,执行这段代码
    

    示例:

    a = 5
    if a > 3:
        print("a大于3")
    

    2. 双分支选择结构(if...else)

    if 条件:
        # 如果条件为 True,执行这里
    else:
        # 否则执行这里
    

    示例:

    price = float(input("请输入香蕉的单价: "))
    if price > 3:
        print("好贵")
    else:
        print("价格还好")
    

    3. 多分支选择结构(if...elif...else)

    用于判断多个条件。

    if 条件1:
        # 条件1成立时执行
    elif 条件2:
        # 条件2成立时执行
    else:
        # 都不成立时执行
    

    示例:成绩等级判断

    score = int(input("请输入你的成绩: "))
    if score >= 90:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 60:
        print("合格")
    else:
        print("不及格")
    

    二、实战练习:出租车计价系统

    💡 题目说明:

    南京出租车计费规则如下:

    • 起步价:11元 / 3公里
    • 超出3公里后,每公里2.4元

    ✅ 示例代码 + 注释:

    # 输入公里数
    km = float(input("请输入公里数:"))
    
    # 判断是否超过3公里
    if km <= 3:
        price = 11.0
    else:
        price = 11.0 + (km - 3) * 2.4
    
    # 输出结果
    print("请付费:¥", price)
    

    三、实战练习:坐标象限判断

    💡 题目说明:

    输入 x 和 y 的值,判断该点在第几象限或在哪条轴上。

    ✅ 示例代码 + 注释:

    x = float(input("请输入x坐标:"))
    y = float(input("请输入y坐标:"))
    
    if x == 0 and y == 0:
        print("在原点")
    elif x == 0:
        print("在y轴")
    elif y == 0:
        print("在x轴")
    elif x > 0 and y > 0:
        print("在第一象限")
    elif x < 0 and y > 0:
        print("在第二象限")
    elif x < 0 and y < 0:
        print("在第三象限")
    else:
        print("在第四象限")
    

    四、for 循环(确定次数循环)

    1. 基本语法:

    for 变量 in 序列:
        # 循环体
    

    2. 示例:遍历列表

    languages = ["C", "C++", "Python", "Java"]
    for lang in languages:
        print(lang)
    

    3. 示例:计算 1+3+5+…+99 的和

    s = 0
    for i in range(1, 100, 2):  # 从1开始,每隔2个数字取一个(即奇数)
        s += i
    print(s)
    

    五、while 循环(不确定次数循环)

    1. 基本语法:

    while 条件:
        # 条件为 True 时执行
        # 注意要改变条件,否则会死循环
    

    2. 示例:求阶乘 n!

    s = 1
    n = int(input("请输入n: "))
    i = 1
    while i <= n:
        s *= i
        i += 1
    print(s)
    

    六、break 语句(提前退出循环)

    💡 break 的作用:

    一旦遇到 break,就立刻结束当前所在的循环。

    示例:

    var = 10
    while var > 0:
        print('当前值:', var)
        var -= 1
        if var == 5:
            break
    print("Done!")
    

    🔁 执行到 var == 5 时,触发 break,循环终止。


    七、for + else 结构(循环正常结束后执行 else)

    list1 = [1, 3, 5, 7, 9]
    for i in list1:
        print(i, end=" ")
        if i >= 5:
            break
    else:
        print("else")
    

    ⚠️ 注意:如果循环中没有 break 或者循环被中断了,else 不会执行!


    八、综合练习:判断输入数字能否被7整除

    ✅ 示例代码:

    num = int(input("请输入一个整数:"))
    if num % 7 == 0:
        print(f"{num} 能被7整除")
    else:
        print(f"{num} 不能被7整除")
    

    九、知识点总结表

    类型 语法格式 用途
    单分支 if 条件:
      语句
    条件满足时执行
    双分支 if 条件:
      语句1
    else:
      语句2
    两种情况选其一
    多分支 if 条件1:
      语句1
    elif 条件2:
      语句2
    else:
      语句3
    多种情况选一项
    for 循环 for 变量 in 序列:
      语句
    遍历序列
    while 循环 while 条件:
      语句
    条件满足时重复执行
    break break 立刻退出当前循环
    else for/while ... else:
      语句
    循环正常结束时执行(非break)

    十、课后练习建议(动手写一写)

    1. 编写程序:输入两个数,输出它们的差(大减小)和它们的和。
    2. 编写程序:计算 1 到 100 中所有偶数的和。
    3. 编写程序:打印出 1~100 之间能被 3 整除的所有数。
    4. 编写程序:输入一个正整数,判断它是否是质数(只能被1和自身整除)。

    🎯 总结一句话:

    选择结构让你根据条件做决定;循环结构让你反复执行任务。掌握 if、for、while、break 这些关键词,你就拥有了编写复杂逻辑的能力!

    • 1