python实验二 函数与类的应用

实验二

实验题目

1、请编写一个函数SDSearch(txt, word),其中,txt是一段文本,word是给定的词汇,函数SDSearch可以找到word在txt中的所有位置,并将它们做为返回值返回,编写函数main()调用SDSearch(txt, word),输出SDSearch(txt, word)返回结果。(提示:find(字符串,查找的起始位置))

【代码】

def SDSearch(txt, word):
positions = []
start = 0
while True:
index = txt.find(word, start)
if index == -1:
break
positions.append(index)
start = index + len(word)
return positions

def main():
txt = input(“请输入文本:”)
word = input(“请输入词汇:”)
result = SDSearch(txt, word)
if result:
print(f"‘{word}’ 在文本中的位置:{result}“)
else:
print(f"文本中没有找到 ‘{word}’”)
main()

【实例】
在这里插入图片描述
在这里插入图片描述

2、编写函数SDrepCount(txt, word, repword),其中,txt是一段文本,word是给定的将要被替换词汇,repword是给定替换的词汇,SDrepCount(txt, word, repword)可以用repword替换txt中出现的所有word,并返回替换的次数。编写函数main()调用SDrepCount(txt, word, repword),输出SDrepCount(txt, word, repword)返回结果。

【代码】

def SDrepCount(txt, word, repword):

count = 0

while txt.find(word) != -1:

​ txt = txt.replace(word, repword, 1)

​ count += 1

return count

def main():

txt = input(“请输入文本:”)

word = input(“请输入将要被替换的词汇:”)

repword = input(“请输入替换的词汇:”)

count = SDrepCount(txt, word, repword)

if count > 0:

​ replaced_txt = txt.replace(word, repword)

​ print(f"‘{word}’ 已被替换为 ‘{repword}’,替换次数:{count} 次")

​ print(“替换后的文本:”, replaced_txt)

else:

​ print(f"文本中没有找到 ‘{word}’")

main()

【实例】

在这里插入图片描述

在这里插入图片描述

3、请编写一个函数SDfindChinese(txt),其中,txt是一段文本,函数SDfindChinese可以从txt中找到所有中文,拼接成句子并将其返回。编写函数main()调用SDfindChinese(txt),输出SDfindChinese(txt)返回结果。

【代码】

import re

def SDfindChinese(txt):

pattern = re.compile(‘[\u4e00-\u9fa5]’)

chinese_chars = re.findall(pattern, txt)

chinese_sentence = ‘’.join(chinese_chars)

return chinese_sentence

def main():

txt = input(“请输入文本:”)

chinese_sentence = SDfindChinese(txt)

print(“中文句子:”, chinese_sentence)

main()

【实例】

在这里插入图片描述
在这里插入图片描述

4、请编写一个类SDWordTools,要求如下:

(1)建立该类的构造函数__init__(self, txt),其中txt为传入的文本

(2)建立该类的析构函数__del__(self),输出“感谢使用的字样”

(3)将实验报告题目1,2修改后,变为该类的成员函数

(4)设计一个函数Main(),在该函数中调用声明了SDWordTools的对象,并调用了它的所有方法

【代码】

import re

class SDWordTools:

def init(self, txt):

​ self.txt = txt

def del(self):

​ print(“感谢使用”)

def SDSearch(self, word):

​ positions = []

​ start = 0

​ while True:

​ index = self.txt.find(word, start)

​ if index == -1:

​ break

​ positions.append(index)

​ start = index + len(word)

​ return positions

def SDrepCount(self, word, repword):

​ count = 0

​ while self.txt.find(word) != -1:

​ self.txt = self.txt.replace(word, repword, 1)

​ count += 1

​ return count

def Main():

txt = input(“请输入文本:”)

tools = SDWordTools(txt)

word = input(“请输入要查找的词汇:”)

positions = tools.SDSearch(word)

if positions:

​ print(f"‘{word}’ 在文本中的位置:{positions}")

else:

​ print(f"文本中没有找到 ‘{word}’")

word = input(“请输入将要被替换的词汇:”)

repword = input(“请输入替换的词汇:”)

count = tools.SDrepCount(word, repword)

if count > 0:

​ replaced_txt = tools.txt

​ print(f"‘{word}’ 已被替换为 ‘{repword}’,替换次数:{count} 次")

​ print(“替换后的文本:”, replaced_txt)

else:

​ print(f"文本中没有找到 ‘{word}’")

Main()

【实例】

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5、请编写一个类SDWordToolsEx,要求如下:

(1)该类继承于类SDWordTools,包含了SDWordTools所有功能

(2)将实验题目3所编写的函数加入到SDWordToolsEx

(3)设计一个函数Main(),在该函数中调用声明了SDWordToolsEx的对象,并调用了它的所有方法,包括从SDWordTools继承来的方法

【代码】

class SDWordToolsEx(SDWordTools):

def init(self, txt):

​ super().init(txt)

def SDrepCount(self, word, repword):

​ count = 0

​ while self.txt.find(word) != -1:

​ self.txt = self.txt.replace(word, repword, 1)

​ count += 1

​ return count

def SDfindChinese(self):

​ pattern = re.compile(‘[\u4e00-\u9fa5]’)

​ chinese_chars = re.findall(pattern, self.txt)

​ chinese_sentence = ‘’.join(chinese_chars)

​ return chinese_sentence

def Main():

txt = input(“请输入文本:”)

tools = SDWordToolsEx(txt)

word = input(“请输入要查找的词汇:”)

positions = tools.SDSearch(word)

if positions:

​ print(f"‘{word}’ 在文本中的位置:{positions}")

else:

​ print(f"文本中没有找到 ‘{word}’")

word = input(“请输入将要被替换的词汇:”)

repword = input(“请输入替换的词汇:”)

count = tools.SDrepCount(word, repword)

if count > 0:

​ replaced_txt = tools.txt

​ print(f"‘{word}’ 已被替换为 ‘{repword}’,替换次数:{count} 次")

​ print(“替换后的文本:”, replaced_txt)

else:

​ print(f"文本中没有找到 ‘{word}’")

chinese_sentence = tools.SDfindChinese()

print(“中文句子:”, chinese_sentence)

Main()

【实例】
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Elastic 基于 RAG 的 AI 助手:利用 LLM 和私有 GitHub 问题分析应用程序问题

作者:来自 Elastic Bahubali Shetti 作为 SRE,分析应用程序比以往更加复杂。 你不仅必须确保应用程序以最佳状态运行以确保良好的客户体验,而且还必须了解某些情况下的内部工作原理以帮助排除故障。 分析基于生产的服务中的问题是一项团队运动…

[Linux]如何在Ubuntu 22.04系統安裝Node-red?

Node-red是一個建立在Node.js上的視覺化程式設計工具,其常見的應用情境為建置或轉換各項硬體之間的通信協定的物聯網或工聯網場域,其可藉由設置來安裝第三方應用模組來建置多樣的通信協定節點,包含modbus in/out, mqtt in/out, websocket in/…

NeRF算法

目录 算法介绍 基本原理 1. 体渲染 2. 多层感知机(MLP) 3. 位置编码 4. 两阶段层次化体采样 实验展示 代码解析 算法介绍 NeRF(Neural Radiance Fields)是一种用于从2D图像中重建3D场景的神经网络模型。它通过训练一个深度…

多态的原理

前言:以下的内容均是在VS2019的环境中,32位平台下的 目录 1.多态的实现条件 虚函数重写的两个例外 一个题加深理解 总结 重载 重写 重定义区别 2.多态的实现原理 单继承 多继承 动态多态和静态多态 多态的好问题 1.多态的实现条件 虚函数:被…

2-6 任务 猜数小游戏(单次版)

本任务要求编写一个猜数小游戏(单次版),游戏规则是计算机产生一个0到100之间的随机整数,用户通过输入猜测的数字进行猜测,根据猜测情况给出提示,直到猜对为止。编程思路是利用while循环和多分支结构实现永真…

ESP-WROOM-32配置Arduino IDE开发环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、下载Arduino IDE二、安装工具集三、测试样例1.选则开发板2.连接开发板3.示例程序 四、使用官方示例程序总结 前言 之前用了很多注入STM32、树莓派Pico和Ar…

用Rust解决鸡兔同笼问题

目录 一、什么是鸡兔同笼问题? 二、用Rust解决鸡兔同笼问题 三、鸡兔同笼问题在实际生活中的应用有哪些? 一、什么是鸡兔同笼问题? 鸡兔同笼问题是一种古代著名的数学问题,用于训练逻辑思维和解决方程的能力。 鸡兔同笼问题起…

ssm105基于JAVAEE技术校园车辆管理系统+jsp

校园车辆管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园车辆管理系统就是在这样的大环境下诞生,其可以帮助管理者在短…

SpringBoot中使用RocketMQ实现事务消息来保证分布式事务的一致性(有代码)

前言 分布式事务是分布式系统中非常常见的问题。是非常必要钱常见的。实现的方式也是多种多样。今天这个视频主要来分享一下RocketMQ实现事务消息来保证分布式事务的一致性。不知道大家使用过这种方式没有。这种分布式事务的原理其实和本地消息表一样。 本地消息表实现分布式…

ARM(2)ARMv8基础知识

目录 一、异常 1.1异常等级的定义 1.2异常的种类 1.2.1同步异常和异步异常 1.3改变异常等级 1.4异常后的处理 1.4.1异常处理相关寄存器 1.4.2系统调用 1.4.3对EL2/EL3的系统调用 1.4.4异常返回 1.4.5异常处理流程 二、安全状态 三、执行状态 本文介绍以下内容&…

javaWeb快速部署到tomcat阿里云服务器

目录 准备 关闭防火墙 配置阿里云安全组 点击控制台 点击导航栏按钮 点击云服务器ECS 点击安全组 点击管理规则 点击手动添加 设置完成 配置web服务 使用yum安装heepd服务 启动httpd服务 查看信息 部署java通过Maven打包好的war包项目 Maven打包项目 上传项目 …

Redis(无中心化集群搭建)

文章目录 1.无中心化集群1.基本介绍2.集群说明 2.基本环境搭建1.部署规划(6台服务器)2.首先删除上次的rdb和aof文件(对之前的三台服务器都操作)1.首先分别登录命令行,关闭redis2.清除/root/下的rdb和aof文件3.把上次的…