当前位置: 首页 > news >正文

Python 条件分支与循环详解--python004

Python 条件分支与循环详解

涵盖 if 条件判断、whilefor 循环、控制语句(break/continue)、复杂条件、成员与身份运算符,附最佳实践与现代语法


一、if 条件分支:程序的选择之道(3.1)

1.1 基本语法结构

if 条件表达式:语句块

示例:

age = 18
if age >= 18:print("已成年")

1.2 if...else:二选一

if 条件:执行 A
else:执行 B

示例:

if age >= 18:print("成年人")
else:print("未成年人")

1.3 if...elif...else:多分支结构

if 条件1:...
elif 条件2:...
else:...

示例:

score = 85
if score >= 90:print("优秀")
elif score >= 80:print("良好")
else:print("需要努力")

1.4 Python 3.10+ 的结构匹配(Structural Pattern Matching)

match value:case pattern1:...case pattern2:...

示例:

match command:case "start":print("启动")case "stop":print("停止")

✅ 推荐用于多分支匹配替代冗长的 if...elif 结构。


二、while 循环:基于条件的反复执行(3.2)

2.1 基本结构

while 条件:语句块

示例:

count = 0
while count < 5:print(count)count += 1

2.2 while...else:循环正常结束后执行

while 条件:...
else:...

示例:

n = 3
while n > 0:print(n)n -= 1
else:print("循环正常结束")

⚠️ 若中途 break 退出,则 else 不会被执行。


三、for 循环:遍历结构的利器(3.3)

3.1 遍历列表/元组/字符串

for item in iterable:语句块

示例:

for char in "Python":print(char)

3.2 range() 用于计数循环

for i in range(5):print(i)
  • range(start, stop[, step])

3.3 同时获取索引:enumerate()

for index, value in enumerate(["a", "b", "c"]):print(index, value)

3.4 遍历字典:items()keys()values()

data = {'a': 1, 'b': 2}
for k, v in data.items():print(k, v)

四、循环控制语句(3.4)

4.1 break:提前跳出循环

示例:

while True:cmd = input("请输入:")if cmd == "exit":break

4.2 continue:跳过本次循环

示例:

for i in range(5):if i == 2:continueprint(i)

4.3 pass:空语句,占位符

示例:

if True:pass  # 什么都不做

五、复杂条件与运算符(3.5)

5.1 逻辑运算符

运算符含义示例
andx > 1 and x < 5
orx < 1 or x > 5
notnot x == 3

5.2 成员运算符

  • in / not in

'a' in 'cat'        # True
5 in [1, 2, 5]      # True

5.3 身份运算符

  • is / is not

a = [1, 2]
b = a
a is b              # True
a is not b          # False

⚠️ is 判断的是内存地址(对象身份),不是值是否相等。

5.4 条件表达式(Ternary Operator)

结果 = A if 条件 else B

示例:

msg = "成年" if age >= 18 else "未成年"

六、Python 条件与循环中的高级用法扩展

6.1 推导式结合条件语句

  • 列表推导式

squares = [x**2 for x in range(10) if x % 2 == 0]
  • 字典推导式

data = {k: v for k, v in dict.items() if v > 10}

6.2 any()all() 函数

  • any(iterable):只要有一个为 True 就返回 True

  • all(iterable):全部为 True 才返回 True

示例:

nums = [1, 2, 3]
any(x > 2 for x in nums)    # True
all(x > 0 for x in nums)    # True

6.3 嵌套循环 + 控制语句综合应用

for i in range(3):for j in range(3):if i == j:continueprint(i, j)

七、典型面试题 & 实战练习

❓ 判断一个数是否为素数

n = int(input("请输入一个整数:"))
if n < 2:print("不是素数")
else:for i in range(2, int(n**0.5)+1):if n % i == 0:print("不是素数")breakelse:print("是素数")

❓ 输出九九乘法表

for i in range(1, 10):for j in range(1, i + 1):print(f"{j}*{i}={i*j}", end='\t')print()

八、最佳实践建议与常见错误

场景错误示例正确方式
判断空列表if list == []:if not list:
多重条件多个 if 嵌套使用 elifmatch-case
使用 is 判断字符串if a is b:if a == b:
无限循环while True: 忘记退出配合 break 或条件变量

九、小结回顾

主题关键点
条件判断if/elif/else、结构匹配
循环控制for/whilebreak/continue/pass
高级技巧推导式、any/all、嵌套控制
运算符逻辑运算、成员、身份、优先级

http://www.lryc.cn/news/600126.html

相关文章:

  • 【Agent】API Reference Manual(API 参考手册)
  • 【Spring AI详解】开启Java生态的智能应用开发新时代(附不同功能的Spring AI实战项目)
  • 手写A2C(FrozenLake环境)
  • 牛客刷题记录01
  • 【C++】二叉搜索数
  • 流式接口,断点续传解决方案及实现
  • QKV 为什么是三个矩阵?注意力为何要除以 √d?多头注意力到底有啥用?
  • 【PyTorch】图像多分类项目
  • jwt 在net9.0中做身份认证
  • qt框架,使用webEngine如何调试前端
  • 开发笔记 | 优化对话管理器脚本与对话语音的实现
  • 13.使用C连接mysql
  • Jenkins中出现pytest: error: unrecognized arguments: --alluredir=report错误解决办法
  • 栈----1.有效的括号
  • 机器学习 KNN 算法,鸢尾花案例
  • 从Taro的Dialog.open出发,学习远程控制组件之【事件驱动】
  • C++ 多线程同步机制详解:互斥锁、条件变量与原子操作
  • Python Multiprocessing 进程池完全教程:从理论到实战
  • 数据结构(3)单链表
  • [尚庭公寓]14-找房模块
  • Canal 1.1.7的安装
  • 习题5.6 “数学黑洞“
  • PHP插件开发中的一个错误:JSON直接输出导致网站首页异常
  • 纸板留声机:用ESP32和NFC打造会唱歌的复古装置
  • 手语式映射:Kinova Gen3 力控机械臂自适应控制的研究与应用
  • 秒收蜘蛛池解析机制的原理
  • PPIO上线阿里旗舰推理模型Qwen3-235B-A22B-Thinking-2507
  • ATR2652SGNSS全频段低噪声放大器
  • PostgreSQL对象权限管理
  • GPU 驱动安装升级测试