《Python语言程序设计》刘卫国主编,中国工信出版集团,电子工业出版社

一、选择题

1.下列选项中不属于函数优点的是(   D  )。

A.减少代码重复

B.使程序模块化

C.使程序便于阅读

D.便于发挥程序员的创造力

函数能提高代码的模块性和代码的重复率,便于阅读

2.关于函数的说法中正确的是(  B    )。

A.函数定义时必须有形参

B.函数中定义的变量只在该函数体中起作用

C.函数定义时必须带return语句

D.实参与形参的个数可以不相同,类型可以任意

A:函数定义时可以没有参数,并且python还允许函数体为空函数 def 函数名();

B:在一个函数体内或语句块内定义的变量称为局部变量,局部变量只在定义它的函数体和语句块中有效。

C:不带参数的trun语句或函数体内没有retrun语句,函数返回为空。

D:函数实参和形参的关系(实参与形参的个数可以不相同,类型可以任意?)_爱康代码的博客-CSDN博客

3.以下关于函数说法正确的是(   D   )。

A.函数的实际参数和形式参数必须同名

B.函数的形式参数既可以是变量也可以是常量

C.函数的实际参数不可以是表达式

D.函数的实际参数可以是其他函数的调用

A:实际参数和形式参数定义名可以不相同

B:形参是函数定义时小括号内的变量,不可以是常量。

C:实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。

D:同C题原理。

4.关于装饰器,下列说法中错误的是(   D   )。

A.装饰器是用来包装函数的函数

B.装饰器有利于实现代码的复用

C.装饰器中一定要返回一个函数对象

D.一个函数只能用一个装饰器修饰

 python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能,提高代码复用率。python有多重装饰器,故D错误。

5.调用装饰器的格式是(   B   )

A.#装饰器名        B.@装饰器名       C.$装饰器名     D.%装饰器名

定义好装饰器后,就可以通过@来调用,把@语句放在函数定义之前。

6.有以下两个程序。

程序一:

x=[1,2,3]
def f(x):
    x=x+[4]
f(x)
print(x)
程序二:

x=[1,2,3]
def f(x):
    x+=[4]
f(x)
print(x)
下列说法正确的是(   A   )。

A.两个程序均能正确运行,但结果不同

B.两个程序的运行结果相同

C.程序一能正确运行,程序二不能

D.程序一不能正确运行,程序二能

对于可变对象,a += 1 直接在原内存地址上操作a = a + 1开辟新的内存操作

对于不可变对象,a += 1a = a + 1都是在新开辟的空间操作

此题为列表,为可变对象,所以第一个程序,是分配了个新地址给新的x,然后把x+[4]给新的x,但是原来地址中的值没有改变

第一个程序结果[1,2,3],第二个程序结果[1,2,3,4]

7.已知f=lambda x,y:x+y,则f([4],[1,2,3])的值是(  C    )。

A.[1, 2, 3, 4]        B.10       C.[4, 1, 2, 3]     D.{1, 2, 3, 4}.

匿名函数,也称lambda函数,冒号前为函数参数,可以有多个函数参数,但只有一个返回值,所以只有一个表达式,返回值就是该表达式的结果。[4]+[1,2,3]=[4,1,2,3]

8.下列程序的运行结果是(   D   )。

f=[lambda x=1:x*2,lambda x:x**2]
print(f[1](f[0](3)))
  A.1                B.6              C.9           D.36

可以将匿名函数作为字典或者序列的元素,本题是将匿名函数作为列表的元素,这时可以以序列或者字典元素引用作为函数名来调用匿名函数。所以f[0]调用lambda x=1:x*2,f[1]调用lambda x:x**2,最后结果为36(x**2表示x的平方)

9.下列程序的运行结果是(   B   )。

def f(x=2,y=0):
    return x-y
y=f(y=f(),x=5)
print(y)
A.-3           B.3         C.2          D.5

def f(x=2,y=0):为默认值参数,如果不提供参数值,则取默认值。y=f()值为2。

y=f(y=f(),x=5)这种方式为关键字传参(形参名=实参值),这种方式可以摆脱参数的顺序。

10.output.py文件和test.py文件内容如下,且output.py和test.py位于同一文件夹中,那么运行test.py的输出结果是(   A   )。

#output.py
def show():
    print(__name__)
#test.py
import output
if __name__=='__main__':
    output.show()
A.output           B.__name__         C.test          D.__main__

 _ _name_ _是一个全局变量,在模块内部用来标识模块名称的。如果模块是被其他模块导入的,_ _name_ _的值是模块的名称,主动执行时他的值就是_ _mian_ _。

import output 执行后 __name__的值为output,不会执行test中if语句中的内容,而是直接输出__name__的值。

填空题:

1.函数首部以关键字 def 开始,最后以 冒号结束。

def f():

2.函数执行语句“return [1,2,3],4”后,返回值是 ([1, 2, 3], 4) ;没有return语句的函数将返回 None   。
3.使用关键字  global   可以在一个函数中设置一个全局变量。

在函数体中,如果要成为函数体外的全局变量重新赋值,可以使用global语句,表明变量是全局变量

4.下列程序的输出结果是

def deco(func):print('before f1')return func
@deco
def f1():print('f1')
f1()
f1=deco(f1)

