Python实验6

一、实验目的及要求

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值