Python 条件分支与循环详解--python004
Python 条件分支与循环详解
涵盖
if
条件判断、while
和for
循环、控制语句(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 逻辑运算符
运算符 | 含义 | 示例 |
---|---|---|
and | 且 | x > 1 and x < 5 |
or | 或 | x < 1 or x > 5 |
not | 非 | not 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 就返回 Trueall(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 嵌套 | 使用 elif 或 match-case |
使用 is 判断字符串 | if a is b: | if a == b: |
无限循环 | while True: 忘记退出 | 配合 break 或条件变量 |
九、小结回顾
主题 | 关键点 |
---|---|
条件判断 | if/elif/else 、结构匹配 |
循环控制 | for /while 、break/continue/pass |
高级技巧 | 推导式、any/all 、嵌套控制 |
运算符 | 逻辑运算、成员、身份、优先级 |