Python练习

  • 题目1
    • 要求
    • 实现步骤:
    • 测试结果:
  • 题目2
    • 要求
    • 实现步骤:
  • 题目3
    • 要求
    • 实现步骤:
  • 题目4
    • 要求
    • 实现步骤:
      • 链表做法:
      • 非链表做法:
  • 题目5
    • 要求
    • 实现步骤:
  • 实验收获:

题目1

要求

有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并 (按字母顺序排列), 输出到一个新文件C中。
(注:运行以上程序前,你需要在脚本执行的目录下创建 test1.txt、test2.txt 文件)

实现步骤:

  1. 在执行目录下创建test1.txt和test2.txt两个文件,放入一行打乱顺序的字母。
# 读取test1.txt的内容
test1 = open("test1.txt", "r")
str1 = test1.read()
print(str1)
# 读取test2.txt的内容
test2 = open("test2.txt", "r")
str2 = test2.read()
print(str2)
  1. 读取两个目录中文件的内容,并将得到了两个字符串拼接在一起。再将字符串中的每个字母对应于字母表中位置,构造一个位置数组存储这些字母的位置信息。
#构建字母表序列
English = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Str = str1 + str2
  1. 将位置数组进行sort排序,即可得到一个新的数组,根据新数组可以直接从字母序列中取出对应字母,组成一个排序后的字符串。
# 按字母顺序排列
Number=[]
for i in range(len(Str)):idx = English.index(Str[i])Num = Number.append(idx)
Number.sort()
# print("Number:",Number)string = ""
for i in range(len(Number)):string = string + English[Number[i]]# print("string=",string)
  1. 将这个字符串写入到一个myfile.txt文件中(若目录下没有,则自动创建)。
f = open("myfile.txt", "w")
f.write(string)
f = open("myfile.txt", "r")
print(f.read())
f.close()

测试结果:

题目2

要求

创建一个名为names的空列表,往里面按顺序添加 Lihua、Rain、Jack、Xiuxiu、Peiqi和Black共6个元素。再分别按照如下3个要求对names进行操作(每个操作不相关):

  1. 往names列表里Black前面插入一个Blue,后面插入White,输出names列表;
  2. 把names列表中Xiuxiu的名字替换成“秀秀”,并输出names列表;
  3. 创建新列表[1,2,3,4,2,5,6,2],将新列表元素追加到names列表末尾,并输出names列表;取出names列表中索引2-10的元素,步长为2,打印所取出的元素。

实现步骤:

  1. 创建一个名为names的空列表,往里面按顺序添加 Lihua、Rain、Jack、Xiuxiu、Peiqi和Black共6个元素(可以用到列表方法中的append函数)。
  2. 往names列表里Black前面插入一个Blue,后面插入White,输出names列表。首先需要确定“Black”在列表中位置(可以采用列表方法中的index函数),然后根据其位置,将指定内容进行插入(可以采用列表方法中的insert函数)。
  3. 把names列表中Xiuxiu的名字替换成“秀秀”,并输出names列表。可以考虑先确定“Xiuxiu”在列表中的位置,在其后面添加“秀秀”元素,再删去“Xiuxiu”即可。
  4. 创建新列表[1,2,3,4,2,5,6,2],将新列表元素追加到names列表末尾,并输出names列表;取出names列表中索引2-10的元素,步长为2,打印所取出的元素。

题目3

要求

定义一个字典。其中键是字符串,描述清单中的物品,值是一个整型值,说明玩家有多少该物品。例如,字典值{ ‘arrow’: 12, ‘gold coin’: 42,‘rope’: 1, ‘torch’: 6, ‘dagger’: 1}。写一个名为 displayInventory()的函数,参数是字典,打印输出物品个数和物品名称,并统计物品总数量。(输出格式参考下图)

实现步骤:

  1. 按照题目要求,定义一个字典如下。

  2. 写一个displayInventory()的函数,参数是字典,打印输出物品个数和物品名称,并统计物品总数量。

题目4

要求

给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以 0开头。

