第二模块:函数编程(学位课程):(第1章)函数装饰器迭代器内置方法
Posted foremostxl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二模块:函数编程(学位课程):(第1章)函数装饰器迭代器内置方法相关的知识,希望对你有一定的参考价值。
1、(单选题) 在函数定义时某个形参有值,我们称这个参数为()。
A位置参数
B关键字参数
C形参
D默认参数
D: 如果参数有值,我们称该参数为默认参数
关键参数,关键参数是实参,传参用的
正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可(指定了参数名的参数就叫关键参数),
但记住一个要求就是,关键参数必须放在位置参数(以位置顺序确定对应关系的参数)之后
2、请问python中的变量查找作用域的顺序是什么___?
答案为LEGB
LEGB 代表名字查找顺序: locals -> enclosing function -> globals -> __builtins__ locals 是函数内的名字空间,包括局部变量和形参 enclosing 外部嵌套函数的名字空间 globals 全局变量,函数定义所在模块的名字空间 builtins 内置模块的名字空间
3、递归的概念
如果一个函数在内部调用自身本身,这个函数就是递归函数。
递归函数 数据结构为 栈 ----先进后出
1必须有一个明确的结束条件
2每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,
每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,
所以,递归调用的次数过多,会导致栈溢出)
--------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4、请使用列表生成式将列表li = [1, 2, 3, 4, 5, 6, 7, 8, 9]中大于5的元素乘以2组成新的列表___。
li = [1, 2, 3, 4, 5, 6, 7, 8, 9] print([item*2 for item in li if item>5])
5、(单选题) 基于你对eval函数的了解,请从下面四个选项中选出你认为描述不正确的一项是():
A eval函数用来执行一个字符串表达式,并返回表达式的值
B eval函数可以实现字符串、列表和元组的相互转换
C eval函数可以指定表达式中的参数的作用域
D eval函数不可以把字典形式的字符串当作参数
---------------------------------------
A和B都是eval函数最基本的用法,C选项考察的是对eval函数中的参数的理解,globals和 locals都可以指定作用域,D选项是很明显的错误。
6、eval函数表达式参数作用域的理解
eval(expression[, globals[, locals]]) expression -- 表达式。 globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。 功能1:可以把list,tuple,dict和string相互转化。 功能2:执行字符串表达式 看例题: a = 10 b = 20 c = 30 g = {‘a‘: 6, ‘b‘: 8} t = {‘b‘:100, ‘c‘: 10} print(eval(‘a+b‘, g)) 这个有设定了全局变量g print(eval(‘a+b+c‘, g, t)) 这个设定了全局变量g 和局部变量l b,c从t中取
---------------------------------------------------------
本题考察对eval函数表达式参数作用域的理解,
第一个位置参数是字符串表达式source,
第二 个位置参数是全局作用域globals,
第三个位置参数是局部作用域locals,locals优先于globals,
第一 次打印没有指定locals,所以a和b的值都从globals中去,故结果为14;
第二次打印指定了locals,所以 对于b就要从locals中取值,故相加结果为116,所以选D。
------------------------------------------------------------------------------------------------------------------------------------------
7、Python callable() 函数
callable() 函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
----------------------------------------
https://blog.csdn.net/baidu_35085676/article/details/79782284
以上是关于第二模块:函数编程(学位课程):(第1章)函数装饰器迭代器内置方法的主要内容,如果未能解决你的问题,请参考以下文章