Python函数补充

故事扮演 提交于 2020-02-10 16:55:59

Python函数补充

函数的嵌套调用

实例:

在这里插入图片描述
作用域

作用域指的是变量生效的区域,在Python中一共有两种作用域:
1、全局作用域:

  • 全局作用域在程序执行时创建,在程序执行结束时销毁
  • 所有函数以外的区域都是全局作用域
  • 在全局作用域中定义的变量,都属于全局变量,全局变量可以在程序的任意位置被访问

2.函数作用域

函数作用域在函数调用时创建,在调用结束时销毁

  • 函数每调用一次就会产生一个新的函数作用域
  • 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问

在这里插入图片描述
在这里插入图片描述
变量的查找

  • 当我们使用变量时,会优先在当前作用域中寻找该变量,如果有则使用,
  • 如果没有则继续去上一级作用域中寻找,如果有则使用,
  • 如果依然没有则继续去上一级作用域中寻找,以此类推
    直到找到全局作用域,依然没有找到,则会抛出异常
    NameError: name ‘a’ is not defined

实例:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
递归函数:
一个函数的内部可以调用其他函数。但是,如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。

在这里插入图片描述
在这里插入图片描述
练习
1、创建一个函数 power 来为任意数字做幂运算 n ** i

在这里插入图片描述
2.创建一个函数,用来检查一个任意的字符串是否是回文字符串,如果是返回True,否则返回False。
(回文字符串,字符串从前往后念和从后往前念是一样的)

在这里插入图片描述
匿名函数:

匿名函数就是没有名称的函数,也就是不再使用def语句定义的函数。如果要声明匿名函数,则需要使用lambda关键字,匿名函数的声明格式如下所示:

lambda [arg1 [,arg2,…argn]]:expression

在这里插入图片描述

注意:
使用Lambda声明的匿名函数能接收任何数量的参数,但只能返回一个表达式的值。匿名函数不能直接调用print,因为lambda需要一个表达式。

随机数函数:

random.random()用于生成一个0到1的随机浮点数,0<=n<=1.0

在这里插入图片描述
random.uniform(a,b)
返回a,b之间的随机浮点数,范围[a,b]或[a,b]取决于四舍五入,a不一定要比b小。

在这里插入图片描述

random.randint(a,b)
返回a,b之间的整数,范围[a,b],注意:传入参数必须是整数,a一定要比b小。

在这里插入图片描述
random.randrang([start], stop[, step])
返回有个区间内的整数,可以设置step。只能传入整数, random.randrange(10,100,2) ,结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数。

random.shuffle(x)
shuffle() 方法将序列的所有元素随机排序。俗称为洗牌。

在这里插入图片描述
random.sample(sequence,k)
从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列

在这里插入图片描述

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!