5. 条件 Conditionals
作业系统链接
Python 条件语句与代码风格学习笔记
一、if 语句
1. 基本用法
- 定义与流程:
if
语句用于基于条件做出决策。条件为True
时,执行相应的代码块。 - 示例:
def f(x):print("A", end="")if x == 0:print("B", end="")print("C", end="")print("D") f(1) # 输出 AD
2. 实现绝对值函数
-
多种实现方式:
- 使用单个
if
语句:def abs1(n):if n < 0:n = -nreturn n
- 一行实现(不推荐):
def abs2(n):if n < 0: n = -nreturn n
- 多个返回语句:
def abs3(n):if n < 0:return -nreturn n
- 使用布尔表达式(不推荐):
def abs4(n):return (n < 0)*(-n) + (n>=0)*(n)
- 使用单个
-
验证结果:
print("abs1(5) =", abs1(5), "and abs1(-5) =", abs1(-5)) print("abs2(5) =", abs2(5), "and abs2(-5) =", abs2(-5)) print("abs3(5) =", abs3(5), "and abs3(-5) =", abs3(-5)) print("abs4(5) =", abs4(5), "and abs4(-5) =", abs4(-5))
二、if-else 语句
- 基本用法:
if
条件不满足时,执行else
代码块。 - 示例:
def f(x):print("A", end="")if x == 0:print("B", end="")print("C", end="")else:print("D", end="")if x == 1:print("E", end="")else:print("F", end="")print("G")
三、if-elif-else 语句
- 基本用法:用于多个条件判断,满足一个条件后执行相应代码块,后续条件不再判断。
- 示例:
def f(x):print("A", end="")if x == 0:print("B", end="")print("C", end="")elif x == 1:print("D", end="")else:print("E", end="")if x == 2:print("F", end="")else:print("G", end="")print("H")
四、重新设计 abs() 函数
- 更清晰的方式:
def abs5(n):if n >= 0:return nelse:return -ndef abs6(n):if n >= 0:sign = +1else:sign = -1return sign * n
五、实际应用
-
一元二次方程根的个数:
def numberOfRoots(a, b, c):d = b**2 - 4*a*cif d > 0:return 2elif d == 0:return 1else:return 0
-
学生分数登记系统:
def getGrade(score):if score >= 90:grade = "A"elif score >= 80:grade = "B"elif score >= 70:grade = "C"elif score >= 60:grade = "D"else:grade = "F"return grade
六、if-else 推导式
-
一种更简洁的写法,用于单行条件表达式。
def abs7(n):return n if n >= 0 else -n
七、代码风格与清晰性
- 否定条件:尽量使用正逻辑(
if b:
而不是if not b:
),这通常使代码更易于理解。 - 空白的 if 部分:避免使用
pass
,除非确实需要保留某个if
结构的占位符。 - 嵌套与逻辑:使用
if
和and
结合,而不是嵌套if
。 - 避免冗余控制:不要在同一作用域内连续使用多个
if
来检查相同或相关的条件。
八、总结
if
、if-else
、if-elif-else
语句构成了 Python 的分支控制基础。- 合理的代码风格可以显著提升代码的可读性和可维护性。
- 尽可能避免使用过于复杂的布尔表达式和不必要的