头歌实践教学平台 Python程序设计 实训答案(三)

news2024/9/30 13:12:14

第七阶段 文件

实验一 文本文件的读取

第1关:学习-Python文件之文本文件的读取

任务描述
本关任务:使用 open 函数以只写的方式打开文件,打印文件的打开方式。

相关知识
为了完成本关任务,你需要掌握:

文本文件;
open 函数及其参数;
文件打开模式;
文件对象常用属性;
关闭文件 close 函数。

# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 使用 open 函数打开文件,打印文件的打开方式
f=open('src/step1/data.txt','w',encoding="utf8")
print('文件打开方式为:'+f.mode)
########## End ##########

实验二 文本文件的顺序读写

第1关:学习-Python文件之文本文件的顺序读写

任务描述
本关任务:给定一个文件 data.csv,内容如下:

Temperature data
----------------
Fahrenheit degrees: 67.2
请读取文件,获取文件中的数字内容。

相关知识
本关将介绍文件内容读写相关的函数:read,readable,readline,readlines,write,writable,writelines,完成本关任务时,需要使用其中的一部分。

########## Begin ##########
# 请使用 open 函数读取文件中的指定内容
f=open('src/step1/data.csv','r',encoding='utf8')
b=f.readlines()
a=b[-1]
c=a.find(':')
d=a[c+2:]
print('文件中的数字内容为:'+d)
########## End ##########

实验三 上下文管理语句with

第1关:学习-Python文件之上下文管理语句with

任务描述
本关任务:使用 with 语句读取文件中的每行的内容。

相关知识
为了完成本关任务,你需要掌握 with 语句的使用。

# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 使用 with 语句读取文件内容,并打印每一行内容的列表
i=input()
b='src/step1/file/'+i
with open(b,'r')as f:
    print(f.readlines())
########## End ##########

实验四 文本文件的随机读写

第1关:学习-Python文件之文本文件的随机读写

任务描述
本关任务:请读取文件,获取文件中的数字内容。

相关知识
文件的随机读写涉及到 seek、seekable、tell、truncate 四个函数,完成本关任务需要使用其中部分函数。

########## Begin ##########
# 请使用随机读取中的函数来完成本关
dai=input()
f=open(dai,'rb')
f.seek(-4,2)
print("文件中的数字内容为:"+str(f.read(),encoding="utf8"))
########## End ##########

实验五 目录访问

第1关:学习-Python文件之目录访问

任务描述
本关任务:使用 Python 中的 os 模块处理文件。

相关知识
本关将介绍 Python 的 os 模块中的常用函数以及 os.path 模块,完成本关任务需要使用到其中一部分。

# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 第一步:打印当前的工作路径
import os

# 第二步:打印当前目录下的所有文件以及文件夹的列表
print(os.getcwd())
print(os.listdir())

########## End ##########

实验六 Excel文件的读写(不做考试要求)

第1关:学习-Python文件之Excel文件的读写

任务描述
本关任务:读取 xls 文件中所有合并单元格的内容。

相关知识
为了完成本关任务,你需要掌握:

1、xlrd 模块;
2、xlwt 模块。

# 请在下面的 Begin-End 之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 使用 xlrd 模块读取每个合并单元格的内容并打印
import xlrd
bao=input()
data=xlrd.open_workbook(bao,formatting_info=True)
sheet1 = data.sheet_by_name("Sheet1")
for x in sheet1.merged_cells:
    print(sheet1.cell_value(x[0], x[2]))
########## End ##########

第八阶段 正则化与数字化

实验一 正则表达式

第1关:正则表达式基础知识

任务描述
本关任务:编写代码,通过re.findall()模块匹配内容。

相关知识
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,来筛选出符合这个规则的内容。

可以简单理解为:一个强大的搜索工具中,正则表达式就是你要搜索内容的条件表达式。

为了完成本关任务,你需要掌握:1.正则模块函数re.findall(),2.各种正则表达式元字符的含义。

import re
text = input()
#********** Begin *********#
#1.匹配字符单词 Love
print(re.findall(r'Love',text))
#2.匹配以 w 开头的完整单词
print(re.findall(r'\bw\w*\b',text))
#3.查找三个字母长的单词(提示:可以使用{m,n}方式)
print(re.findall(r'\b\w{3,3}\b',text))
#********** End **********#

第2关:re 模块中常用的功能函数(一)

