目录
1.递归
- 啥是递归
- 相当于函数调用自身
- 对栈操作频繁,很消耗时间、空间
- 注意:
- 很危险:如果忘记返回,将会报错
- 怎么调用自身,且有正确返回?
def factorial(n)
if n == 1:
return 1
else:
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 -1
if n ==1 or n == 2:
return 1
else:
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
- IndexError
- KeyError
- MemoryError
- NameError
- UnboundLocalError
- OSError
- BlockingIOError
- ChildProcessError
- ConnectionError
- BrokenPipeError
- ConnectionAbortedError
- ConnectionRefusedError
- ConnectionResetError
- FileExistsError
-
- FileNotFoundError
- InterruptedError
- IsADirectoryError
- NotADirectoryError
- PermissionError
- ProcessLookupError
- TimeoutError
- ReferenceError
- RuntimeError
- NotImplementedError
- SyntaxError
- IndentationError
- TabError
- IndentationError
- SystemError
- TypeError
- ValueError
- UnicodeError
- UnicodeDecodeError
- UnicodeEncodeError
- UnicodeTranslateError
- UnicodeError
- Warning
- DeprecationWarning
- PendingDeprecationWarning
- RuntimeWarning
- SyntaxWarning
- UserWarning
- FutureWarning
- ImportWarning
- UnicodeWarning
- BytesWarning
- ResourceWarning
#### 异常检测与处理
-
try-except语句
- 检测到异常后,不会运行接下来的程序了
- 检测到异常后,不会运行接下来的程序了
-
try-finally语句
- raise语句
- 自己引发异常
- raise testerror(‘此为异常解释内容’)
-