python实验二 函数与类的应用

news2024/9/24 5:23:56

实验二

实验题目

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.coloradmin.cn/o/1645070.html

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

相关文章

连锁收银系统批量调整商品价格教程

1、进入系统后台,系统后台登录网址: 2、点击商品>商品调价 3、将按模板整理好的商品价格数据导入即可。 Tips:每次导入的商品数量不要超过6000 条。

英语翻译中文,如何找专业的翻译公司?

在国际交流日益频繁的今天,翻译业务如雨后春笋般崭露头角,众多翻译公司如百花争艳般崭露头角。然而,国内翻译公司水平层参不齐。为了确保翻译的质量和准确性,选择一家专业的翻译公司至关重要。那么,英语翻译中文&#…

Case中default的综合结果

在使用case语句时,不完备的case语句会导致Vivado综合时推断出锁存器。下面通过实例来详细看看各种情况下的综合结果: 1.完备的case语句 下述的verilog对应的电路结构是一个8选一的多路复用器: module case_test(input [2:0]sel,input data…

学习如何使用PyQt5实现notebook功能

百度搜索“pyqt5中notebook控件”,AI自动生成相应例子的代码。在 PyQt5 中,QTabWidget 类被用作 Notebook 控件。以下是一个简单的示例,展示如何创建一个带有两个标签的 Notebook 控件,并在每个标签中放置一些文本。 import sys f…

咖啡机定量出水的原理是什么

咖啡机实现定量出水的原理主要依赖于流量计的使用。流量计是一种能够测量液体或气体通过管道的速度和体积的装置。在咖啡机中,常用的小型流量计有霍尔式流量计和光电式流量计两种。 霍尔式流量计利用了霍尔效应的原理来实现流量测量。它包含一个带有两极磁铁的叶轮…

为什么不能在cPanel收到电子邮件?

本周有一个客户,购买Hostease的虚拟主机,询问我们的在线客服,为什么不能在cPanel收到电子邮件?我们为用户提供教程,用户很快解决了遇到的问题。在此,我们分享这个操作教程,希望可以对您有帮助。 如果您遇到…

Nodejs内存管[Mark-Sweep算法][Mark-Compact]

内存控制 Mark-Sweep & Mark-Compact 对于老生代的对象,存活对象占较大的比重,采用scvenge方法会存在如下问题 1. 存活对象较多,复制存活对象的效率很低 2. 浪费一半空间的问题因此v8在老生代中主要采用了Mark-Sweep和Mark-Compact相结…

西门子数控网络IP设定配置

总结:menuselect-诊断-屏幕下方右翻页找到tcp/ip,进去选择tcp/ip诊断,进去选择x130网口,点击更改, 如果没有更改,menuselect-调试-口令,输入口令 sunrise 然后重新配置tcp/ip,配置完…

Unity3D DOTween

简单介绍一下 DOTween 插件的使用。 导入插件 先到 Asset Store 获取 DOTween 插件,然后在 Package Manager 的 My Assets 中搜索,下载并导入插件。 导入后,会自动弹出一个窗口,提示需要先对插件进行配置。 点击上图中的按钮&am…

navicat premium16.3.9重置

软件下载 官网地址:https://navicat.com.cn/products/ # 准备脚本 1、建一个txt 2、复制以下代码 3、修改文件格式为bat 4、运行bat文件 5、重新打开navicat,试用期重置为14 经测试16.2.3以上版本均可用 echo off set dnInfo set dn2ShellFolder set r…

迅饶科技 X2Modbus 网关 AddUser 任意用户添加漏洞复现

0x01 产品简介 X2Modbus是上海迅饶自动化科技有限公司Q开发的一款功能很强大的协议转换网关, 这里的X代表各家不同的通信协议, 2是T0的谐音表示转换, Modbus就是最终支持的标准协议是Modbus协议。用户可以根据现场设备的通信协议进行配置,转成标准的Modbus协议。在PC端仿真…

从零开始学AI绘画,万字Stable Diffusion终极教程(六)

【第6期】知识补充 欢迎来到SD的终极教程,这是我们的第六节课,也是最后一节课 这套课程分为六节课,会系统性的介绍sd的全部功能,让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 …

三维变换矩阵实战——三维点云的旋转、缩放、镜像、错切、平移、正交投影

一、旋转矩阵(右手坐标系) 绕x轴旋转 旋转矩阵:右边矩阵是点云的原始坐标,左边的是旋转矩阵 可视化:绕x轴旋转90度 代码: import vtk import numpy as np import mathdef pointPolydataCreate(pointClou…

毕业设计:《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》

前言 《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》,这是我在本科阶段的毕业设计,通过引入 Prometheus 和 ELK 架构实现企业对指标与日志的全方位监控。并且基于云原生,使用容器化持续集成部署的开发方式,通过 Sprin…

Eayswoole 报错 crontab info is abnormal

在执行一个指定的定时任务时 如 php easyswoole crontab show 报错 crontab info is abnormal 如下图所示: 查询了半天 修改了如下配置: 旧的 // 创建定时任务实例 $crontab new \EasySwoole\Crontab\Crontab($crontabConfig); 修改后&#…

PHP源码_众筹商城

众筹商城源码 众筹商品平台 商城加共识元富之路 网上商城众筹 前端是编译后的,后端PHP,带商城 运行截图 源码贡献 https://githubs.xyz/boot?app39 部分数据库表 CREATE TABLE ti_shopro_store (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,nam…

微信小程序生成二维码加密(CryptoJS4.0加密PHP8.0解密)AES方式加密

1、小程序创建 crypto-js.js和crypto.js两个文件(点击文件即可) 2、小程序js页面引入 var crypto require(../../utils/crypto.js);//注意路径是否正确3、使用 let data {id: that.data.id,name: dx}console.log(JSON.stringify(data))console.log(&…

信创国产化的基础知识

信创&国产化的基础知识 核心技术是国之重器,核心技术受制于人是我们最大的隐患。 实践反复告诉我们,关键核心技术是要不来、买不来、讨不来的。 要打好科技仪器设备、操作系统和基础软件国产化攻坚战,鼓励科研机构、高校同企业开展联合攻…

深度学习之GAN网络

目录 关于GAN网络 关于生成模型和判别模型 GAN网路的特性和搭建步骤(以手写字体识别数据集为例) 搭建步骤 特性 GAN的目标函数(损失函数) 目标函数原理 torch.nn.BCELoss(实际应用的损失函数) 代码…

延时任务通知服务的设计及实现(一)-- 设计方案

一、背景 在日常编程中,总是会遇到延时执行的任务。比如:定期发送邮件,定时上架商品;再比如订单在一定时间内未支付,需要到期关闭订单。 你也许会借助分布式任务xxl-job来实现,不仅性能差,cro…