Python 条件判断与递归:编程核心逻辑|从分支到递归
⚡ 学会 if / else / 递归,你的代码真正拥有“判断能力”
5. 条件语句与递归
本章核心内容:
5.1 整数除法与取模运算
# 普通除法(浮点数)minutes = 105print(minutes / 60)
结果:
1.75
# 整数除法(向下取整)hours = minutes // 60print(hours)
结果:
1
# 取模运算(求余数)remainder = minutes % 60print(remainder)
结果:
45
取模 % 常用场景
5.2 布尔表达式
布尔表达式结果只有:True / False
# 等于判断 ==print(5 == 5)print(5 == 7)
结果:
TrueFalse
# 关系运算符x = 5y = 7print(x != y) # 不等于print(x > y) # 大于print(x < y) # 小于print(x >= y) # 大于等于print(x <= y) # 小于等于
结果:
TrueFalseTrueFalseTrue
注意:
5.3 逻辑运算符
x = 5print(x > 0and x < 10)print(x % 2 == 0or x % 3 == 0)print(not x > y)
结果:
TrueFalseTrue
5.4 if 语句
根据条件选择执行代码。
x = 3if x > 0:print('x is positive')
结果:
x is positive
空语句占位:pass
if x < 0:pass# 待处理负数情况
5.5 else 分支
二选一执行。
x = 5if x % 2 == 0:print('x is even')else:print('x is odd')
结果:
x is odd
5.6 多分支条件 elif
elif = else if
x = 3y = 5if x < y:print('x is less than y')elif x > y:print('x is greater than y')else:print('x and y are equal')
结果:
x is less than y
5.7 嵌套条件
可以嵌套,但尽量少用,用逻辑运算符简化。
# 嵌套写法(不推荐)if0 < x:if x < 10:print('x is a positive single-digit number.')# 简化写法(推荐)if0 < x < 10:print('x is a positive single-digit number.')
结果:
x is a positive single-digit number.
5.8 递归(函数调用自己)
递归是编程最强大的思想之一。
示例1:倒计时
defcountdown(n):# 基线条件:停止递归if n <= 0:print('Blastoff!')else:print(n)# 递归调用自己 countdown(n - 1)countdown(3)
结果:
321Blastoff!
示例2:重复打印
defprint_n_times(string, n):if n > 0:print(string) print_n_times(string, n - 1)print_n_times('Spam ', 4)
结果:
Spam Spam Spam Spam
5.9 递归栈图
以 countdown(3) 为例:
countdown(n=3) countdown(n=2) countdown(n=1) countdown(n=0) → 基线条件,停止
5.10 无限递归
没有基线条件 → 栈溢出报错。
defrecurse(): recurse()recurse()
结果:
RecursionError: maximum recursion depth exceeded
5.11 用户输入 input
暂停程序,等待用户输入。
# 带提示输入name = input('What is your name?\n')print(name)
# 输入数字(需转换)speed = int(input('Enter a number: '))print(speed)
5.12 调试技巧
5.13 术语表
5.14 练习
- 用
time 模块计算从1970年到现在的天/时/分/秒 - 写
is_triangle(a,b,c) 判断三边能否构成三角形