《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第3章 函数 课后习题答案【强烈推荐】

点个👍吧,秋梨膏!!!!!,建议收藏一波

第3章 函数

  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©
    ModifyListElement(c,1,6)
    print©
    答:运行结果为:
    3 5
    3 5
    [7, 8, 9]
    [7, 6, 9]

  13. 写出下面程序段的输出结果。
    def CircleInfo(radius, color=‘red’):
    print(‘半径:%d,颜色:%s’%(radius,color))
    CircleInfo(10)
    CircleInfo(20, color=‘green’)
    CircleInfo(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®:
    return 3.14rr
    def perimeter®:
    return 23.14r
    print(FunAdd(area,5))
    print(FunAdd(perimeter,5))
    请将其中的area函数和perimeter函数改写为lambda函数。请将改写后的程序填写完整。
    def FunAdd(f,x):
    return f(x)
    print(FunAdd(lambda r:3.14rr,5))
    print(FunAdd(lambda r:23.14r,5))

  28. 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。斐波那契数列前两项的值都为1,后面每一项的值等于其前两项的和,即:F(1)=F(2)=1,F(n)=F(n-1)+F(n-2)(n>2)。请编写递归函数fib(n),实现求斐波那契数列第n项的值。
    参考程序如下:
    def fib(n):
    if n== 1 or n==2:
    return 1
    return fib(n-1)+fib(n-2)

点个👍吧,秋梨膏!!!!!,建议收藏一波
在这里插入图片描述

  • 13
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

henu-于笨笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值