​​第三章   函数

3.7 课后习题

(1)在Python语言中,使用函数分为两个步骤:定义函数和调用函数

(2)在Python语言中,函数定义需要使用def关键字

(3)形参是在定义函数时函数后面的一对小括号中给出的参数列表

(4)实参是在调用函数时函数后面的一对小括号中给出的参数列表

(5)能够将一个函数的运算结果返回到调用函数的位置,以便可以继续用该运算结果参与其他运算,此时则应使用return语句

(6)使用import将整个模块导入,也可以使用from import将模块中的标识符直接导入当前环境

(7)可以适用 “ from 模块名 import * ”的方式导入一个模块中的所有标识符

(8)定义一个包,就是创建一个文件夹并在该文件夹下创建一个_init_.py文件,文件夹的名字就是包名

(9)猴子补丁是指在运行时动态替换已有的代码,而不需要修改原始代码

(10)下列说法中错误的是(B)

A.当调用函数时,如果没有为某些形参传递对应的实参,则这些形参会自动使用默认参数值

B.在使用关键字参数调用函数时,实参的传递顺序必须与形参列表中形参的顺序一致

C.当普通实参传递给形参后,如果在函数体中对形参值做修改,则该修改并不会影响实参,即实参值不会改变

D.如果实参是列表等对象,那么可在函数体中通过形参修改实例列表中对应元素的值

(11)下列关于拆分参数列表的说法正确的是(A)

A.列表、元组拆分出来的结果作为位置参数,字典拆分出来的结果作为关键字参数

B.列表、元组和字典拆分出来的结果都作为关键字参数

C.列表、元组和字典拆分出来的结果都作为位置参数

D.列表、元组拆分出来的结果作为关键字参数,而字典拆分出来的结果作为位置参数

(12)写出下面程序段的输出结果

def ModifyVal(x,y):z = xx = yy = z
def ModifyListElement(ls,idx,val):ls[idx] = val
a,b = 3,5
print(a,b)
ModifyVal(a,b)
print(a,b)
c = [7,8,9]
print(c)
ModifyListElement(c,1,6)
print(c)#输出结果
3 5
3 5
[7, 8, 9]
[7, 6, 9]

(13)写出下面程序段的输出结果

def Cir(radius,color = 'red'):print('半径:%d,颜色:%s'%(radius,color))
Cir(10)
Cir(20,color='green')
Cir(color='blue',radius=30)#输出结果
半径:10,颜色:red
半径:20,颜色:green
半径:30,颜色:blue

(14)函数sum的功能是求参数的和并返回,参数个数不限。请将程序填写完整

def Sum(*args):
    s=0
    for i in args:
        s += i
    return s
print(Sum(1,2,3,4,5))

(15)已知模块文件arithmetic.py的内容如下:

def plus(x,y):return x+y
def multi(x,y):return x*y编写程序,将模块导入,调用其中的函数,请将程序填写完整
使用import导入:
import arithmetic
print(arithmetic.plus(3,5))
print(arithmetic.multi(5,6))使用from import依次导入函数:
from arithmetic import plus,multi
print(plus(3,5))
print(multi(5,6))使用from import导入所有标识符:
from arithmetic import *
print(plus(3,5))
print(multi(5,6))

(16)按照作用域的不同,Python中的变量可以分为局部变量和全局变量

(17)在一个函数中使用global关键字,可以声明在该函数中使用的是全局变量,而非局部变量

(18)通过nonlocal关键字,可以使内层的函数直接使用外层函数中定义的变量

(19)递归函数是指在一个函数内部通过调用自己来求解一个问题

(20)lambda函数也称为匿名函数,是一种不适用def定义函数的形式,其作用是能快速定义一个简短的函数

(21)lambda函数的函数体只是一个表达式,所以lambda函数通常只能实现比较简单的功能

(22)如果内层函数使用了外层函数中定义的局部变量,并且外层函数的返回值是内层函数的引用,就构成了闭包

(23)下列说法中错误的是(D)

A.在一个函数中定义的变量就是局部变量

B.局部变量的作用域是从定义位置到函数结束位置

C.在所有函数外定义的变量就是全局变量

D.全局变量的作用域是从定义位置到程序结束位置

(24)下列关于修饰器的说法错误的是(C)

A.利用装饰器,可以在不修改已有代码的情况下向已有函数中注入代码,使其具备新的功能

B.一个装饰器可以为多个函数注入代码,一个函数也可以注入多个装饰器的代码

C.一个装饰器可以为多个函数注入代码,而一个函数只能注入一个装饰器的代码

D.装饰器实际上就是 一种闭包

(25)写出下面程序的输出结果

def outer():x=100global yy=200def inner():nonlocal xx=1000y=2000print('inner函数中的x,y值为',x,y)inner()print('outer函数中的x,y值为',x,y)
x=10
y=20
outer()
print("执行outer,inner函数之后x,y值为",x,y)#输出结果
inner函数中的x,y值为 1000 2000
outer函数中的x,y值为 1000 200
执行outer,inner函数之后x,y值为 10 200

(26)写出下面闭包程序的输出结果

def f(x):y = 100def inner(z):return x * y + zreturn inner
a10 = f(10)
a20 = f(20)
print(a10(29))
print(a20(29))#输出结果
1029
2029

(27)已知高阶函数的程序如下

def FunAdd(f,x):return f(x)
def area(r):return 3.14*r*r
def perimeter(r):return 2*3.14*r
print(FunAdd(area,5))
print(FunAdd(perimeter,5))请将其中的area函数和perimeter函数改写为lambda函数。请将改写后的程序填写完整def FunAdd(f,x):return f(x)
print(FunAdd(lambda r:3.14*r*r,5))
print(FunAdd(lambda r:2*3.14*r,5))

