Python编程实验四:函数的使用
目录
一、实验目的与要求
二、实验内容
三、主要程序清单和程序运行结果
第1题
第2题
第3题
第4题
第5题
四、实验结果分析与体会
一、实验目的与要求
(1)通过本次实验,学生应掌握函数的定义与调用的基本语法,能根据需要灵活应用递归函数;
(2)掌握函数的可变参数的常见用法,以及列表作为参数传递时的注意事项;
(3)学习map函数和lambda表达式的应用;
(4)按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及及相关实验数据与运行结果)
二、实验内容
请使用Python语言在Jupyter Notebook环境下编程,完成下列题目的要求:
1、改编自教材第120页实训1:编写一个计算列表中位数的函数。
要求根据下图给定的程序框架完善median函数的定义,并且不允许函数修改实参列表。
2、定义并调用一个名为specify的函数,实现计算多个月份的平均访客量。请根据下图给定的程序框架完善specify函数的定义,每个月的访客量数据由data列表给出。
3、定义并调用一个名为person的函数,实现人员信息的输出。请根据预期的输出效果完善下面的程序框架,要求人员的名字信息必须要有,其他信息可有可无。
4、改编自教材第120页实训2:使用map函数和lambda表达式对列表中的元素求平方。请根据下图给定的程序框架,利用map函数和lambda表达式,只填写一行代码,实现对列表中每个元素求平方。
5、定义一个递归函数实现对字符串的逆序输出。例如,对“student”字符串,调用该函数,实现逆序输出为“tneduts”。
三、主要程序清单和程序运行结果
第1题
1、改编自教材第120页实训1:编写一个计算列表中位数的函数。
要求根据下图给定的程序框架完善median函数的定义,并且不允许函数修改实参列表。
def median(ls):sorted_ls = sorted(ls) # 对列表进行排序n = len(sorted_ls)if n % 2 == 0:mid_idx = n // 2median = (sorted_ls[mid_idx - 1] + sorted_ls[mid_idx]) / 2else:mid_idx = n // 2median = sorted_ls[mid_idx]return medianls1=[26,92,-5,13,6]
ls2=ls1+[117,-25,73]
print("列表ls1的中位数是{}".format(median(ls1)))
print("列表ls2的中位数是{}".format(median(ls2)))
print("调用函数后列表ls1中的元素:",ls1)
print("调用函数后列表ls2中的元素:",ls2)
运行结果:
第2题
2、定义并调用一个名为specify的函数,实现计算多个月份的平均访客量。请根据下图给定的程序框架完善specify函数的定义,每个月的访客量数据由data列表给出。
def specify(*lst):total_visitors = 0for visitors in lst:total_visitors += data[visitors]average = total_visitors / len(lst)print("指定月份的平均访客量位{:.2f}".format(average))data=[200,388,123,456,987,342,767,234,124,345,123,234]
specify(1,2,3,4)
specify(10,9,8,7,6)
运行结果:
第3题
3、定义并调用一个名为person的函数,实现人员信息的输出。请根据预期的输出效果完善下面的程序框架,要求人员的名字信息必须要有,其他信息可有可无。
def person(name,**kwargs):print(f"The information of {name} is:")for key,value in kwargs.items():print(f"{key}:{value}")person('Alice',city='GL')
person('Bob',gender='M',job='Teacher')
emp1={"name":"Rose","favorite":"music","age":18}
person(**emp1)
运行结果:
第4题
4、改编自教材第120页实训2:使用map函数和lambda表达式对列表中的元素求平方。请根据下图给定的程序框架,利用map函数和lambda表达式,只填写一行代码,实现对列表中每个元素求平方。
ls=[1,3,7]
squared_numbers = list(map(lambda x: x**2, ls))
print(squared_numbers)
运行结果:
第5题
5、定义一个递归函数实现对字符串的逆序输出。例如,对“student”字符串,调用该函数,实现逆序输出为“tneduts”。
def reverse_string(string):if len(string) == 0:return ""else:return reverse_string(string[1:]) + string[0]result = reverse_string("student")
print(result)
运行结果:
四、实验结果分析与体会
通过本次实验,掌握了函数的定义与调用的基本语法,能根据需要灵活应用递归函数。学会了函数的可变参数的常见用法,以及列表作为参数传递时的注意事项;map函数和lambda表达式的应用。
模块化和重用性:函数允许将一段代码封装成一个独立的模块,这样可以在程序中多次调用,提高了代码的重用性和可维护性。参数传递:函数可以接受输入参数,这使得函数更加灵活和通用。通过参数的传递,可以让函数处理不同的数据,实现不同的功能。返回值:函数可以返回计算结果,这样可以将函数的输出作为其他部分的输入,实现更复杂的逻辑。作用域:函数内部可以定义局部变量,这些变量只在函数内部有效,避免了命名冲突和变量污染。匿名函数和闭包:Python支持匿名函数和闭包的特性,这使得函数的使用更加灵活和方便。
相关文章:

