news 2026/7/12 4:29:45

Python 分支与循环完全指南——从 if/else 到 for 循环一网打尽

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)

五、总结

  • 分支结构用ifelifelse实现条件判断。
  • 循环结构用for搭配range实现重复执行,并可嵌套。
  • break终止循环,continue跳过本次循环。
  • for-else是 Python 的特色,当循环未被 break 中断时执行 else 块。

掌握这些流程控制工具,你就有了编织程序逻辑的“经纬线”。从简单的判断到复杂的嵌套,一切都可以信手拈来。快动手实践吧!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 4:29:34

Linux下Docker Compose里运行Nginx故障诊断Shell脚本

#!/bin/bash # # Nginx on Docker Compose 故障系统化诊断脚本 # 融哲于技&#xff1a;本体论、奥卡姆剃刀、辩证法、实用主义、道家无为、整体论 # # 功能&#xff1a;针对 Docker Compose 管理的 Nginx 服务意外中断进行系统化取证与诊断 # 使用&#xff1a;./nginx_diagno…

作者头像 李华
网站建设 2026/7/12 4:28:43

多模态大模型驱动CV智能涌现:技术原理与应用实践

最近在AI技术社区中&#xff0c;"智能涌现"这个概念被频繁提及&#xff0c;特别是随着多模态大模型的快速发展&#xff0c;计算机视觉&#xff08;CV&#xff09;领域正经历着前所未有的变革。作为长期关注AI技术演进的技术从业者&#xff0c;我深切感受到CV技术正在…

作者头像 李华
网站建设 2026/7/12 4:27:45

项目深度分析报告--来自智谱Agent模式

一、项目概览 1.1 项目定位 gliding_horse&#xff08;流马&#xff09;是一个用 Rust 编写的"Agent OS"&#xff08;智能体操作系统&#xff09;&#xff0c;作者将其定位为"以 CPU 架构为隐喻的智能体编排系统"。项目试图将操作系统的设计理念&#xff0…

作者头像 李华
网站建设 2026/7/12 4:27:39

从零开始学Python:模块导入+range()函数,这是你入门的第一道坎!

一、模块导入&#xff08;前置知识&#xff09;在开始学习分支与循环之前&#xff0c;我们先了解Python中的模块导入机制。什么是模块&#xff1f;模块就是一个.py文件&#xff0c;包含了Python定义和语句。通过导入模块&#xff0c;可以使用其他文件中定义的功能。比如我们先在…

作者头像 李华
网站建设 2026/7/12 4:27:22

梅西要解的不是瑞士防线,而是一只不断收紧的钟

导语&#xff5c;四年前&#xff0c;阿根廷用激情赢得世界杯&#xff1b;四年后&#xff0c;他们必须学会在时间、体能与期待的夹击中卫冕。北京时间7月12日&#xff0c;堪萨斯城的夜色里&#xff0c;斯卡洛尼面对的不是一支急于创造奇迹的瑞士&#xff0c;而是一台耐心等待冠军…

作者头像 李华
网站建设 2026/7/12 4:26:47

L3自动驾驶牌照背后的电子电气架构真相

1. 这不是“能用就行”的功能&#xff0c;而是整车电子电气架构的照妖镜最近朋友圈刷屏的“L3级自动驾驶获准上路”消息&#xff0c;很多人第一反应是&#xff1a;终于能放手开车了&#xff1f;赶紧换车&#xff01;但作为在智能驾驶系统集成一线干了12年的老工程师&#xff0c…

作者头像 李华