python实验二 函数与类的应用

发布于:2024-05-06 ⋅ 阅读:(27) ⋅ 点赞:(0)

实验二

实验题目

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()

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

在这里插入图片描述