python 实验3

姓名:66

学号:

专业年级:2021级

班级:  

实验的准备阶段

(指导教师填写)

课程名称

Python开发与应用

实验名称

函数的应用

实验目的

1)能够编写简单函数,掌握不定长参数和返回值的应用;

2)掌握mapreducefilter函数中lambda函数的应用;

实验内容

1)函数式编程,参数和返回值的应用;

2mapreducefilter函数的应用;

实验类型

(打R)

□验证性    □演示性     R设计性      £综合性

实验的重点、难点

实验重点:不定长参数和返回值的应用、内置函数以及lambda编程

实验难点:内置函数以及lambda编程

实验环境

Python 3.8以上版本,pycharm+anaconda等集成开发环境

实验的实施阶段

实验步骤及实验结果

1、实验题目:函数式编程

(1)编写函数,检查获取传入列表或者元组对象的所有奇数位索引对应的元素。

def ji(list):print(list[1::2])list = [0,1,2,3,4,5]ji(list)

(2)编写函数,判断用户传入的对象(字符串、元组、列表)长度是否大于6。

def l(a):
   
if len(a)>6:
       
print("用户传入的对象(字符串、元组、列表)长度大于6")
       
return True
    else
:
       
print("用户传入的对象(字符串、元组、列表)长度不大于6")
       
return False

a = [1,2,3,4,5,6,7]
b = [
1,2,3,4,5]
l(a)
l(b)

(3)编写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。

def l(a):
   
if len(a)>2:
       
return a[0:2]
   
else:
       
print("传入对象的长度小于2")

a = [
1,2,3]
b = [
1]
print(l(a))
l(b)

(4)编写函数,计算传入函数的字符串中,数字、字母、空格以及其他内容的个数,并返回

def g(a):
    ziMu =
0
   
shuZi = 0
   
kongGe = 0
   
qiTa = 0
   
for i in a:
       
if ord('A')<=ord(i)<=ord('z'):
            ziMu+=
1
       
elif ord('0')<=ord(i)<=ord('9'):
            shuZi+=
1
       
elif ord(i) == ord(' '):
            kongGe+=
1
       
else:
            qiTa+=
1
   
print(f"传入的对象中\n数字个数为:{shuZi}\n字母的个数为:{ziMu}\n空格的个数为:{kongGe}\n其他内容的个数为:{qiTa}")

a =
"Abc 1234 !@"
g(a)

(5)编写函数,返回两个数字参数中较大的那个数字

def fun5(a,b):
   
return max(a,b)

a =
3
b = 5
print(fun5(a,b))

(6)编写函数,接收多个数字,求和并返回。

def fun6(*args):
    sum =
0
   
for i in args:
        sum+=i
   
return sum

print(fun6(1,2,3))

(7)编写函数,参数为一个字符串,返回这个字符串所有子串里面构成回文串的最大子串。

def fun7(a) :
    result =
''
   
for i in range(len(a)):
       
for j in range(i,len(a)):
            value = a[i:j+
1]
            value1 =
''.join(reversed(value))
           
if value == value1 and len(value)>len(result):
                result = value
   
if result == '' or len(result)<2:
       
return '该字符串不含回文串'
   
else:
       
return result

print(fun7('12345456788765400'))

(8)编写函数,输入不定长参数,将其中是整型的全部相加,忽略非整型的参数。(提示:判断是否是整型可以使用isinstance函数)

def fun8(*args):
    sum =
0
   
for i in args:
       
if isinstance(i,int):
            sum += i
   
return sum

print(fun8(1,2,3,'ad','wdafd',4))

(9)编写函数,传入函数中多个实参(均为可迭代对象,如字符串、元组、列表、集合等),将每个实参的每个元素依次加入到函数的动态参数args里面,例如传入两个参数[1, 2, 3] (10, 20)最终args为(1,2,3,10,20)

def fun9(*a):
    args = ()
   
for i in a:
        args +=
tuple(i)
   
return args

print(fun9([1, 2, 3],(10, 20)))

(10)编写函数,传入函数中多个实参(均为字典),将每个实参的每个元素依次加入到函数的动态参数kwargs里面,例如传入两个参数{'one':1} {'two':2}, 最终kwargs为{'one': 1, 'two': 2}。

def fun10(*a):
    kargs = {}
   
for i in a:
        kargs.update(i)
   
return kargs

print(fun10({'one':1},{'two':2}))

(11)解一元二次方程。func(a, b, c)求x1, x2

源代码:

import math
def fun11(a,b,c):
    derta = b**
2 - 4*a*c
   
if derta > 0:
        x1 = (-b - math.sqrt(derta)) /
2*a
        x2 = (-b + math.sqrt(derta)) /
2*a
       
return '两个解:' + str(x1) + ' ' + str(x2)
   
elif derta == 0:
        x = -b /
2*a
       
return '一个解:' + x
   
else:
       
return '无解'

print(fun11(1,3,-4))

