Python 第5章课后习题参考答案

简介: 第5章课后习题参考答案

第5章课后习题参考答案

一、单选题


关于函数描述错误的是______。(答案为D)

A. 有利于简化程序结构

B. 有利于提高代码的复用率,减少代码冗余

C. 有利于程序模块设计和多人分工协作

D. 有利于提高代码的执行速度

2.下列函数返回值的类型是______。(答案为C)

def func(x,y):

x=x+5

y=y+10

return x,y

A. int B. list C. tuple D. set

3.执行下列程序后,屏幕输出结果是______。(答案为A)

s=5

def f(x):

global s

s=s+x

return s

a=10

print(f(a))

A. 15 B. 5 C. 10 D. 程序报错

以下不是函数作用的选项是______。(答案为B)

A. 增强代码可读性 B. 提高代码执行速度

C. 降低编程复杂度 D. 复用相同功能代码

Python 语句 “f=lambda x,y:x*y;print(f(12,34))” 的运行结果是______。(答案为D)

A. 12 B. 34 C. 45 D. 408

关于 lambda 函数的描述中,错误的是______。(答案为A)

A. lambda不是Python的保留字

B. lambda函数也称为匿名函数

C. lambda函数不能包含return语句

D. lambda定义了一种特殊的函数

7. 可变参数**kw 收集关键字参数,并将这些参数存储到一个______中。(答案为C)

A. 列表 B. 元组 C. 字典 D. 数组

8. 以下选项中,对于递归程序的描述不正确的是________。(答案为C)

A. 书写简单 B. 递归程序都可以用非递归方法替代

C. 执行效率高 D. 一定要有终止条件

9. 以下选项中,对于函数定义错误的是_______。(答案为A)

A. def vfunc(*a,b) B. def vfunc(a,b)

C. def vfunc(a,*b) D. def vfunc(a,b=2)

10. 关于Python的全局变量和局部变量,以下选项中描述错误的是‬‬‬‬‬‬ _______。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬(答案为C)

A. 全局变量指函数之外定义的变量,一般没有缩进,在程序执行全过程有效

B. 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放

C. 局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用

D. 使用global保留字声明简单数据类型变量后,该变量作为全局变量使用


二、填空题

Python中定义函数的关键字是________。(def)

2. 在函数内部可以通过关键字_________来定义全局变量。(global)

3. 当函数的返回值不止一个时,默认的返回值是以_______类型出现。(元组)

3. 如果函数中没有return语句或者return语句不带任何返回值,则该函数的返回值为______。(None)

4. 函数返回时,传入的组合数据类型变量________(会/不会)被释放。(不会)

5. 已知f= lambda x:5,那么表达式f(3)的值为__________。(5)

6. 已知函数定义 def func(*p):return sum§,那么表达式func(1,2,3)的值为____________。(6)

以下是“闭包”的一个例子,请目测下一个print(a())会输出______?(10)

>>> def funX():
     x=5
     def funY():
        nonlocal x
        x+=1
        return x
     return funY
>>> a=funX()
>>> print(a())
>>> print(a())
>>> print(a())
>>> print(a())


三、设计题

1.设计一个函数,参数为整数,返回斐波那契数列的前n项之和。
参考答案:

def sum(n):
    a = 0
    b = 1
    sum = 0
    for i in range(n):
       sum += a
       a, b = b, a + b
    return sum
print("The sum of FIB is", sum(8),"!")

2.设计一个函数,调用该函数能够打印一个由指定字符组成的n行金字塔。其中,指定打印的字符和行数n分别由两个形参表示。
参考答案:

def jzt(m,n):
    for i in range(1,n):
        print(' '*(20-(i-1)),m*(2*i-1))
a= int (input("输入打印行数:"))
b= str (input("要打印的字符:"))
jzt(b,a+1)

3.设计一个函数,计算传入字符串中数字、字母、空格以及其他类字符的个数。
参考答案:

def check(msg):
res = {'num': 0,'string': 0,'space': 0,'other': 0,}
for s in msg:
if s.isdigit():             #判断属于数字
res['num'] += 1
elif s.isalpha():           #判断属于字符串
res['string'] += 1
elif s.isspace():           #判断属于空格
res['space'] += 1
else:
res['other'] += 1
return res
res = check('hello name:jim passowrd:win2008')   
#给函数传入参数‘hello name:jim passowrd:win2008’
print(res)                           
#结果是{'num': 4, 'string': 23, 'space': 2, 'other': 2}