Python编程实验四:函数的使用
目录 一、实验目的与要求 二、实验内容 三、主要程序清单和程序运行结果 第1题 第2题 第3题 第4题 第5题 四、实验结果分析与体会 一、实验目的与要求 (1)通过本次实验,学生应掌握函数的定义与调用的基本语法,能根据需要…...

SVN服务备份
hotcopy备份 window批处理 保存以下内容到svn_buckup.bat,确保内容的路径正确,最后双击bat文件进行备份即可 echo offrem SVN安装路径 set svn"C:\Program Files\VisualSVN Server\bin"rem 仓库根目录 set homeE:\Repositories\WorkSpacere…...

FIDO2入门以及相关概念 Client to Authenticator Protocol
本文根据官方文档的定义以及我疑惑的问题做出的相关整理的问答,可能会有偏差,请以官网为准。 官网文档网址:Client to Authenticator Protocol (CTAP) FIDO是什么 FIDO(Fast Identity Online)是一组开放标准和…...

Linux系统入门:嵌入式系统的操作系统选型
(本文为简单介绍,内容来源网络和AI模型生成) Linux是一种开源的操作系统,它建立在Unix操作系统的基础之上,采用了Unix的很多理念和设计思想。与商业操作系统如Windows相比,Linux系统资源占用少,运行高效稳定,且Linux系统免费开源,使用和传播…...

数据结构——时间复杂度
前言: 当谈到数据结构和算法时,时间复杂度是一个至关重要的概念。时间复杂度是衡量算法执行时间随输入规模增长而变化的度量,它指示了算法的效率和性能。在本篇博客中,我们将深入探讨时间复杂度的相关知识,并结合C语言…...

《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_5
《剑指Offer》笔记&题解&思路&技巧&优化_Part_5 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题🟢1. LCR 158. 库存管理 II——数组中出现次数超过一…...

ubuntu上安装docker
在 Ubuntu 上安装 Docker,可以按照以下步骤进行操作: 更新软件包列表:运行以下命令来更新系统的软件包列表: sudo apt update安装必要的依赖项:运行以下命令来安装 Docker 所需的依赖项: sudo apt install …...

【Docker】Linux主机部署Docker
Docker部署 1.二进制文件部署 到如下地址,下载二进制包。 Docker官网:https://docs.docker.com/engine/install/binaries/ 网易镜像源:https://mirrors.163.com/docker-ce/linux/static/stable/x86_64/ 下载好的二进制包上传到主机…...

vue前端docx库生成word表格 并合并单元格的例子
Vue.js 是一个流行的前端JavaScript框架,用于构建用户界面和单页应用程序。在Vue中生成Word表格并合并单元格,通常需要使用额外的库,如docx,它是一个用于创建和修改Word文档(.docx)的JavaScript库。 …...

FastGPT配置文件及OneAPI程序:
FastGPT配置文件及OneAPI程序:百度网盘 请输入提取码 提取码:wuhe 创建fastgpt目录:mkdir fastgpt 切换到fastgpt目录:cd fastgpt 下载docker-compose文件:curl -O https://raw.githubusercontent.com/labring/Fast…...

Positive Semidefinite Matrices 什么是半正定矩阵?(undone)
参考视频:https://www.bilibili.com/video/BV1Vg41197ew/?vd_source7a1a0bc74158c6993c7355c5490fc600 参考资料(半正定矩阵的定义):https://baike.baidu.com/item/%E5%8D%8A%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5/2152711?frge_ala 看看半正定矩阵的…...

shapely 笔记:STR TREE
数据结构笔记:R树-CSDN博客 1 基本介绍 使用Sort-Tile-Recursive (STR) 算法创建的仅查询的R-tree空间索引该树索引每个几何图形的边界框。树在初始化时直接构建,且一旦创建后不能添加或移除节点所有操作返回输入几何图形的索引边界框限于二维并且是轴…...

neo4j常用代码
1】查版本: CALL dbms.components() YIELD name, versions RETURN name, versions; 2】清数据: MATCH ()-[r]->() DELETE r; MATCH (n) DETACH DELETE n; 3】NEO4J 操作入门_neo4j查看历史执行命令-CSDN博客 :play --首页 :help match/keys/com…...

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(五)
Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型,由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”(そら sora),即天空之意,以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模型DALL-E基础上开发而成的。模型的训练数据既包含公开…...

Less预处理器教程
学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学,可以点心心支持一下哈 一、Less介绍 less官方文档 lesscss.org/ less中文文档 less.bootcss.com/ less是一种css预处理器,它扩展了css语言,…...