列出测试数据和实验结果截图:

  1. 实验题目:sorted 函数的应用

请使用sorted函数实现,输入一个包含若干自然数的列表,输出这些自然数降序排列后的新列表。

源代码:

def fun(a):
   
return sorted(a,reverse=True)

print(fun([1,5,9,6,3,4,7,8]))

列出测试数据和实验结果截图:

3、请使用map函数实现:

1)编写程序,输入一个自然数字符串,然后输出各位数字之和。

def fun(a):
  
return sum(map(int,a))

print(fun('123456789'))

2)编写程序,输入一个包含若干整数的列表,把列表中所有整数转换为字符串,然后输出包含这些字符串的列表。

def fun(a):
   b =
list(map(str,a))
  
print(b)
  
fun([
1,2,3])

3)编写程序,输入两个包含若干整数的等长列表,把这两个列表看作两个向量,输出这两个向量的内积。

源代码:

def fun(a,b):
  
return sum(map(lambda x,y:x*y,a,b))

print(fun([1,2,3],[4,5,6]))

4.请使用reduce函数实现:

1)编写程序,输入一个字符串,输出翻转(首尾交换)的字符串。

from functools import reduce
def fun(a):
  
return reduce(lambda x,y:y+x,a)

print(fun('123456'))

2)编写程序,输入一个包含若干整数的列表,输出这些整数的乘积。

源代码:

from functools import reduce
def fun(a):
  
return reduce(lambda x,y:x*y,a)

print(fun([1,2,3,4]))

5.请使用filter函数实现:

1)编写程序,输入一个包含若干任意数据的列表,输出该列表中等价于True的元素组成的列表

def fun(a):
   b =
filter(lambda x:x,a)
  
print(list(b))

fun([
1,0,-1])

2)编写程序,输入一个包含若干整数的列表,输出该列表中偶数组成的列表

源代码:

def fun(a):
   b =
filter(lambda x: x % 2 == 0 , a)
  
print(list(b))

fun([
1,2,3,4,5,6])

列出测试数据和实验结果截图:

  1. 使用random模块,随机生成20以内的数字,用户有五次机会从键盘输入猜测的数字,猜大提示猜大了,猜小提示猜小了,若在规定次数内猜对则退出程序,否则继续猜数字直至次数用尽(编写函数实现)。

源代码:

import random
def fun():
   a = random.randint(
0,20)#能取到末尾值,是闭区间。
  
for i in range(5):
      guess =
int(input('猜一下目标数字(1到20之间):'))
     
if guess < a:
        
print('猜小了')
     
elif guess > a:
        
print('猜大了')
     
else:
        
print('恭喜你猜对了!目标数字是',guess)
        
return
  
print(f"很遗憾,你没有在规定次数内猜对。目标数字是 {a}")

fun()

列出测试数据和实验结果截图:

实验结果的处理阶段

实验结果的分析与总结

对实验结果进行分析,列出错误及解决办法,回答问题,总结实验的心得体会,以及提出改进意见。

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

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

相关文章

编程怎么学习视频教程,编程实例入门教程,中文编程开发语言工具下载

编程怎么学习视频教程&#xff0c;编程实例入门教程&#xff0c;中文编程开发语言工具下载。 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件…

接口测试--知识问答

1 做接口测试当请求参数多时tps下降明显&#xff0c;此接口根据参数从redis中获取数据&#xff0c;每个参数与redis交互一次&#xff0c;当一组参数是tps5133&#xff0c;五组参数是tps1169&#xff0c;多次交互影响了处理性能&#xff0c;请详细阐述如何改进增进效果的方案。 …

阿里云记录保存

恭喜您&#xff0c;试用ECS创建成功 实例ID&#xff1a;i-bp1h36cszlkbxbf5gqee 您的免费试用已正式开启&#xff01;立即登录ECS控制台&#xff0c;完成新手任务&#xff0c;即可快速上手ECS。ECS实例创建需要1-5分钟&#xff0c;请您耐心等待。 121.43.231.59 公网 172.25…

mysql数据库时间

记录MySQL今天又一个新的问题&#xff1a; 场景&#xff1a;nodejs后台容器部署 问题原因&#xff1a;纯属好心办坏事&#xff0c;由于考虑了时区&#xff08;现在看来纯属多余&#xff09;&#xff0c;在写入时间时使用了time_str.toLocaleString("chinese", { ti…

MOS管体电极接源端版图layout画法

记录一个lvs一直跑不通的问题。 问题描述&#xff1a;lvs一直显示某几个MOS管的体电极连接问题。连线没有问题&#xff0c;版图中已经画了衬底。 原因&#xff1a; 图中四个管子的衬底接了源端&#xff0c;没接电源。 解决办法&#xff1a; 法1、源端接地 法2、将这四个管子…

一个项目进行测试的一些最基本环境

