目录
1.递归
2.异常处理
1.递归
- 啥是递归
- 相当于函数调用自身
- 对栈操作频繁,很消耗时间、空间
- 注意:
- 怎么调用自身,且有正确返回?
def factorial(n)if n == 1:return 1else:return n * factorial(n - 1)以上是一个计算阶乘的例子
def factorial(n)
if n == 1:
return 1
else:
return n * factorial(n - 1)
以上是一个计算阶乘的例子
def fab(n):if n < 1:print("输入有误!")return -1if n ==1 or n == 2:return 1else:return fab(n--1) + fab(n-2)result = fab(12)
if result != -1:print(result)
如:汉诺塔解法
def hanoi(n, x, y, z)
if n == 1:print(x, '-->', z)
else:hanoi(n-1, x, z, y) # 将n-1个盘子从x移动到y上print(x, '-->', z) # 将最底下的最后一个盘子从x移动到z上hanoi(n-1, y, x, z) # 将y上的n-1个盘子移动到z上n = int(input("请输入汉诺塔层数:"))hanoi(n, 'X', 'Y', 'Z')
2.异常处理
python标准异常
表 python常见标准异常

异常层次结构
- BaseException
- SystemExit
- KeyboardInterrupt
- GeneratorExit
- Exception
- StopIteration
- ArithmeticError
- FloatingPointError
- OverflowError
- ZeroDivisionError
- AssertionError
- AttributeError
- BufferError
- EOFError
- ImportError
- LookupError
- MemoryError
- NameError
- OSError
- BlockingIOError
- ChildProcessError
- ConnectionError
- BrokenPipeError
- ConnectionAbortedError
- ConnectionRefusedError
- ConnectionResetError
- FileExistsError
-
- FileNotFoundError
- InterruptedError
- IsADirectoryError
- NotADirectoryError
- PermissionError
- ProcessLookupError
- TimeoutError
- ReferenceError
- RuntimeError
- SyntaxError
- SystemError
- TypeError
- ValueError
- UnicodeError
- UnicodeDecodeError
- UnicodeEncodeError
- UnicodeTranslateError
- Warning
- DeprecationWarning
- PendingDeprecationWarning
- RuntimeWarning
- SyntaxWarning
- UserWarning
- FutureWarning
- ImportWarning
- UnicodeWarning
- BytesWarning
- ResourceWarning
#### 异常检测与处理
-
try-except语句
- 检测到异常后,不会运行接下来的程序了

-
try-finally语句
-

- raise语句
- 自己引发异常
- raise testerror(‘此为异常解释内容’)
-