PCL 计算点云AABB包围盒的体积
目录 一、AABB包围盒二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。爬虫自重,把自己当个人。 一、AABB包围盒 AABB包围盒又称了 轴对齐包围盒,是点云包围盒里最简单的一种,其计算方法也极其简单。获取包围盒之后,根据包围盒的长宽高进行体积计算即…...

论软件测试工程师 重要性!
在生活中,我们常常会遇到以下几种窘迫时刻: 准备骑共享单车出行,却发现扫码开锁半天,车子都没有反应;手机导航打车,却发现地图定位偏差很大,司机总是跑错地方;买个水,却…...

防御第六次作业-防火墙综合实验(av、url过滤、dns过滤)
目录 拓扑图: 要求: 8 9 10 11 拓扑图 要求 前7个要求在上一篇博客; 8.分公司内部的客户端可以通过域名访问到内部的服务器 9.假设内网用户需要通过外网的web服务器和pop3邮件服务器下载文件和邮件,内网的FTP服务器也需要…...

打码半年,开源一款自定义大屏设计软件!
hi,大家好,我是Tduck马马。 最近我们开源了一款大屏软件-TReport,与大家分享。 TReport是一款基于Vue3技术栈的数据可视化系统,支持静态、动态api等数据源;可用于数据可视化分析、报表分析、海报设计使用。 提供自定…...

云计算基础-大页内存
大页内存功能概述 什么是大页内存 简单来说,就是通过增大操作系统页的大小来减小页表,从而避免快表缺失 主要应用场景 主要运用于内存密集型业务的虚拟机,比如对于运行数据库系统的虚拟机,采用HugePages(大页)后,可…...

数据结构-邻接链表
介绍 邻接矩阵是运用较多的一种储存图的方法,但如果一张网图边数较少,就会出现二维矩阵中大部分数据为0的情况,浪费储存空间 为了避免空间浪费,也可以采用数组与链表结合的方式来存储图 假设有这样一张图 我们可以先用一个数组…...

十三、集合进阶——单列集合 及 数据结构
单列集合 及 数据结构 13.1 集合体系结构13.1.2 单列集合1. Collection2.Collection 的遍历方式迭代器遍历增强for遍历Lambda表达式遍历 3.List集合List集合的特有方法List集合的遍历方式五种遍历方式对比 4.数据结构1).栈2).队列3)数组4)链表小结5&…...

Android | ArcGIS入门
一、概述 ArcGIS是由Esri开发的地理信息系统(GIS)软件。它用于制图、空间分析和数据可视化。ArcGIS允许用户以各种格式创建、管理、分析和共享地理信息。它通常用于城市规划、环境管理和应急响应等领域。该软件包括一系列工具,用于创建地图、…...

dockerfile文件书写
1.dockerfile构建nginx镜像 1.1书写dockerfile文件 mkdir nginx #创建nginx目录 cd nginx vim dockerfile # 修改文件FROM centos # 基础镜像,默认最新的centos8操作系统 MAINTAINER xianchao # 指定镜像的作者信息 RUN rm -rf /etc/yum.repos.d/* # centos8默认…...

蓝桥杯-整数删除
给定一个长度为 N 的整数数列:A1, A2, ... , AN。你要重复以下操作 K 次: 每次选择数列中最小的整数(如果最小值不止一个,选择最靠前的),将其删除。 并把与它相邻的整数加上被删除的数值。 输出 K 次操作后…...

以程序员的视角,看前后端分离的是否必要?
Hello,我是贝格前端工场,本篇分享一个老生常谈的话题,前后端分离是必然趋势,但也是要区分具体的场景,欢迎探讨,关注,有前端开发需求可以私信我,上车了。 一、什么是前后端分离和不分…...

Linux:sed进阶(12)
Linux:shell脚本:基础使用(5)《正则表达式-sed工具》_linux脚本表达式s-CSDN博客https://blog.csdn.net/w14768855/article/details/132347574?ops_request_misc%257B%2522request%255Fid%2522%253A%252217084222871680019707523…...

Linux命令-builtin命令(执行bash内建命令)
说明 用于执行指定的bash内建命令。builtin 命令调用的bash内建命令优先于同名的外部命令及同名的shell函数。 语法 builtin [shell-builtin [arg ...]]参数 shell-builtin(可选):要调用的bash内建命令。 arg(可选)…...

HTML的特殊字符
HTML的特殊字符 有些特殊的字符在 html 文件中是不能直接表示的,例如: 空格,小于号(<),大于号(>),按位与(&)。 空格 示例代码: 运行结果: 由于html 标签就是用 < > 表示的࿰…...

内核移植学习
内核移植 内核移植就是指将RT-Thread内核在不同的芯片架构、不同的板卡上运行起来。 移植可分为CPU架构移植和BSP板级支持包移植两部分。 CPU架构移植 在嵌入式领域有多种不同CPU架构,例如Cortex-M、ARM920T、MIPS32、RISC-V等等。 为了使RT-Thread能够在不同C…...