在一个项目开发到发布的整个过程中&#xff0c;会使用到很多个环境进行测试和运行项目。最基本的开发环境、测试环境、准生产环境、生成环境 一、开发环境 开发环境顾名思义就是我们程序猿自己把项目放到自己的电脑上&#xff0c;配置好以后&#xff0c;跑起来项目&#xff0…

【LeetCode 】周赛(2023.11.12)

2932. 找出强数对的最大异或值 I 题意 找出强数对的最大异或值 解法 暴力 其实不用记录所有的异或值&#xff0c;直接维护最大值就行了。 class Solution { public:int maximumStrongPairXor(vector<int>& nums) {unordered_map<int, int> mp;int n nums…

Git的基本操作以及原理介绍

文章目录 基本操作创建git仓库配置name和email .git目录的结构git add & git commit.git目录结构的变化 git追踪管理的数据git的版本回退回退的原理回退的三种情况 版本库中文件的删除git分支管理分支的删除合并分支时的冲突分支的合并模式分支策略git stash不要在master分…

【软考篇】中级软件设计师 第三部分(一)

中级软件设计师 第三部分&#xff08;一&#xff09; 十七. I/O管理软件十八. 输入/输出技术十九. 总线系统二十. 磁盘管理20.1 移臂调度算法20.2 缓冲区 二十一. 操作系统二十二. 数据库22.1 三级模式-两级映射22.2 数据库设计22.3 规范化理论22.4 范式判断22.5 模式分解 二十…

C++基础知识记录

github仓库不定期更新: https://github.com/han-0111/CppLearning 文章目录 C如何工作编译器和链接器编译器预处理(Preprocessing)includedefineif/endif 链接器一种比较复杂的情况 变量变量类型intcharshortlonglong longfloatdoublebool如何查看数据大小 函数头文件条件语句…

linux内核驱动开发

系列文章目录 主要介绍linux系统下的驱动开发 文章目录 系列文章目录 文章目录 前言 一、驱动是什么&#xff1f; 二、主要分类 2.读入数据 3.代码示例 总结 前言 对设备驱动最通俗的解释就是“驱使硬件设备行动”。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写…

2023年亚太杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模…

Web服务 API服务 数据库服务

目录 Web服务API服务数据库服务 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你的青睐是我努力的方向&#xff01; ✏️ 评论&#xff0c;你的意见是我进步的财富&#xff01; Web服务 Web服务是一种通过网络提供服务和数据的技…

运营商大数据,金融贷款精准营销赢得客户

运营商大数据精准营销赢得客户推广 在大数据的新形势下&#xff0c;它推动了经济和金融的发展趋势。其中&#xff0c;大数据获取客户是企业营销和推广的一个阶段&#xff0c;是新一轮的转型发展。通过大数据准确获取客户是一个基本概念。 大数据根据您指定的物理模型选择客户&…

Ansible的filter

环境 控制节点&#xff1a;Ubuntu 22.04Ansible 2.10.8管理节点&#xff1a;CentOS 8 filter 使用filter可以对数据做操作&#xff0c;比如把JSON数据转换为YAML数据&#xff0c;从URL中解析出hostname&#xff0c;提取字符串的SHA1哈希值&#xff0c;做数学运算&#xff0c…

一、Hadoop3.1.3集群搭建

一、集群规划 hadoop01(209.2)hadoop02(209.3)hadoop03(209.4)HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNodeYARNNodeManagerResourceManager NodeManagerNodeManager NameNode和SecondaryNameNode不要放在同一台服务器上 二、创建用户 useradd atguigu passwd *…

【ArcGIS Pro二次开发】(76):面积平差工具

之前做过一个【三调土地利用现状分类面积汇总】的工具&#xff0c;在流程中使用了面积平差的方法。 考虑了在其它场合可能也需要进行面积平差&#xff0c;因此单独提取出来作为一个工具。 平差实现的方法如下图&#xff1a; 主要的计算过程如上图所示&#xff0c;算出总面积差…

【luckfox】3、计算重量差

前言 本章结合之前的hx711驱动&#xff0c;实现读取质量&#xff0c;记录时间及剩余质量并存入csv文件&#xff0c;计算质量差并总计。 代码 luckfox-pico\project\app\test_app\hx711\hx711_app_addtime.c #include <stdio.h> #include <stdlib.h> #include &…

MySQL数据库约束

目录 数据库约束 1.NULL约束 2.UNIQUE&#xff1a;唯一约束 3.DEFAULT&#xff1a;默认值约束 4.PRIMARY KEY&#xff1a;主键约束 5.FOREIGN KEY&#xff1a;外键约束 数据库约束 以下为本篇文章会介绍的约束 (1)NOT NULL - 指示某列不能存储 NULL 值。 (2)UNIQUE - …

带头双向循环链表

目录 一、结构定义 二、结点创建 三、头结点初始化 四、链表打印 五、尾插 六、头插 七、尾删 八、头删 九、查找&#xff08;返回结点&#xff09; 十、任意位置插入 十一、任意位置删除 十二、利用LTInsert写尾插函数 十三、利用LTInsert写头插函数 十四、利用…