《Python语言程序设计》王恺 王志 机械工业出版社 第三章 函数 课后习题答案
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 = x
x = y
y = 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=100
global y
y=200
def inner():
nonlocal x
x=1000
y=2000
print('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 = 100
def inner(z):
return x * y + z
return 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 n
else:
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语言程序设计》王恺 王志 机械工业出版社 第三章 函数 课后习题答案相关推荐
- 《Python语言程序设计》王恺 王志 机械工业出版社 第四章 面向对象 课后习题答案
4.5 课后习题 (1)类和对象的关系即数据类型与变量的关系,类规定了可以用于存储什么数据,而对象用于实际存储数据,每个对象可存储不同的数据 (2)类中包含属性和方法.属性对应一个类可用来保存哪些数据 ...
- 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第3章 函数 课后习题答案【强烈推荐】
点个
- 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第4章 面向对象 课后习题答案【强烈推荐】
点个
- 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第6章 字符串 课后习题答案【强烈推荐】
点个
- C语言程序设计第五版谭浩强著 第五章部分课后习题答案
#include<stdio.h> main() {int x,y,m,n,u,p;scanf("%d%d",&x,&y);m=x;n=y;while( ...
- C语言程序设计第五版谭浩强著 第七章部分课后习题答案
#include<stdio.h> int gcd(int x,int y) {int z;for(;;){z=x%y;x=y;y=z;if(y==0)break;}return x; } ...
- 《Python语言程序设计》王恺 机械工业出版社 第三章课后习题答案
第三章 函数 3.7 课后习题 (1)在Python语言中,使用函数分为两个步骤:定义函数和调用函数 (2)在Python语言中,函数定义需要使用def关键字 (3)形参是在定义函数时函数后面 ...
- 《Python语言程序设计》王恺 王志 机械工业出版社 第五章 序列、集合和字典 课后习题答案
5.8 课后习题 (1)Python 中,通过列表中的 index 方法可以根据指定值查找第一个匹配的列表元素 的位置. (2)Python 中,通过列表中的 insert 方法可以将一个元素插入到列 ...
- 《Python语言程序设计》王恺 王志 机械工业出版社 第七章 I/O编程与异常 课后习题答案
7.7 课后习题 (1)利用 os 模块查看当前系统的名字,应当使用 os.name . (2)利用 os 模块获取当前系统平台路径的分隔符,应当使用 os.sep . (3) 利用 os 模块获取当 ...
最新文章
- 实战域树部署,Active Directory系列之十九
- Ecplise中怎样进行全局搜索
- java itext 导出pdf文件_【Java,PDF】使用Itext实现PDF文件生成
- 浅谈 UNIX、Linux、ios、android 他们之间的关系
- python局部静态变量_全局变量、局部变量和静态变量
- org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyR
- Android系统信息获取 之十:移动网络相关信息获取
- [Project Euler]Problem 1:Multiples of 3 and 5
- CreatePipe、CreateProcess函数
- Ubuntu20.04更换阿里源教程
- 淘宝/天猫/京东/拼多多618抢购软件,抢购助手支持淘金币任务,附上源码
- 最全74HC04六反相器中文资料|引脚图及功能表|应用电路图
- php安全新闻早八点-Microdoor-第五季
- python预测股票价格_使用机器学习预测股票价格的愚蠢简便方法
- 2021 年 1 月程序员工资新出炉,你猜涨了多少?
- 【Thymeleaf】Thymeleaf中的判断语句
- 我的世界服务器光影文件夹,我的世界光影包放在哪个文件夹(光影包文档保存位置)...
- Win10显示dds及tga缩略图
- java实现redis工具类及其调用
- 计算机网络的硬件主要有,什么是计算机网络及主要功能有哪些?
热门文章
- 大数 组合数C(n,m)算法
- 【NLP基础中文处理】jieba分词初级的应用,以及统计《茅山后裔》的主要人物
- linux文本界面发邮件,柴少鹏的官方网站-linux发送邮件内容变成了tcmime.xxxx.xxxx.xxxx.bin的附件形式...
- js判断手指上滑和下滑
- Android 文件存储系统
- Excel的金额小写转大写的函数
- rmvb 文件格式解析
- python OSMNX路网处理 FMM GPS轨迹点绑路
- 菜鸟站长之家SEO工具大礼包多达上百个小工具
- nginx阻挡flv视频文件上传解决方案