(28)请编写递归函数fib(n),实现斐波那契数列第n项的值

def fib(n):if n <= 1:return nelse:return (fib(n - 1) + fib(n - 2))num = int(input("输入想要输出的第几项:"))
if num < 0:print("输入正数")
elif num == 0:print("0")
else:print("斐波那契数列:")for i in range(num):print(fib(i+1))

码字不易,能否给个不要钱的,关注我,带你发现更多知识!

《Python语言程序设计》王恺 机械工业出版社 第三章课后习题答案相关推荐

  1. 《Python语言程序设计》王恺 机械工业出版社 第五章课后习题答案

    第五章 序列.集合和字典 5.8 课后习题 (1)Python 中,通过列表中的 index 方法可以根据指定值查找第一个匹配的列表元素 的位置. (2)Python 中,通过列表中的 insert ...

  2. 《Python语言程序设计》王恺 机械工业出版社 第四章课后习题答案

    第四章 面向对象 4.5 课后习题 (1)类和对象的关系即数据类型与变量的关系,类规定了可以用于存储什么数据,而对象用于实际存储数据,每个对象可存储不同的数据 (2)类中包含属性和方法.属性对应一个类 ...

  3. 《Python语言程序设计》王恺 机械工业出版社 第六章课后习题答案

    第六章 字符串 6.5 课后习题 (1)Python 中,创建字符串时,可以使用单引号.双引号和三引号 (2)Python 中,使用字符串的 split 方法可以按照指定的分隔符对字符串进行切割,返回 ...

  4. 《Python语言程序设计》王恺 机械工业出版社 第七章课后习题答案

    第七章 I/O编程与异常 7.7 课后习题 (1)利用 os 模块查看当前系统的名字,应当使用 os.name . (2)利用 os 模块获取当前系统平台路径的分隔符,应当使用 os.sep . (3 ...

  5. 《Python语言程序设计》王恺 王志 机械工业出版社 第三章 函数 课后习题答案

    3.7 课后习题 (1)在Python语言中,使用函数分为两个步骤:定义函数和调用函数 (2)在Python语言中,函数定义需要使用def关键字 (3)形参是在定义函数时函数后面的一对小括号中给出的参 ...

  6. 计算机科学导论+刘艺+pdf,计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc...

    计算机科学导论(机械工业出版社)刘艺 瞿高峰 习题答案.doc 以下答案为查阅多方资料做的,仅供参考. 第一章 绪论 1. 和计算机相关的问题. 2. 冯.诺依曼模型. 3. 第一点:尽管这个模型能够 ...

  7. 郑莉java课后答案,Java语言程序设计(郑莉)第三章课后习题答案

    <Java语言程序设计(郑莉)第三章课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计(郑莉)第三章课后习题答案(10页珍藏版)>请在人人文库网上搜索. 1. ...

  8. 《Python语言程序设计》王恺 机械工业出版社 第二章课后习题答案

    第二章 Python的基础语法 2.7 课后习题 (1)变量是指在程序运行讨程中值可以发生改变的量 (2)已知s="Python语言程序设计",则print(s[2:4])的输出结 ...

  9. C++语言程序设计第五版 - 郑莉(第九章课后习题)

    第9章  群体类和群体数据的组织 9-1 编写程序提示用户输入一个班级中的学生人数 n,再依次提示用户输入 n 个人在课程 A 中的考试成绩,然后计算出平均成绩,显示出来.请使用本书第 9 章中的数组 ...

最新文章

  1. 改革以来计算机应用发展总结,计算机应用专业课程改革总结.doc
  2. 电商那些年,我摸爬打滚出的高并发架构实战精髓(续)
  3. requireJS 从概念到实战
  4. 如果你是集五福的PM,你会如何设计这个产品?
  5. 摄影中的色温和白平衡及其二者关系的全面详解
  6. 对话RTP作者Ron Frederick: 我非常期待QUIC的发展
  7. 我看西电通院月考——学生应该做点什么?
  8. Django - Form和ModelForm
  9. 机器学习实战之K近邻算法
  10. Cloud一分钟 | 苹果更新“隐私页面”;中国联通大数据正式升级,进入数智新阶段...
  11. 鸽主姓名查询成绩_SQL学习之旅-Select简单查询
  12. fiddler注释_fiddler下载_fiddler中文版下载「抓包工具」-太平洋下载中心
  13. 使用RN开发App,引入图标失效问题的解决
  14. 浅谈JVM中如何自动回收内存
  15. Python.暴力破解rar密码
  16. 如何在命令提示符窗口下运行Win32控制台应用程序
  17. 用JS判断浏览器是否是IE9以下,处理可能遇到的兼容性问题,或者给出浏览器版本过低的升级提醒。
  18. Nginx(九):Nginx网页压缩技术
  19. 计算机中的睡眠和休眠
  20. 移动终端安全 顶级会议_顶级移动应用开发公司

热门文章

  1. 计算机辅助设计设计师理论知识试卷,《计算机辅助设计》考试试卷A
  2. 【ES】常用操作工具
  3. 解决win10双击.jar包无法运行
  4. 林业调查巡检数据采集解决方案
  5. pythondd_工程脚本插件方案 - c集成Python基础篇
  6. 基于移动GIS的环保生态管理系统
  7. amlogic红外遥控器适配
  8. 睡觉的诀窍!!你有了解过吗?
  9. Android常用的第三方组件
  10. N78终于入手 SHOW下新功能