python开发案例教程-清华大学出版社(张基温)答案(3.1)

目录

练习 3.1

1、判断题

2、选择题

3、代码分析题

4、程序设计题


练习 3.1


1、判断题


(1) 函数定义可以嵌套。                                                                                                (✔)
(2) 函数调用可以嵌套。                                                                                                (✔)
(3) 函数参数可以嵌套。                                                                                                (✖)
(4) Python 函数调用时的参数传递,只有传值一种方式,所以形参值的变化不会影响实参。   (✖)
(5)一个函数中可以定义多个 return 语句。                                                                    (✔)
(6)定义 Pthon 函数时,无须指定其返回对象的类型。                                                  (✔)
(7) 可以使用一个可变对象作为函数可选参数的默认值。                                              (✖)
(8) 函数有可能改变一个形式参数变量所绑定对象的值。                                              (✔)
(9)函数的形式参数是可选的,可以有,也可以无。                                                      (✖)
(10) 传给函数的实参必须与函数签名中定义的形参在数目、类型和顺序上一致。        (✔)
(11) 函数参数可以作为位置参数或命名参数传递。                                                       (✔)
(12) Python 函数的 retumm 语句只能返回一个值。                                                     (✖)
(13) 函数调用时,如果没有实参调用默认参数,则默认值被当作 0。                          (✖)
(14) 无返回值的函数称为 None 函数。                                                                         (✔)
(15) 递归函数的名称在自己的函数体中至少要出现一次。                                           (✔)
(16) 在递归函数中必须有一个控制环节用来防止程序无限期地运行。                         (✔)
(17) 递归函数必须返回一个值给其调用者,否则无法继续递归过程。                         (✔)
(18) 不可能存在无返回值的递归函数。                                                                        (✖)

2、选择题


(1) 代码

>>> def func(a, b=4,c=5) :
                print (a,b,c)
>>> func(1,2)


执行后输出的结果是_A_。
A. 1 2 5                B. 1 4 5                C. 2 4 5                         D.1 2 0

(2) 函数

def func(x,y,z = 1, *par, **parameter) :
        print (x,y,z)
        print (par)
        print(parameter)


用 func (1,2,3,4,5, m = 6) 调用,输出结果是___B__
A.                                B.                        C.                        D.
1 2 1                           1 2 3                    1 2 3                    1 2 1                
(3,4,5)                        (4,5)                     (4, 5)                    (4,5)     
 ('m'=6)                      {'m' : 6}                  (6)                       (m=6)


(3) 代码

>>> x,y = 6,9
>>> def foo() :
        global y
         x,y = 0,0

>>> x,y

执行后的显示结果是_B_
A. 0        0                 B. 6        0                C. 0        9                D. 6        9

(4)下列关于匿名函数的说法中,正确的是。___A___
A. lammbda 是一个表达式,不是语句
B. 在 lambda 的格式中,lambda 参数 1,参数 2,.....: 是由参数构成的表达式
C. lambda 可以用 def定义一个命名函数替换
D. 对于 mn=(lambda x,y : x if x <y else y),mn(3,5) 可以返回两个数字中的大者

lambda是一个表达式,而不是一个语句。因为这一点,lambda能够出现在Python语法允许def出现的地方

3、代码分析题

(1) 阅读下面的代码,指出函数的功能。

def f(m,n) :
        if m < n:
                m,n = n,m
        while m % n != 0:
                r = m % n
                m = n
                n = r
        return n

计算两个正整数的最大公约数

(2) 阅读下面的代码,指出程序运行结果。

d = lambda p: p; t = lambda p: p * 3
x = 2; x = d(x); x = t(x); x = d(x); print(x)

        6

(3) 阅读下面的代码,指出其中 while 循环的次数

def cube(i) :
        i = i * i * i

i = 0
while i < 1000:
        cube (i)
        i+1

while 的循环次数为:

按照题目,循环次数为1000

(4) 指出下面的代码输出几个数据,并说明它们之间的关系

a =1
id(a)
def fun (a) :
        print (id(a))
        a = 2
        print (id(a))
fun(a)
id(a)

140735017677072
140735017677072
140735017677104
140735017677072


(5) 指出下面的代码输出几个数据,说明它们之间的关系,并说明此题与(4) 题不同的原因

a = []
id(a)
def fun (a) :
        print (id(a))
        a.append (1)
        print (id(a))
fun(a)
id(a)

1877739262472
1877739262472
1877739262472
1877739262472

6)下面这段代码的输出结果是什么? 请解释。

def extendlist (val,Liist = []):
        Liist .append(val)
        return Liist


list1 = extendlist(10)
list2 = extendlist(123, [])
list3 = extendlist('a')


print('list = %s' % list1)
print('list = %s' % list2)
print('list = %s' % list3)

list = [10, 'a']
list = [123]
list = [10, 'a']