4.设计函数,输入参数n,判断该数是否为水仙花数。
参考答案:

def sxh (z) :
    q = z % 10
    w = z // 10 % 10
    e = z // 100
    if z == q * q * q + w * w * w + e * e * e:
        return True
        exit(1)
    return False
if sxh(153):
    print("是水仙花数" )
else:
    print("不是水仙花数")

5.设计一个函数,求正整数的各位上的数字之和,要求递归思路实现.
参考答案:

def sum_digits(number):
# Base Case
   if number == 0:
      return 0
   else:
# Mod (%) by 10 gives you the rightmost digit (227 % 10 == 7),
# while doing integer division by 10 removes the rightmost
# digit (227 // 10 is 22)
      return (number % 10) + sum_digits(number // 10)
print(sum_digits(57))
  1. 设计一个函数,判断一个数是否为素数?并求出所有四位数的素数.
    参考答案:
import math
def sushu(m):
     k = int(math.sqrt(m))
     for i in range(2, k+2):
        if m % i == 0:
            break
    if i == k+1:
        return True
    else:
        return False
a=int(input('请输入一个数:'))
if a==1:
    print('1既不是素数也不是合数')
else:
    if sushu(a)==True:
        print(a,'是素数')
    else:
        print(a,'是合数')
print('四位数素数为:')
n=0
for i in range(1001,10000,2):
    if sushu(i)==True:
        if n%30==0:
            print()
        print(i,end=' ')
        n=n+1
相关文章
|
18天前
|
存储 IDE 开发工具
编写Python参考手册速查软件(一)
编写Python参考手册速查软件(一)
33 0
|
18天前
|
Python
编写Python参考手册速查软件(二)
编写Python参考手册速查软件(二)
32 0
|
4月前
|
机器学习/深度学习 设计模式 数据可视化
【干货】Python参考书籍
【干货】Python参考书籍
36 1
|
4月前
|
数据处理 Python
Python官方发布的《Python标准库参考》,共2018页,建议收藏!
Python之所以牛,其中很大一部分原因就是因为它是一种“内置电池”的编程语言。它的标准库功能强大,开箱即用,省去了很多安装工具、配置环境的时间。 如果你想精通Python,对标准库熟悉是必要的一步。那如何能尽快熟悉标准库呢?把《Python标准库参考手册》常备身边是最好的办法。没事的时候随便翻翻,就能获得意想不到的收获和进步。
|
4月前
|
数据处理 Python
Python官方发布的《Python标准库参考》,共2018页,建议收藏!
Python之所以牛,其中很大一部分原因就是因为它是一种“内置电池”的编程语言。它的标准库功能强大,开箱即用,省去了很多安装工具、配置环境的时间。 如果你想精通Python,对标准库熟悉是必要的一步。那如何能尽快熟悉标准库呢?把《Python标准库参考手册》常备身边是最好的办法。没事的时候随便翻翻,就能获得意想不到的收获和进步。
|
3月前
|
存储 Python
语音输入,python数据类型,type()用来查看数据类型,数据类型转换,int(x)转整数,float(x)转换为浮点数,str(x),将对象转为字符串,标识符,标识符不允许使用关键字,关键字参考
语音输入,python数据类型,type()用来查看数据类型,数据类型转换,int(x)转整数,float(x)转换为浮点数,str(x),将对象转为字符串,标识符,标识符不允许使用关键字,关键字参考
|
5月前
|
Python
小白入门必备!计科教授的Python精要参考PDF开放下载!
随着互联网产业的高速发展,在网络上早已积累了极其丰富的Python学习资料,任何人都可以基于这些资源,自学掌握 Python。 但实际上,网络上充斥的资源太多、太杂且不成体系,在没有足够的编程/工程经验之前,仅靠“看”线上资源自学,的确是一件非常困难的事。
|
5月前
|
物联网 Python
2024年Python最全信息技术导论——物联网技术习题整理(1),Python面试题库
2024年Python最全信息技术导论——物联网技术习题整理(1),Python面试题库
2024年Python最全信息技术导论——物联网技术习题整理(1),Python面试题库
|
5月前
|
存储 Python
【python】习题第10周题解
【python】习题第10周题解
|
5月前
|
Python
【python】习题第9周
【python】习题第9周