一、实验目的及要求
(1)理解模块在提高程序可扩展性和复用性方面的作用;
(2)掌握模块定义和调用的基本语法结构;
(3)能够根据需求定义模块文件,并实现函数成员和类等组成部分;
(4)理解py文件两种不同执行方式的差异;
(5)能够根据需求在使用的开发环境中安装需要的第三方库;
(6)能够使用jieba和wordcloud等库分析文本数据,并制作词云对象。
二、实验仪器设备与软件环境
1.安装有Win7/Win10微型计算机系统,每人一台;
2.每台微型计算机系统连接Internet网络;
3.安装有Python IDLE。
三、实验内容
1、(1)定义calculation模块(module),具体要求如下:
- 模块中定义Sum1函数,可以计算两个数值的和并返回;
- 模块中定义Mul函数,可以计算两个数值的乘积并返回;
- 在模块中定义CountV函数,可以计算列表或元组数据中的最大和最小值,并返回;
(2)构建test.py文件,在文件中通过调用calculation模块,实现计算对模块的测试,具体要求如下。
- 建立列表ls1=[10,30,90,94,99,60,80,6,89],通过calculation模块的CountV函数计算最大和最小值,并输出;
- 通过calculation模块的Sum1函数,计算100和 200的和并输出;
- 统计calculation模块的Mul函数,计算100和 200的乘积并输出。
calculation.py
def Suml(a,b):
return a+b
def Mul(a,b):
return a*b
def CountV(a):
return [min(a),max(a)]
test.py
from calculation import *
ls1=[10,30,90,94,99,60,80,6,89]
print("ls1最大值最小值:",CountV(ls1))
print("100和200的和:",Suml(100,200))
print("100和200的乘积:",Mul(100,200))
2、通过读取红楼梦.txt文本数据,使用jieba和wordcloud库,基于红楼梦中人物的出现频次制作词云对象。
(1)输出出现次数最多的五个人;
(2)制作红楼梦人物词云。要求能够对词云对象中出现的常见问题进行处理(如词云中显示的主要词语不能为非人物名称数据,且同一人物名称不能重复出现)。将红楼梦中的下列词忽略:
{'什么','一个','我们','那里','你们','如今',
'说道','知道','起来','姑娘','这里','出来',
'他们','众人','自己','一面', '太太','只见',
'两个','没有','怎么', '不是', '不知','这个',
'听见', '这样', '进来', '东西', '告诉','就是',
'咱们', '回来', '大家', '只是', '只得',
'老爷', '丫头', '这些', '不敢','出去','所以',
'不过', '的话', '姐姐', '不好'}
import jieba
import wordcloud
txt = open('红楼梦.txt', 'r', encoding='utf-8').read()
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
counts[word] = counts.get(word, 0)+1
excludes = {"什么","一个","我们","那里","你们","如今",
"说道","知道","老太太","起来","姑娘","这里",
"出来","他们","众人","自己","一面","太太",
"只见","怎么","奶奶","两个","没有","不是",
"不知","这个","听见"}
for word in excludes:
del(counts[word])
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
i=1
for item in items:
if i>5:
break
i+=1
print(item[0], ':', item[1], '次')
newtxt=' '.join(words)
wc=wordcloud.WordCloud(background_color='white',font_path='msyh.ttc',height=200,width=200,max_words=25,max_font_size=80,stopwords=excludes,min_word_length=2)
word=wc.generate(newtxt)
word.to_file('D:\\PYTHONPROJIECT\\红楼梦人物词云.png')