任务描述
上一关我们已经接触了re.findall()函数,现在我们继续学习 Python 正则模块中常用的功能函数吧。

本关任务:编写代码,匹配相应的内容。

相关知识
为了完成本关任务,你需要掌握:1.compile()函数,2.match()函数,3.search()函数。

import re
text = input()
#********** Begin *********#
#1.用compile方法,匹配所有含字母i的单词
rr = re.compile(r'\w*i\w*')
print(rr.findall(text))

#2.在字符串起始位置匹配字符The是否存在,并返回被正则匹配的字符串
print(re.match('The',text).group())

#3.在整个字符串查看字符is是否存在,并返回被正则匹配的字符串
print(re.search('is',text).group())

#********** End **********#

第3关:re 模块中常用的功能函数(二)

任务描述
本关任务:编写代码,匹配相应的内容。

相关知识
为了完成本关任务,你需要掌握:
1.finditer()函数;
2.split()函数;
3.sub()函数;
4.subn()函数。

import re
text = input()
#********** Begin *********#
#1.匹配以t开头的所有单词并显示
itext = re.finditer(r'\bt\w*\b',text )
for i in itext:
    print(i.group())
#2.用空格分割句子
print(re.split(r'\s+',text ))
#3.用‘-’代替句子中的空格 
print(re.sub(r' ','-',text ))
#4.用‘-’代替句子中的空格,并返回替换次数
print(re.subn(' ','-',text ))
#********** End *********3*#

实验二 JSON与XML(不做考试要求)

第1关:JSON篇:JSON基础知识

任务描述
本关任务:手动编写一个 JSON 格式的数据文件。

相关知识
JSON 全称:JavaScript Object Notation(JavaScript 对象表示法),是一种轻量级的文本数据交换格式。与接下来要介绍的 XML 相比,拥有更小、更快、更易解析的特点。

{
    "students":[
        {"name":"赵昊","age":15,"ismale":true},
        {"name":"龙傲天","age":16,"ismale":true},
        {"name":"玛丽苏","age":15,"ismale":false}
    ],
    "count":3
}

第2关:JSON篇:使用json库

任务描述
本关任务:编写一个能读取并修改 JSON 数据的程序。

相关知识
json库是 Python 内置的一个用于操作 JSON 数据的库,提供了几个函数用于解析与生成(或者说反序列化与序列化)JSON 格式的数据。

import json

def Func():
    data = open("step2/2017.txt","r",encoding = "utf-8")

    obj = json.load(data)

    data.close()
    
    #********** Begin *********#
    infos=obj["infos"]
    for i in range(len(infos)):
        infos[i]['age']+=1
    infos.append({"name":"叶良辰" , "age":17 ,"height": 1.87, "sex" : "男性"})
    obj={"count":4,"infos":infos}

    #********** End **********#
    output = open("step2/2018.txt","w",encoding = "utf-8")
    json.dump(obj,output) #输出到文件
    output.close()

第3关:XML篇:XML基础知识

任务描述
本关任务:手动编写一个 XML 格式的数据文件。

相关知识
XML 全称可扩展标记语言(EXtensible Markup Language),是一种用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型。

<?xml version="1.0" encoding="utf-8"?>
<data count='3'>
<student name='赵昊' age='15' sex='男性'></student>
<student name='龙傲天' age='16' sex='男性'></student>
<student name='玛丽苏' age='15' sex='女性'></student>
</data>

第4关:XML篇:使用SAX库解析XML

任务描述
本关任务:解析 XML 文件,输出个人信息。

相关知识
SAX是一种基于事件驱动的 API,使用SAX解析 XML 时,主要分两个部分:解析器和事件处理器。

解析器
解析器负责读取 XML 文档,并向事件处理器发送事件,比如元素开始跟元素结束事件。
SAX提供了两个函数:parse和parseString。前者用于从文件中解析 XML 数据,后者用于从字符串中解析 XML 数据。

import xml.sax
class Handler(xml.sax.ContentHandler):
    #********** Begin *********#
    infostart = False
    def startElement(self,name,attrs):
        self.infostart = name == "info"
    def endElement(self,name):
        self.infostart = False
    def characters(self,content):
        if self.infostart:
            print(content)
    #********** End **********#                                 
def GetHandler():
    return Handler()

第5关:XML篇:使用ElementTree解析XML

任务描述
本关任务:设计一个查询个人信息的小程序。