(7)下面这段代码的输出结果是什么? 请解释

def multipliers () :
        return ([lambda x:i * x for i in range (4)])


print ([m(2) for m in multipliers() ])

[6, 6, 6, 6]


4、程序设计题


(1) 编写一个函数,求一元二次多项式的值。


(2) 编写一个计算 f(x) = x^n 的递归程序。


(3) 假设银行一年整存整取的月息为 0.32%,某人存入了一笔钱。然后,每年年底取出 200 元。这
样到第 5 年年底刚好取完。请设计一个递归函数,计算他当初共存了多少钱。

(4) 设有 n 个已经按照从大到小顺序排列的数,现在从键盘上输入一个数 ,判断它是否在已知数列中。

(5) 用递归函数计算两个非负整数的最大公约数。

(6) 约瑟夫问题: M个人围成一圈,从第 1个人开始依次从1到N循环报数,并且让每个报数为N的人出圈,直到圈中只剩下一个人为止。请用 python语言程序输出所有出圈者的顺序(分别用循环和递归方法)。

(7) 分割圆。在一个圆的边上任选 n 个点,然后用直线段将它们连接,会把圆分成若干块

(8) 台阶问题。一只青蛙一次可以跳 1 级台阶,也可以跳 2 级台阶。求该者蛙跳一个,级的台阶总共有多少种跳法。请用函数和 lammbda 表达式分别求解。

(9) 变态台阶问题。一只青蛙一次可以跳 1 级台阶,也可以跳 2 级台阶....它也可以跳 n 级台阶。求该青蛙跳一个 n 级的台阶总共有多少种跳法。请用函数和 lambda 表达式分别求解。

(10) 矩形覆盖。 可以用 2x1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2 x 1的小矩形无重叠地覆盖一个 2xn 的大矩形,总共有多少种方法? 请用函数和 ambda 表达式分别求解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAP MIGO前台批次特性值增强(自动带出)<转载>

原文链接&#xff1a;https://blog.csdn.net/qq_45063256/article/details/128464411 增强点&#xff1a;程序LCTMSF3Z 在MIGO中点击批次右边的分类时&#xff0c;自动将该批次的批次特性值带出来。 现在打开程序LCTMSF3Z 该程序就只有一个FORM&#xff0c;首先切换到编辑…

AIGC: 关于ChatGPT中基于API实现一个StreamClient流式客户端

Java版GPT的StreamClient 可作为其他编程语言的参考注意: 下面包名中的 xxx 可以换成自己的代码基于java&#xff0c;来源于网络&#xff0c;可修改成其他编程语言实现参考前文: https://blog.csdn.net/Tyro_java/article/details/134748994 1 &#xff09;核心代码结构设计 …

RTLS 在医疗保健中使用的好处

实时定位系统 (RTLS) 和物联网 (IoT) 提供有关患者、医疗设备和工作人员的数据。 医疗保健管理员可以通过互联的生态系统改善患者和员工的体验&#xff0c;同时降低运营成本并提高效率。了解医疗保健系统如何使用 RTLS 以及如何实现优化物联网策略的优势。 定义医疗保健实时定…

加载预训练权重时不匹配

场景 复现Rethinking the Learning Paradigm for Dynamic Facial Expression Recognition这篇论文时&#xff0c;加载已经训练好的.pt文件进行推理&#xff0c;发现准确率很低。利用下面两行代码加载预训练的权重&#xff1a; weights_dict torch.load(/data2/liuxu/attribu…

3.C程序编译步骤

目录 1 预处理 2 编译 3 汇编 4 链接 5 文件大小情况 依次执行下面4个步骤 预处理 将所有头文件展开&#xff0c;比如stdio.h等&#xff0c;展开就相当于把stdio.h中的所有代码粘贴到你的代码里。将所有的宏文件展开&#xff0c;像stdio.h是官方定义的头文件&#x…

STM32F407-14.3.11-01互补输出和死区插入

互补输出和死区插入 高级控制定时器&#xff08;TIM1 和 TIM8&#xff09;可以输出两路互补信号&#xff0c;并管理输出的关断与接通瞬间。 这段时间通常称为死区&#xff0c;用户必须根据与输出相连接的器件及其特性&#xff08;电平转换器的固有延迟、开关器件产生的延迟...&…

海云安参与制定《信息安全技术 移动互联网应用程序(App)软件开发工具包(SDK)安全要求》标准正式发布

近日&#xff0c;由TC260&#xff08;全国信息安全标准化技术委员会&#xff09;归口 &#xff0c;主管部门为国家标准化管理委员会&#xff0c;深圳海云安网络安全技术有限公司&#xff08;以下简称“海云安”&#xff09;等多家相关企事业单位共同参与编制的GB/T 43435-2023《…

redis 安装在liunx安装和常用文件配置