before f1 调用被装饰器修饰的f1函数,f1此时有deco装饰器的功能

f1

before f1 调用deco函数

本题考点为装饰器,装饰器可以理解为简单的函数。

5. 下列程序的输出结果是4 0。

counter=1
num=0
def TestVariable():global counterfor i in (1,2,3):counter+=1num=10
TestVariable()
print(counter,num)

函数体中的counter由于被global修饰,所以为全局变量,初始值为1,经过三次循环等于4。而函数体中的num为局部变量,只在函数体中有效。

6.设有f=lambda x,y:{x:y},则f(5,10)的值是   {5: 10}     。

匿名函数,:前为参数,:后为返回值(输出内容)

7.Python包含了数量众多的模块,通过 import   语句,可以导入模块,并使用其定义的功能。

8.设Python中有模块m,如果希望同时导入m中的所有成员,则可以采用    from m import *    的导入形式。

9.Python中每个模块都有一个名称,通过特殊变量__name__可以获取模块的名称。特别地,当一个模块被用户单独运行时,模块名称为__main__。

10.建立模块a.py,模块内容如下。

def B():print('BBB')
def A():print('AAA')

为了调用模块中的A()函数,应先使用语句from a import A

《Python语言程序设计》刘卫国主编函数与模块习题8详解(选择+填空)相关推荐

  1. ##Python语言程序设计 刘卫国主编 课后实验

    a=2 b=1234 c=a+int(b)%10 print(a,'\t',b,'\t',c)import math dir(math) help(math)x=12 y=x id(x),id(y)a ...

  2. python语言程序设计刘卫国答案_Python语言程序设计

    章Python语言基础1 1.1Python语言概述1 1.1.1Python语言的发展历史1 1.1.2Python语言的特点2 1.1.3Python语言的应用领域3 1.2Python语言的开发 ...

  3. 编程题50 习题6-8 单词首字母大写【浙大版《C语言程序设计(第4版)》题目集 详解教程】

    编程题50 习题6-8 单词首字母大写[浙大版<C语言程序设计(第4版)>题目集 详解教程] 原题链接:习题6-8 单词首字母大写 (pintia.cn) 参考答案 #include< ...

  4. python语言程序设计梁勇-Python语言程序设计(美-梁勇)第1章习题解答

    Python语言程序设计(美-梁勇)第1章计算机.程序和Python概述习题解答 第一章 计算机.程序和python概述 1.1什么是硬件?什么是软件? 答:硬件包括计算机上能看到的物理元素,而软件提 ...

  5. 合法的python变量名import_python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 imp ...

  6. Python 语言程序设计(5-1)函数的定义与使用

    本单元的内容 函数的定义    函数定义的一般代码 def <函数名> (<参数(0个或者多个)>): <函数体> return <返回值> 函数 函数 ...

  7. c语言库里的排序函数,C语言标准库函数qsort详解

    1 函数简介 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(con ...

  8. python中select用法_Python select及selectors模块概念用法详解

    1. select模块 针对select,要先理解其他几个概念: 文件描述符: 文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表.当程序打开 ...

  9. python中sn的意思_Python中random模块生成随机数详解

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

最新文章

  1. 关于二叉树的链表表示的一个问题
  2. python模块之collections模块
  3. 《现代语音信号处理》(胡航著)第1-6章简介
  4. Sqlite SQL格式化输入函数splite3_mprintf
  5. 37岁程序员被裁员,面试华为阿里被拒,无奈降薪去小公司,结局出乎意料!
  6. 回调函数 相当于线程_C++屌屌的观察者模式-同步回调和异步回调
  7. Linux——vi编辑器及文件内容操作
  8. 阿里云服务器ubuntu 16.04 安装mysql
  9. 2019年全套web前端视频教程链接分享
  10. 根域名服务器性能,根服务器和根域名服务器的区别
  11. 论文写作-如何提高英语论文写作水平
  12. 多个excel文件不在一个视图里分开独立显示
  13. 国开电大-公司财务-形考任务1-5
  14. 职校高一计算机课高一,职高高一数学课件
  15. MTd与MDd的区别
  16. 赫兹是如何发现电磁波从而证明了麦克斯韦方程的?
  17. uni-app多平台融合【入门】(标贝科技)
  18. 使用IDM下载GOOGLE CLOUD上的大文件
  19. 浅谈面试中的乐观锁与悲观锁
  20. 通用人工智能:涌现能力、代理执行、功能可见、具身应用——人与机器的共同进化

热门文章

  1. Java银行排号系统
  2. ATFX:远期售汇存款保证金上调20%,人民银行稳汇率意图明显
  3. API(1)——打印系统开发(32)——Windows API函数大全(精心总结)
  4. 【Electron】 Electron 开发桌面应用(一) 编写→运行→打包
  5. 天谕手游服务器今日可创建账号数已达上限,天谕堪称网易2020头号手游?内测人数爆满,玩家直呼爷青回...
  6. 【R语言】——pheatmap包绘制聚类热图1(保姆级教程)
  7. [完全免费] 在线UML Sequence Diagram 时序图工具 - 教程第3部分
  8. 五个了解自己天赋优势的分析工具(五)PDP性格测试
  9. 【180629】C++版智商超高的中国象棋游戏源码
  10. 网吧服务器回写盘用什么型号,网吧服务器回写盘的配置