命名空间,递归函数

命名空间

·实际命名空间就是一个字典,专门用来储存变量的字典
·local() 用来获取当前作用域的命名空间
·返货的是一个字典
·向scope中添加一个KeyValue(就相当于在全局中创建一个变量)
·globals()#这个函数可以在任意位置获取全局的命名空间

递归函数

·尝试求10的阶乘
1! = 1
2! = 1 * 2= 2
3! = 1 * 2 * 3= 6

在这里插入图片描述
·如图是十的阶乘
·#下面定义一个函数来实现任意数的阶乘
在这里插入图片描述
·递归函数
。从前有座山山里有座庙…
。递归简单理解就是自己去引用自己
。递归函数就是在函数中调用自己
。无穷递归类似于我们死循环
·整体思想将一个大问题分解为一个一个的小问题,直到问题无法分解时在去解决问题
·递归函数的两个条件
。基线条件,问题可以分解为最小的问题,当满足基线条件时递归就不再执行了
。将问题继续分解的条件

小练习

·定义一个函数来为任意数字做任意幂运算
在这里插入图片描述

练习2

·定义一个函数 用来检查一个任意字符串是否是回文字符串 如果是就返回turn 否返回false
·回文字符串从前往后和重后往前念是一样 例如aba abcba
·找基线条件和递归条件
·abcdefgfedcba
·先检查第一个字符和最后一个字符是否一致,如果不一致一定不是回文,如果一致。看其余部分是否为回文字符串
·检查bcdefgfedcb 是不是回文字符串
·检查cdefgfedc 是不是回文字符串
·检查defgfed 是不是回文字符串
在这里插入图片描述