ElementTree
xml.etree.ElementTree模块是一个轻量级的 DOM(文件对象模型),具有方便友好的 API。代码可用性好,速度快,消耗内存少。
ElementTree模块大致可以三部分:ElementTree类,Element类以及一些操作 XML 的函数。

import xml.etree.ElementTree as ET
class InfoManager:
    doc = None
    root = None
    def LoadInfo(self):
        self.doc = ET.parse("step5/data.xml")
        self.root = self.doc.getroot()
    def GetInfoCount(self):
        return int(self.root.get("count"))
    def GetAge(self,name):
        infos = self.root.findall("info")
        for s in infos: #搜索name属性与函数参数name的值相同的xml元素
            if s.get("name") == name:
                return int(s.get("age"))
        return 0 #随便返回一个值,评测代码不会有找不到的数据
    def GetDescription(self,name):
        infos = self.root.findall("info")
        for s in infos: #搜索name属性与函数参数name的值相同的xml元素
            if s.get("name") == name:
                return s.text
        return "" #随便返回一个值,评测代码不会有找不到的数据

        

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

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

相关文章

这 5 个自动化运维场景,可能用 Python 更香?

许多运维工程师会使用 Python 脚本来自动化运维任务。Python 是一种流行的编程语言&#xff0c;具有丰富的第三方库和强大的自动化能力&#xff0c;适用于许多不同的领域。 这里插播一条粉丝福利&#xff0c;如果你正在学习Python或者有计划学习Python&#xff0c;想要突破自我…

需求6:如何写一个后端接口?

这两天一直在对之前做的工作做梳理总结&#xff0c;不过前两天我都是在总结一些bug的问题。尽管有些bug问题我还没写文章&#xff0c;但是&#xff0c;我今天不得不先停下对bug的总结了。因为在国庆之后&#xff0c;我需要自己开发一个IT资产管理的功能&#xff0c;这个功能需要…

IDEA:Properties in parent definition are prohibited

问题背景 如果你在POM.xml中使用了自定义版本&#xff0c;那么IDEA就没办法很动态检测&#xff08;其实可以做到的&#xff0c;不是吗&#xff09;&#xff0c;就会有一个Properties in parent definition are prohibited 的错误信息&#xff08;禁止使用父级定义中的属性&…

2024 八九月份国内外CTF 散装re 部分wp

CTFZone silentDRM 附件拖入ida 最后部分很明显是比较。mmap和munmap函数的块大小为0x23280&#xff0c;比较大&#xff0c;暂时不管它。下断点动调&#xff0c;跳过v6和v7的分析部分&#xff0c;因为它是根据每五个字节的第一个字节生成的。直接看call v7 做运算后分为…

【博弈强化学习】——UAV-BS 的联合功率分配和 3D 部署:基于博弈论的深度强化学习方法

【论文】&#xff1a;Joint Power Allocation and 3D Deployment for UAV-BSs: A Game Theory Based Deep Reinforcement Learning Approach 【引用】&#xff1a;Fu S, Feng X, Sultana A, et al. Joint power allocation and 3D deployment for UAV-BSs: A game theory based…

基于Node.js+Express+MySQL+VUE科研成果网站发布查看科研信息科研成果论文下载免费安装部署

目录 1.技术选型‌ ‌2.功能设计‌ ‌3.系统架构‌ ‌4.开发流程‌ 5.开发背景 6.开发目标 7.技术可行性 8.功能可行性 8.1功能图 8.2 界面设计 8.3 部分代码 构建一个基于Spring Boot、Java Web、J2EE、MySQL数据库以及Vue前后端分离的科研成果网站&#xff0c;可…

PACS系统的延伸:三维重建后处理

影像中心PACS系统源代码&#xff0c;C#语言三发的PACS源码&#xff0c;三甲以下医院都能满足。 PACS系统即医学影像存档与通信系统&#xff0c;是医疗领域中不可或缺的信息技术系统。它主要负责医院内医学影像的数字化存储、管理、传输和显示&#xff0c;极大地促进了医疗影像信…

在线PDF怎么转换成JPG图片?分享14种转换操作!

作为一名社畜&#xff0c;俺也经常要将PDF转换为图片格式&#xff01; 如何进行快速转换&#xff0c;包括电脑端、在线端和手机端&#xff0c;今天俺就测评了50款工具&#xff0c;给你得出了下面这些渠道&#xff0c;不少也是免费的&#xff0c;相信对你有帮助哦&#xff01; …

