Python自定义函数练习(持续更新中~)

1.计算矩阵的面积和周长:

class Rectangle:def __init__(self, width, height):self.width = widthself.height = heightdef area(self):return self.width * self.heightdef perimeter(self):return 2 * (self.width + self.height)if __name__ == "__main__":rectangle = Rectangle(5, 10)print("矩形面积:", rectangle.area())print("矩形周长:", rectangle.perimeter())

2.将矩阵转置后,计算该矩阵与另一个矩阵的和并返回一个新的矩阵对象。

class Matrix:def __init__(self,data):self.data=data#矩阵转置def transpose(self):rows=len(self.data)cols=len(self.data[0])transpose_data=[[0 for _ in range(rows)]for _ in range(cols)]for i in range(rows):for j in range(cols):transpose_data[j][i]=self.data[i][j]return Matrix(transpose_data)#计算两矩阵之和def add(self,other_matrix):rows=len(self.data)cols=len(self.data[0])if rows !=len(other_matrix.data) or cols != len(other_matrix.data[0]):raise ValueError("两个矩阵维度不一致")result_data=[[0 for _ in range(cols)]for _ in range(rows)]for i in range(rows):for j in range(cols):result_data[i][j]=self.data[i][j]+other_matrix.data[i][j]return Matrix(result_data)if __name__ == "__main__":matrix1=Matrix([[1,2,3],[4,5,6]])matrix2=Matrix([[7,8,9],[10,11,12]])print("矩形1的转置:")transposed_matrix1=matrix1.transpose()for row in transposed_matrix1.data:print(row)print("矩阵1和矩阵2的和:")sum_matrix=matrix1.add(matrix2)for row in sum_matrix.data:print(row)

3.栈的基本操作

class Stack:def __init__(self):self.items = []def push(self, item):self.items.append(item)def pop(self):if self.is_empty():raise ValueError("栈为空")return self.items.pop()def is_empty(self):return len(self.items) == 0if __name__ == "__main__":stack = Stack()stack.push(1)stack.push(2)stack.push(3)while not stack.is_empty():print(stack.pop())

4.链表的基本操作

class Node:def __init__(self, value):self.value = valueself.next = Noneclass LinkedList:def __init__(self, head=None):self.head = headdef insert(self, value):new_node = Node(value)if self.head is None:self.head = new_nodeelse:current = self.headwhile current.next is not None:current = current.nextcurrent.next = new_nodedef delete(self, value):if self.head is None:returnif self.head.value == value:self.head = self.head.nextreturncurrent = self.headwhile current.next is not None:if current.next.value == value:current.next = current.next.nextreturncurrent = current.nextdef traverse(self):current = self.headwhile current is not None:print(current.value)current = current.nextif __name__ == "__main__":linked_list = LinkedList()linked_list.insert(1)linked_list.insert(2)linked_list.insert(3)linked_list.delete(2)linked_list.traverse()

5.队列的基本操作

class Queue:def __init__(self):self.items = []def is_empty(self):return len(self.items) == 0def enqueue(self, item):self.items.append(item)def dequeue(self):if not self.is_empty():return self.items.pop(0)#对于栈的操作为:self.items.pop()def size(self):return len(self.items)if __name__ == "__main__":q = Queue()print(q.is_empty())  # Trueq.enqueue(1)q.enqueue(2)q.enqueue(3)print(q.size())  # 3print(q.dequeue())  # 1print(q.dequeue())  # 2print(q.size())  # 1

6.Histogram类封装直方图

(1)定义带一个整数参数n的构造函数,用于初始化存储数据的列表,列表长度为n,列表各元素的初始值为0.

(2)定义实例对象方法addDataPoint(self,i),用于增加一个数据点

(3)定义用于计算数据点个数之和、平均值、最大值、最小值的实例对象方法,即count()、mean()、max()、min()。

(4)定义用于绘制简单直方图的实例对象方法draw()

