python学习第十四天

一.递归函数

1)递归函数

自己调用自己的函数

递:去

归:回

一去一回叫做递归

递归函数有回的过程,有两种情况可以触发:

1.当最后一层函数全部执行结束的时候,有触底反弹的过程(回马枪),回到上层函数空间的调用处

2.遇到return返回值,直接返回上层空间的调用处

递归函数在运行的时候,需要内存开辟空间才可以,这个空间叫做栈帧空间

1.去的过程就是不停的开辟栈帧空间,在回的时候,就是不停的释放栈帧空间

2.写递归函数的时候,必须给予跳出的条件,如果递归的层数过多,不推荐使用,容易产生内存溢出或者蓝屏

3.递归调用每一层空间都是独立的个体,独立的副本,资源不共享,可以通过return来完成值的共享

2)尾递归

自己调用自己,并且非表达式,把值放到参数中运算 (推荐使用)

好处:无论调用多少次函数,都只占用一份空间,只需考虑最后一层空间的结果是多少,就不用额外考虑回的过程了

cpython解释器目前不支持尾递归

二.数学模块

import math

1.ceil() 向上取整操作

2.floor() 向下取整操作

3.pow() 计算一个数值的N次方(结果为浮点数)(对比内置pow)

4.sqrt() 开平方运算(结果为浮点数)

5.fabs() 计算一个数的绝对值(结果为浮点数)(对比内置abs)

6.modf() 将一个数值拆分为整数和小数两部分组成元组

7.copysign() 将参数第二个数值的正负号拷贝给第一个(返回一个小数)

8.fsum() 将一个容器类型中的数据进行求和运算(结果为浮点数)(对比内置sum)

9.圆周率常数pi

三.随机模块

import random

1.random() 获取随机0~1之间的小数(左闭右开)

2.randrange() 随机获取指定范围内的整数(包含开始值,不包含结束值,间隔值) 同range

3.randint() 随机产生指定范围内的随机整数(可以取到最大值)(了解)

4.uniform() 获取指定范围内的随机小数(左闭右开)

5.choice() 随机获取序列中的值(多选一)

6.sample() 随机获取序列中的值(多选多)[返回列表]

7.shuffle() 随机打乱序列中的值(直接打乱原序列)

相关推荐