python程序设计第五章函数设计与应用 题库及选解

由于学校的python是笔试,所以找了份感觉比较好的题库刷了下其中前八章的填空和判断,附上选解。各章链接如下

python程序设计题库完整版
https://blog.csdn.net/lijia111111/article/details/80763095
python程序设计第一章基础知识 题库及选解
https://blog.csdn.net/zimuzi2019/article/details/106963005
python程序设计第二章序列类型 题库及选解https://blog.csdn.net/zimuzi2019/article/details/106962735
python程序设计第三章选择与循环 题库及选解https://blog.csdn.net/zimuzi2019/article/details/106968152
python程序设计第四章字符串 题库及选解https://blog.csdn.net/zimuzi2019/article/details/106967507
python程序设计第五章函数设计与应用 题库及选解https://blog.csdn.net/zimuzi2019/article/details/106968597
python程序设计第六章面向对象程序设计 题库https://blog.csdn.net/zimuzi2019/article/details/106974412
python程序设计第七章文件操作 题库https://blog.csdn.net/zimuzi2019/article/details/106974419
python程序设计第八章异常 题库
https://blog.csdn.net/zimuzi2019/article/details/106974425

填空

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。(对)

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表达式定义有名字的函数。(错)

猜你喜欢

转载自blog.csdn.net/zimuzi2019/article/details/106968597