import randomclass Histogram:def __init__(self,n):self.__numlist=[]for i in range(n):self.__numlist.append(0)#print(self.__numlist)def addDataPoint(self,i):self.__numlist[i]+=1def count(self,data_account):return data_accountdef mean(self,data_account,List_account):a=data_account/List_accountreturn (a)def Max(self):return max(self.__numlist)def Min(self):return min(self.__numlist)def draw(self):for i in range(len(self.__numlist)):print("{}:".format(i),end="")for j in range(self.__numlist[i]):print("#".format(i),end="")print("")if __name__=="__main__":List_account=10#规定numlist的大小histogram=Histogram(List_account)Data_account=100for i in range(0,Data_account):#生成0~99一百个数字random_number=random.randint(0,9)#随机生成0~9histogram.addDataPoint(random_number)#将生成的随机数放到列表中print("数据点个数的个数:{}".format(Data_account))print("数据点个数的平均值:{}".format(histogram.mean(Data_account, List_account)))print("数据点个数的最大值{}".format(histogram.Max()))print("数据点个数的最小值{}".format(histogram.Min()))histogram.draw()

结果:

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

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

相关文章

深入理解JS中的this

1、浅谈this 1.1、调用位置 在学习this的绑定过程之前,首先要理解调用位置,即函数在代码中被调用的位置,因此我们需要分析调用栈,看以下代码 function baz(){// 当前调用栈是baz// 因此调用位置就是全局作用域console。log(&qu…

财务RPA机器人如何使用

随着科技的不断发展,自动化技术在各个领域得到了广泛应用,在财务领域,RPA机器人已经成为一种新兴的技术手段,帮助众多企业实现了财务流程的自动化,大大提高了工作效率,降低人力成本。 本文将详细介绍财务RP…

AtCoder Beginner Contest 327 G. Many Good Tuple Problems(带标号二分图计数+有区别小球放入有区别盒子)

题目 一个长为n(n<30)的原始序列x&#xff0c;x[i]可以取值0或1 一个长为m(m<1e9)的点对序列(s,t)&#xff0c; s序列第i项和t的第i项&#xff0c;均可以取值[1,n]&#xff0c; 如果构造好s和t后&#xff0c;对任意都存在01序列x使得&#xff0c; 则称这个序列是合法…

【RabbitMQ】 RabbitMQ 消息的延迟 —— 深入探索 RabbitMQ 的死信交换机,消息的 TTL 以及延迟队列

文章目录 一、死信交换机1.1 什么是死信和死信交换机1.2 死信交换机和死信队列的创建方式 二、消息的 TTL2.1 什么是消息的 TTL2.2 基于死信交换机和 TTL 实现消息的延迟 三、基于 DelayExchang 插件实现延迟队列3.1 安装 DelayExchang 插件3.2 DelayExchang 实现消息延迟的原理…

MySQL5.7小版本升级-In-Place方式

在 Centos7.9上升级二进制方式安装的MySQL 。升级方式有就地升级和逻辑升级2种方法&#xff0c;本实验演示In-Place Upgrade就地升级的方式将mysql-5.7.17升级至5.7.44 In-Place Upgrade就地升级Logical Upgrade逻辑升级 升级方式介绍 In-Place Upgrade就地升级 In-Place U…

perl列表创建、追加、删除

简介 perl 列表追加元素 主要是通过push和unshift函数来实现。其中&#xff0c;push是追加到列表尾&#xff0c;unshift是追加到列表头。 perl列表删除元素 主要是通过pop和shift函数来实现。其中&#xff0c;pop是从列表尾删除一个元素&#xff0c; shift是从列表头删除一…

6大场景,玩转ChatGPT!

文章目录 一、故事叙述提问举例 二、产品描述提问举例 三、报告撰写提问举例 四、邮件和信件撰写提问举例 五、新间稿和公告撰写提问举例 六、学术论文和专业文章撰写提问举例 本文是在GPT3.5版本下演示的 我们知道AI技术不仅能够自动生成文章和内容&#xff0c;还可以根据我们…

【大数据】NiFi 中的重要术语

NiFi 中的重要术语 1.Flow Controller2.Processor3.Connection4.Controller Service5.Process Group6.FlowFile 那些一个个黑匣子称为 Processor&#xff0c;它们通过称为 Connection 的队列交换名为 FlowFile 的信息块。最后&#xff0c;FlowFile Controller 负责管理这些组件…

软考高级系统架构设计师系列之:软考高级系统架构设计师论文专题

软考高级系统架构设计师系列之:软考高级系统架构设计师论文专题 一、论文相关内容二、论文专题大纲三、论文考试方式四、历年真题汇总分析五、论文常见问题六、论文评分标准七、搭建论文万能模版八、论文万能模版公式九、搭建论文万能模版—摘要十、搭建论文万能模版—背景十一…

XSAN数据恢复-存储空间架构迁移时误格式化存储系统的XSAN数据恢复案例

XSAN数据恢复环境&#xff1a; 昆腾存储&#xff0c;MAC OS操作系统&#xff0c;存放视频类数据&#xff08;MXF、MOV等格式文件&#xff09;。 XSAN故障&检测&#xff1a; 将存储空间从XSAN架构迁移到STORNEXT架构后&#xff0c;存储空间中数据全部丢失。 故障存储中一共…

Oracle常用运维SQL-SQL执行性能及锁表等查询分析

oracle相关系列文章: docker–在Anaconda jupyter 容器中使用oracle数据源时,Oracle客户端安装配置及使用示例 Oracle常用运维SQL–用户管理、数据导入、导出的实用脚本 Oracle TEMPORARY TABLE 临时表的使用及删除报ORA-14452错误的解决办法 Oracle常用运维SQL-SQL执行性能及…

R 复习 菜鸟教程

R语言老师说R好就业&#xff0c;学就完了 基础语法 cat()可以拼接函数&#xff1a; > cat(1, "加", 1, "等于", 2, \n) 1 加 1 等于 2sink()&#xff1a;重定向 sink("r_test.txt", splitTRUE) # 控制台同样输出 for (i in 1:5) print(i…

蓝桥杯官网填空题(方格计数)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff0c;在二维平面上有无数个 11 的小方格。 我们以某个小方格的一个顶点为圆心画一个半径为 50000 的圆。 你能计算出这个圆里有多少个完整的小方…

【星海出品】VUE(五)

表单 表单输入绑定 只需要v-model声明一下这个变量就可以。 还可以选择不同的类型&#xff0c;例如 type"checkbox“ v-model 也提供了 lazy、number、.trim 功能&#xff0c;只需要在v-model后面加入.lazy 例如&#xff1a;v-model.lazy”message“ <template><…

Azure 机器学习 - 设置 AutoML 训练时序预测模型

目录 一、环境准备二、训练和验证数据三、配置试验支持的模型配置设置特征化步骤自定义特征化 四、可选配置频率和目标数据聚合启用深度学习目标滚动窗口聚合短时序处理非稳定时序检测和处理 五、运行试验六、用最佳模型进行预测用滚动预测评估模型精度预测未来 七、大规模预测…

Flink源码解析八之任务调度和负载均衡

源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…

css主题切换

html <!DOCTYPE html> <html> <head><title>主题切换示例</title> </head> <body><div class"app"><button id"themeButton">切换主题</button><div class"content"><h1…

已完结,给小白的《50讲Python自动化办公》

大家好&#xff0c;这里是程序员晚枫&#xff0c;小红薯也叫这个名。 写在前面 上个周末去成都参加了第8届中国开源年会&#xff0c;认识了很多行业前辈和优秀的同龄人。 我发现在工作之外还能有一番事业的人&#xff0c;都有一个让我羡慕的共同点&#xff1a;有一个拿得出手…

【Go】-调用企微机器人

没有什么好讲的&#xff0c;直接贴代码&#xff0c;消息格式我用的markdown。 sendMsg.go&#xff1a; package mainimport ("flag""fmt""github.com/goccy/go-json""github.com/tidwall/gjson""io/ioutil""net/http…

C++笔记之表驱动法

C笔记之表驱动法 code review! 文章目录 C笔记之表驱动法0.数组小技巧1.std::map实现2.结构体实现3.数组和结构体结合实现表驱动法-存储函数指针4.表驱动法概念-ChatGPT5. 直接访问表&#xff08;Direct Access Table&#xff09;的示例6. 索引访问表&#xff08;Indexed Acc…