文章目录 安装配置文件设置测试启动服务连接服务 安装 1.官网下载压缩包: https://redis.io/download/ 2.将压缩包上传到Linux环境中 解压: tar -xvf redis-xxxxx 3.liunx 需要c的环境 yum -y install gcc-c4.进入redis文件夹 make && make install5.推荐不是必须…

内存垃圾回收

对一个方法调用完成后&#xff0c;如何立即恢复该方法使用的内存&#xff1a; 一、 在Java中&#xff0c;垃圾回收是由Java虚拟机&#xff08;JVM&#xff09;自动管理的&#xff0c;而不是由程序员手动进行的。垃圾回收器会自动检测不再被引用的对象&#xff0c;并释放其占用…

游戏的UI管理的完整机制总结及框架展示

目录 UI管理机制总结 层级管理 显示类型 SoringLayer 使用列表记录处于不同状态的页面 供外调用的增删改查函数 资源预加载函数 外部回调执行函数 遮罩效果 还原界面 事件系统 垃圾回收 UI管理机制总结 自己根据源码总结出的一套UI管理机制&#xff0c;大概讲述了如…

网络调试助手 连接Onenet 多协议接入平台 TCP透传协议

onenet文档链接 多协议接入地址 打开Onenet平台&#xff0c;多协议接入 选择TCP透传协议&#xff0c;点击添加产品&#xff0c;输入信息&#xff0c;点击确认 点击设备列表&#xff0c;添加设备 下面需要上传一个解析脚本文件该文件的下载地址lua文件下载地址 建立连接 设备…

策略模式终极解决方案之策略机

我们在开发时经常会遇到一堆的if else …, 或者switch, 比如我们常见的全局异常处理等, 像类似这种很多if else 或者多场景模式下, 策略模式是非常受欢迎的一种设计模式, 然而, 一个好的策略模式却不是那么容易写出来. 我在工作中也因为写烦了switch,if else 觉得很不优雅, 因…

2022 China Collegiate Programming Contest (CCPC) Guilin Site

A.Lily Problem - A - Codeforces 题意 思路 数所有周围没L的格子 #include <bits/stdc.h>using i64 long long;constexpr int N 2e5 10; constexpr int mod 1e9 7; constexpr int Inf 0x3f3f3f3f; constexpr double eps 1e-10;std::string s;int n;void solv…

cv2.threshold 图像二值化

图像二值化 whatparameters示例 what cv2.threshold是OpenCV中用于进行图像二值化的函数。它的作用是将输入图像的像素值转换为两个可能的值之一&#xff0c;通常是0&#xff08;黑色&#xff09;或255&#xff08;白色&#xff09;&#xff0c;根据一个设定的阈值。图像二值化…

DAPP开发【04】测试驱动开发

测试驱动开发(Test Driven Development)&#xff0c;是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码&#xff0c;然后只编写使测试通过的功能代码通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码&#xff0c…

主题色变量和var实现多套主题换肤

文章目录 一、前言1.1、[VueElementUI实现多套主题换肤](https://blog.csdn.net/u012804440/article/details/133975511)1.2、[VueElementUI实现在线动态换肤](https://blog.csdn.net/u012804440/article/details/133975570) 二、实现2.1、多主题色定义2.2、根节点属性修改2.2.…

RK3568平台开发系列讲解(Linux系统篇)device_node 转换成 platform_device

🚀返回专栏总目录 文章目录 一、DTB转换规则二、转换源码分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过设备树 device_node 转换成 platform_device 一、DTB转换规则 device 部分是用 platform_device 结构体来描述硬件资源的, 所以内核最终会将…

NodeJs脚手架(Koa)的简单使用

文章目录 前言一、与express的区别express-generator 提供的功能如下koa-generator 提供的功能如下两个生成器共同支持的项目骨架描述如下 二、使用步骤安装 Koa 生成器使用koa2创建项目PM2的使用 三、基础目录说明配置文件package.json入口文件 bin/www核心文件 app.jsroutes …

剑指 Offer(第2版)面试题 17:打印从 1 到最大的 n 位数

剑指 Offer&#xff08;第2版&#xff09;面试题 17&#xff1a;打印从 1 到最大的 n 位数 剑指 Offer&#xff08;第2版&#xff09;面试题 17&#xff1a;打印从 1 到最大的 n 位数解法1&#xff1a;字符数组解法2&#xff1a;全排列 剑指 Offer&#xff08;第2版&#xff09…

前端实现token无感刷新的原因和步骤

前端实现无感刷新 需要这么做的原因 在使用过程中&#xff0c;如果token过期&#xff0c;再操作页面可能就需要重新返回登录页获取token了&#xff0c;在持续使用的过程中可能会出现多次跳去登录页的情况&#xff0c;用户体验很不好。所以需要做无感刷新 做token无感刷新的方…