springboot基于Vue的电影在线预定与管理系统

目录 毕设制作流程功能和技术介绍系统实现截图开发核心技术介绍&#xff1a;使用说明开发步骤编译运行代码执行流程核心代码部分展示可行性分析软件测试详细视频演示源码获取 毕设制作流程 &#xff08;1&#xff09;与指导老师确定系统主要功能&#xff1b; &#xff08;2&am…

VS Code调整字体大小

##在工程目录底下.vscode/settings.json添加设置参数 {"editor.fontSize": 15,"window.zoomLevel": 1.5 }

Coursera_ Algorithms I 学习笔记:Module_3_Analysis_of_Algorithm_Introduction

Coursera_ Algorithms I 学习笔记&#xff1a;Module_3_Analysis_of_Algorithm_Introduction scientific method applied to analysis of algorithms data analysis log-log plot doubling hypothesis experimental alogrithmics System independent effectsSystem dependen…

【CSS in Depth 2 精译_040】6.3 CSS 定位技术之:相对定位(下)—— 用纯 CSS 绘制一个三角形

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09;第二章 相对单位&#xff08;已完结&#xff09;第三章 文档流与盒模型&#xff08;已完结&#xff09;第四章 Flexbox 布局&#xff08;已…

Clocking System

文章目录 1. 介绍2. 时钟源2.1 scillator Circuit (OSC)2.1.1 外部时钟输入模式2.1.2 外部晶体/陶瓷谐振器模式2.1.3 振荡器的配置2.1.4 Oscillator Watchdog 2.2 Back-up Clock 3. 锁相环&#xff08;PLL&#xff09;3.1 系统锁相环3.1.1 Features3.1.2 框图 3.2.外设锁相环3.…

JAVA云洋系统聚合快递打造一站式快递系统小程序源码

云洋系统聚合快递 —— 打造一站式快递管理新体验 &#x1f680; 一站式快递管理新时代 在快节奏的现代生活中&#xff0c;快递已经成为我们日常不可或缺的一部分。然而&#xff0c;面对众多快递公司和复杂的物流信息&#xff0c;如何高效管理快递成为了许多人的难题。幸运的是…

基于SpringBoot大学生就业管理系统设计与实现

1.1 研究背景 科学技术日新月异的如今&#xff0c;计算机在生活各个领域都占有重要的作用&#xff0c;尤其在信息管理方面&#xff0c;在这样的大背景下&#xff0c;学习计算机知识不仅仅是为了掌握一种技能&#xff0c;更重要的是能够让它真正地使用到实践中去&#xff0c;以…

从“抄袭”到“原创”:5个超实用的论文降重技巧!

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 每当写完一篇论文&#xff0c;松了一口气准备庆祝时&#xff0c;突然想到还有一个名叫“查重”的终极大Boss等着你&#xff0c;瞬间心情从云端跌入谷底。 是不是你&#xff1f; 很多同学在提交之前&#…

CDGA|利用人工智能与边缘计算显著提升数据治理效率与效果的实践案例

在当今数字化转型的浪潮中&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;随着数据量的爆炸性增长&#xff0c;如何高效、安全地治理这些数据成为企业面临的重要挑战。人工智能&#xff08;AI&#xff09;与边缘计算技术的融合&#xff0c;为数据治理带来了前所…

《程序猿之Redis缓存实战 · 哈希类型》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

《ToDesk 云电脑、易腾云、青椒云移动端体验实测:让手机秒变超级电脑》

前言 科技发展到如今2024年&#xff0c;可以说每一年都在发生翻天覆地的变化。云电脑这个市场近年来迅速发展&#xff0c;无需购买和维护额外的硬件就可以体验到电脑端顶配的性能和体验&#xff0c;并且移动端也可以带来非凡体验。我们在外出办公随身没有携带电脑情况下&#x…

聊一聊大模型六小虎生存现状!

ChatGPT横空出世&#xff0c;打响了生成式AI创业热潮的发令枪。 在国内&#xff0c;智谱AI、百川智能、零一万物、月之暗面、Minimax率先领跑。今年6月&#xff0c;前微软全球副总裁姜大昕创办的阶跃星辰&#xff0c;开始受到资本的青睐&#xff0c;一轮20亿美元的融资&#x…