Python 分支与循环完全指南——从 if/else 到 for 循环一网打尽
引言
各位大佬大家早中晚上嚎呀,又到了愉快的学习时间了,本文主要详解了python中分支与循环的内容,干货满满哦!
在 Python 编程中,流程控制是程序逻辑的核心。无论是条件判断还是重复执行,都离不开分支结构和循环结构。本文将从零开始,结合详细的代码示例和注释,带你彻底搞懂 Python 中的 if/elif/else 分支以及 for 循环的各种用法,包括 range、嵌套、break、continue 以及 Python 独特的 for-else 机制。
一、程序的三种基本结构
任何复杂的程序都由以下三种基本结构组合而成:
- 顺序结构:代码从上往下依次运行。
- 分支结构:根据条件选择不同的执行路径。
- 循环结构:重复执行某段代码,直到满足特定条件。
二、分支结构详解
2.1 单分支 if——条件满足才执行
单分支结构只有if语句,当条件为真时执行其内部的代码块,否则直接跳过。
print(1) print(2) if 1 != False: # 1 != False 结果为 True print(3) # 条件成立,执行 # 内部可以继续嵌套分支 if 7 > 8: # 条件不成立 print(4) # 不执行 print(5) # 只要外层的 if 成立,这行就会执行 print("the end")2.2 双分支 if-else——二选一
双分支提供了两种互斥的路径,根据条件真假执行其中一个分支。
num = 16 if num > 10: if num > 15: print("强") else: # 10 < num <= 15 print("辣鸡") else: # num <= 10 if num < 5: print("mini") else: # 5 <= num <= 10 print("mid")2.3 多分支 if-elif-else——可以有多种选择
elif是“else if”的缩写,用来处理多个互斥的条件分支。它可以有多个,最后的else可以省略。
num = 30 if num > 80: print("111") elif num > 60: print("222") elif num > 40: print("333") else: print("444") # 所有条件都不满足时执行2.4 三个关键字的含义
- if:开头,如果满足某个条件。
- elif:跟在 if 之后,与 if 是平行关系,表示“否则如果”。
- else:最后剩余的所有条件,当前面所有条件都不满足时执行。
三、循环结构详解
3.1 for 循环的运行原理
for循环会依次将序列(如列表、字符串、range 生成的对象)中的每个元素赋予变量,并执行循环体。
# for 的运行原理:将 range 中的所有数字依次赋予 i for i in range(2, 5, 3): print(i) # 输出:2(因为 range(2,5,3) 生成 2,下一个是 5 但已经超出 end-1 的范围)3.2 range() 函数详解
range(start, stop, step)用于生成一个整数序列,常和 for 配合使用。注意:包含 start,不包含 stop;当 step 为负数时可以实现递减遍历。
# 正向遍历 for i in range(1, 10): print(i) # 依次打印 1 到 9 递减遍历:当 start > stop 时,必须规定 step 为负值,否则返回空序列 for num in range(10, 5, -5): print(num) # 输出 10(因为 10-5=5,小于 stop=5,只输出 10)3.3 循环嵌套——外层走一次,内层走一轮
循环嵌套可以实现类似“乘法表”的效果。外层循环每变化一次,内层循环就完整地执行一轮。
# 打印九九乘法表 for i in range(1, 10): # 外层控制行 for j in range(1, i+1): # 内层控制列 print(f"{i}x{j}={i * j}", end="\t") print("") # 换行3.4 循环控制关键字:break 和 continue
- break:直接终止整个循环,不再执行后续所有循环次数。
- continue:跳出当前这一次循环,继续执行下一次循环(当前循环体中 continue 之后的代码不执行)。
for i in range(10): if i == 5: # break # 如果启用 break,只会打印 0~4 continue # 跳过 i==5 的情况,打印 0,1,2,3,4,6,7,8,9 print(i)3.5 Python 独有的 for-else 语法
在 for 循环后可以跟一个else块。它的执行规则是:如果循环中没有执行 break,则在循环正常结束后执行 else 块;如果循环被 break 终止,则 else 不执行。这是一种检查循环是否被完整遍历的优雅方式。
# 示例一:break 被触发,else 不执行 for i in range(10): print(i) if i == 9: # 循环会在 i=9 时 break break else: print("the end") # 不会执行 示例二:没有执行 break,else 执行 for i in range(10): print(i) if i == 10: # 这个条件永远不会成立,所以 break 不触发 break else: print("the end") # 正常结束后打印四、综合实战:水仙花数
最后,我们来看一个结合循环与判断的经典案例——找出 100~999 之间所有的水仙花数(每位数字的立方和等于该数本身)。
total = 0 for i in range(100, 1000): first = i // 100 # 百位 second = i // 10 % 10 # 十位 third = i % 10 # 个位 num = first ** 3 + second ** 3 + third ** 3 if i == num: total += i # 累加满足条件的数 print(total) # 输出 1301(153 + 370 + 371 + 407)五、总结
- 分支结构用if、elif、else实现条件判断。
- 循环结构用for搭配range实现重复执行,并可嵌套。
- break终止循环,continue跳过本次循环。
- for-else是 Python 的特色,当循环未被 break 中断时执行 else 块。
掌握这些流程控制工具,你就有了编织程序逻辑的“经纬线”。从简单的判断到复杂的嵌套,一切都可以信手拈来。快动手实践吧!
