python程序设计第五章函数设计与应⽤题库及选解由于学校的python是笔试,所以了份感觉⽐较好的题库刷了下其中前⼋章的填空和判断,附上选解。各章链接如下填空
1、 Python中定义函数的关键字是() (def)
2、 在函数内部可以通过关键字()来定义全局变量。
global
3、 如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为
None
4、 表达式 sum(range(10)) 的值为() (45)
5、 表达式 sum(range(1, 10, 2)) 的值为() (25)
6、 表达式 list(filter(None, [0,1,2,3,0,0])) 的值为
[1,2,3]
7、 表达式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值为
[3]
8、 表达式 list(range(50, 60, 3)) 的值为() ([50, 53, 56, 59])
9、 表达式 list(filter(lambda x: x%2==0, range(10))) 的值为
[0,2,4,6,8]
10、 表达式 list(filter(lambda x: len(x)>3, [‘a’, ‘b’, ‘abcd’])) 的值为() ([‘abcd’])
11、 已知 g = lambda x, y=3, z=5: x * y * z,则语句 print(g(1)) 的输出结果为
15
12、 表达式 list(map(lambda x: len(x), [‘a’, ‘bb’, ‘ccc’])) 的值为() ([1, 2, 3])
13、 已知 f = lambda x: x+5,那么表达式 f(3) 的值为() (8)
14、 表达式 sorted([‘abc’, ‘acd’, ‘ade’], key=lambda x:(x[0],x[2])) 的值为
['abc','acd','ade']
15、 已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, ‘+’)的值为
8
16、 已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, ‘*’)的值为() (15)
17、 已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, ‘-’)的值为() (-2)
18、 已知f = lambda n: len(bin(n)[bin(n).rfind(‘1’)+1:]),那么表达式f(6)的值为
1
19、 已知f = lambda n: len(bin(n)[bin(n).rfind(‘1’)+1:]),那么表达式f(7)的值为() (0)
20、 已知 g = lambda x, y=3, z=5: x+y+z,那么表达式 g(2) 的值为() (10)
21、 已知函数定义 def func(*p):return sum§,那么表达式 func(1,2,3) 的值为
6
22、 已知函数定义 def func(*p):return sum§,那么表达式 func(1,2,3, 4) 的值为 () (10)
23、 已知函数定义 def func(**p):return sum(p.values()),那么表达式 func(x=1, y=2, z=3) 的值为
6
注意函数定义时*p和**p的区别。前者表⽰可变长度参数,可以接收任意多个普通实参并存放于⼀个元组之中。后者表⽰可变长度参数,可以接收任意多个关键参数并将其存放于⼀个字典之中。
24、 已知函数定义 def func(**p):return ‘’.join(sorted§),那么表达式 func(x=1, y=2, z=3)的值为
'xyz'
**p将参数解析为⼀个字典,sorted依据字典的键进⾏排序形成⼀个新字典。
25、 已知 f = lambda x: 5,那么表达式 f(3)的值为
5
判断
1、 调⽤函数时,在实参前⾯加⼀个型号*表⽰序列解包。(对)
2、 在Python 3.x中语句 print(*[1,2,3]) 不能正确执⾏。(错)
3、 函数是代码复⽤的⼀种⽅式。(对)
4、 定义函数时,即使该函数不需要接收任何参数,也必须保留⼀对空的圆括号来表⽰这是⼀个函数。(对)
5、 编写函数时,⼀般建议先对参数进⾏合法性检查,然后再编写正常的功能代码。(对)
6、 ⼀个函数如果带有默认值参数,那么必须所有参数都设置默认值。(错)
7、 定义Python函数时必须指定函数返回值类型。(错)
8、 定义Python函数时,如果函数中没有return语句,则默认返回空值None。(对)
lambda编程9、 如果在函数中有语句 return 3,那么该函数⼀定会返回整数3。(错)
10、 函数中必须包含return语句。(错)
11、 函数中的return语句⼀定能够得到执⾏。(错)
12、 不同作⽤域中的同名变量之间互相不影响,也就是说,在不同的作⽤域内可以定义同名的变量。(对)
13、 全局变量会增加不同函数之间的隐式耦合度,从⽽降低代码可读性,因此应尽量避免过多使⽤全局变量。(对)
14、 函数内部定义的局部变量当函数调⽤结束后被⾃动删除。(对)
15、 在函数内部,既可以使⽤global来声明使⽤外部全局变量,也可以使⽤global直接定义全局变量。(对)
16、 在函数内部没有办法定义全局变量。(错)
17、 在函数内部直接修改形参的值并不影响外部实参的值。(对)
18、 在函数内部没有任何⽅法可以影响实参的值。(错)
19、 调⽤带有默认值参数的函数时,不能为默认值参数传递任何值,必须使⽤函数定义时设置的默认值。(错)
20、 在同⼀个作⽤域内,局部变量会隐藏同名的全局变量。(对)
21、 形参可以看做是函数内部的局部变量,函数运⾏结束之后形参就不可访问了。(对)
22、 假设已导⼊random标准库,那么表达式 max([random.randint(1, 10) for i in range(10)]) 的值⼀定是10。(错)
23、 Python标准库random的⽅法randint(m,n)⽤来⽣成⼀个[m,n]区间上的随机整数。(对)
24、 在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量⼀定是函数内部的局部变量。(对)
25、 在Python中定义函数时不需要声明函数参数的类型。(对)
26、 在Python中定义函数时不需要声明函数的返回值类型。(对)
27、 在函数中没有任何办法可以通过形参来影响实参的值。(错)
28、 已知 x = 3,那么执⾏语句 x+=6 之后,x的内存地址不变。(错)
29、 在定义函数时,某个参数名字前⾯带有⼀个*符号表⽰可变长度参数,可以接收任意多个普通实参并存放于⼀个元组之中。(对)
30、 在定义函数时,某个参数名字前⾯带有两个*符号表⽰可变长度参数,可以接收任意多个关键参数并将其存放于⼀个字典之中。(对)
31、 定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何⼀个带有默认值的参数右边不允许出现没有默认值的参数。(对)
32、 在调⽤函数时,可以通过关键参数的形式进⾏传值,从⽽避免必须记住函数形参顺序的⿇烦。(对)
33、 在调⽤函数时,必须牢记函数形参顺序才能正确传值。(错)
34、 调⽤函数时传递的实参个数必须与函数形参个数相等才⾏。(错)
35、 在编写函数时,建议⾸先对形参进⾏类型检查和数值范围检查之后再编写功能代码,或者使⽤异常处理结构,尽量避免代码抛出异常⽽导致程序崩溃。(对)
36、 lambda表达式中可以使⽤任意复杂的表达式,但是必须只编写⼀个表达式。(对)
37、 g = lambda x: 3不是⼀个合法的赋值表达式。(错)
38、 包含yield语句的函数⼀般成为⽣成器函数,可以⽤来创建⽣成器对象。(对)
39、 在函数中yield语句的作⽤和return完全⼀样。(错)
40、 语句pass仅起到占位符的作⽤,并不会做任何操作。(对)
41、 ⽆法使⽤lambda表达式定义有名字的函数。(错)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论