存储结构:

class ListNode(object):def __init__(self, val=0, next=None):self.val = valself.next = next

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

实现步骤:

链表做法:

  1. 实现类的实现,构造类内的函数如下:
class ListNode(object):def __init__(self, val=0, next=None):self.val = valself.next = next# 将类的内容按照数组的方式输出def Display(self):list = []p = self.nextwhile (p):list.append(int(p.val))p = p.nextprint(list)# 获取该列表对应的数def GetNumber(self):number = 0p = self.nextq = 1while (p):number = number + p.val * qp = p.nextq = q * 10return number
  1. 根据输入创造出两个链表,然后利用GetNumber函数将链表转化为具体的数,将这两个链表转换成的数相加起来,得到一个新数。
head1 = ListNode(0, None)
p = head1
for i in range(len(l1)):if l1[i] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]:newnode = ListNode(int(l1[i]), None)p.next = newnodep = p.nexthead2 = ListNode(0, None)
q = head2
for i in range(len(l2)):if l2[i] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]:newnode = ListNode(int(l2[i]), None)q.next = newnodeq = q.nextnum1 = head1.GetNumber()
num2 = head2.GetNumber()
num = num1 + num2
  1. 将这个新数重新生成链表,适用链表中的Display函数将其按照数组的方式进行输出。
string = str(num)
head = ListNode(0, None)
h = head
for i in range(len(string)):newnode = ListNode(num % 10, None)h.next = newnodeh = h.nextnum = (num - num % 10) / 10head.Display()

非链表做法:

  1. 首先输入两个数组l1和l2。
  2. 判断输入的内容中那些字符是数字字符,然后转换成int类型,形成两个int类型的数组。
  3. 将两个数组按照“个”、“十”、“百”、“千”的顺序计算出一个数,将这两个数加起来,得到一个新数。
  4. 将这个数再按照“个”、“十”、“百”、“千”的顺序构成一个int类型的数组,并输出结果即可。

题目5

要求

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。

示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。

示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

实现步骤:

采用KMP算法实现即可。
测试代码如下:

实验收获:

因为之前自学过一些Python的知识,所以这次实验对以前的知识点巩固加强了一下,也让我对语法的掌握更加熟悉,丰富并完善了Python基础编程的代码库,巩固了Python的数据结构,熟悉了对Python数组、链表、类、字符串、数据的读取和写入等操作。实验收获颇深。
同时,也熟悉了Kaggle、天池等数据挖掘网站的适用方式,能够适用线上编译器来进行代码的实验,创建云数据库和调用公开数据集参加线上赛事与活动等。后期会通过这些平台来提高自己的编程能力和算法能力。

数据挖掘导论实验报告01相关推荐

  1. 计算机导论实验论文,计算机导论实验报告.doc

    计算机导论实验报告 课内实验报告 课程名称: 班 级: 学 号: 学生姓名: 任课教师: 2016年 9月 12日 实 验 报 告 实验名称实验1 熟悉计算机环境及输入法练习开关主机开关实 验 结 论 ...

  2. 软件工程导论-实验报告-软件测试

    软件工程导论-实验报告-软件测试 [问题描述] 一元二次方程式 ax2+bx+c=0的求根程序有以下功能: 1)输入A.B.C三个系数: 2)根据根的性质的:两个相等或不相等的实根,或无实根,输出相应 ...

  3. [软工导论③]实验报告三(机票预订系统的需求分析建模、总体结构设计、详细设计、测试))

    [软工导论③]实验报告二(教务管理系统之子系统的需求分析建模.总体结构设计.详细设计.测试)) 实验一 机票预订系统的需求分析 一.目的与任务 目的:确定项目要做什么及其可实施性,在此基础上完成系统的 ...

  4. 软件工程导论实验报告二(类图设计)

    软件工程导论实验报告 实验二 类图设计 2.实验目的 (1)掌握绘制类图的基本步骤: (2)掌握识别类的方法. 3.实验内容 利用StarUML或其它UML绘图工具,绘制系统中的类图. (1)图书管理 ...

  5. c语言程序设计编辑与调试环境实验报告,01程序设计基础实验报告_C语言程序设计基础.doc...

    01程序设计基础实验报告_C语言程序设计基础 程序设计基础 实验报告 题 目: C语言程序设计基础 院 (部): 管理工程学院 专 业: 信息管理与信息系统 班 级: 信管101 姓 名: 张三 学 ...

  6. 计算机网络互联网技术实验报告,2013计算机网络技术与应用.实验报告01

    本报告 6 月 5 日前完成. 此框阅读后删除. 此处填写:年级和姓名. <计算机网络技术与应用>实验报告 此框阅读后删除. 年级.专业.班级 实验题目 实验时间 实验成绩 2013.4. ...

  7. 计算机主机拆卸心得,1计算机硬件拆装实验报告(01)

    计算机组装过程实验报告 院系: 班级:姓名:学号: [实验目的] 组装一台计算机.认识了解主板.CPU.CPU风扇.内存.显卡.声卡(主板中都有板载声卡,除非用户特殊需要).光驱(VCD或DVD).机 ...

  8. 合肥工业大学2020-2021学年《数据挖掘》实验报告(Python实现)

      实验2的报告抄袭自报告,存粹是为了完成作业,不带任何商业目的.侵删! 文章目录 1 实验1:基于UCI soybean Dataset的分类任务 1.1 实验目的 1.2 实验任务 1.3 实验环 ...

  9. 软件工程导论——实验报告

    实验题目 系统需求分析 实验目的 1.      掌握UML中的业务过程模型.用例模型. 2.      熟悉一种UML建模工具. 实验要求 学会UML业务过程模型.用例模型建模方法 实验任务 任务一 ...

  10. 计算机体系结构实验报告

    电子科技大学2021计算机体系结构课程实验.内容仅供学习参考使用,请勿抄袭. 实验一 单周期 CPU 代码分析 实验内容 认真阅读并分析所给的单周期CPU代码,掌握单周期CPU电路结构中各模块的工作原 ...

最新文章

  1. python中的del,remove,pop有什么区别
  2. python练习笔记——分解质因数
  3. Magicodes.IE 在100万数据量下导入导出性能测试
  4. html浏览器的区别是什么意思,不同浏览器对css的识别有区别吗?
  5. Shell第二篇:正则表达式和文本处理工具
  6. 自动挡跑高速用S挡还是D挡? 回答
  7. 7 php 内存泄漏_APP内存优化之内存泄漏
  8. 使用windows 命令行创建一个空的文本文件
  9. 嵌入式系统的性能评价
  10. 前端-html实现省份、地市、区县三级联动
  11. SceneFlow Dataset
  12. 深入解析内存原理:DRAM的基本原理
  13. win7设置文件夹共享 win7共享文件夹
  14. 新概念英语一 : 语法整理 unit1 1-18
  15. 元核云赋能银行业,智能双录产品助力银保业务合规高效响应
  16. 每晚夜里自我独行,随处荡,多冰冷,以往为了自我挣扎
  17. maya建模与骨骼动画快速实现人工鱼
  18. 关于无损APE,FLAC转AAC的小技巧
  19. golang学习笔记(十六):多态的实现
  20. SQLyog的下载安装与配置(转载)

热门文章

  1. Well-ordered String
  2. 图计算论文笔记--SPARC: Self-Paced Network Representation for Few-Shot Rare Category Characterization
  3. Eclipse中无法输入中文
  4. winsxs文件夹可以删除吗?具体清理操作如下
  5. Apache POI 之 初学实战篇 (四) --- 文本对齐
  6. Sutton reinforcement learning _ Chapter 2 Multi-armed Bandits
  7. 我见过最“骚”的代码注释!神兽版都来了
  8. oracle为什么主键不唯一,Oracle GoldenGate 针对表没有主键或唯一索引的解决方案
  9. C#贪吃蛇游戏(全代码)
  10. [ZT]毁人不倦的应试教育(2)