主要内容 #
综合实战:能简单了解模块化编程的基本流程,掌握python大型程序实现的基本思路。本节课主要简单介绍mydisplay和myanalyse模块的实现,python包实现中__init__.py函数的一些设计,以及主函数的功能实现12.myanalyse模块的实现 #
根据模块设计的思路,我们对myanalyse模块进行实现和测试# coding=gbk '''模块myanalyse,主要用于对英文单词列表进行处理并进行词性分析''' def myanalyse(wordlist=[]): '''根据输入的单词列表对词性进行分析,返回两个字典 返回的两个字典分别表示每种词性个数,以及内容''' wdic1={'名词':0,'动词':0,'形容词':0,'介词':0} wdic2={'名词':[],'动词':[],'形容词':[],'介词':[]} for string in wordlist: if 'n.' in string:#对于每个检索出的英文单词根据后缀判断词性,可观察资源文件的词性标注确定 wdic1['名词']+=1 wdic2['名词'].append(string) if 'a.' in string: wdic1['形容词']+=1 wdic2['形容词'].append(string) if 'vi.' in string or 'vt.' in string: wdic1['动词'] += 1 wdic2['动词'].append(string) if 'prep.' in string: wdic1['介词']+=1 wdic2['介词'].append(string) return wdic1,wdic2 if __name__ == '__main__':#模块测试 dict1,dict2=myanalyse(['good a.好的']) print(dict1,dict2)
13.mydisplay模块的实现 #
同上对mydispaly模块进行实现和测试# coding=gbk '''模块mydisplay,用来展示检索的结果''' def mydisplay(*args):#*args接收不同长度的参数,并打包成元组 '''展示两个key值相同的字典或者其它内容''' if len(args)==2 and isinstance(args[0],dict)\ #isinstance()函数判断数据类型 and isinstance(args[1],dict):#如果输入的对象是两个字典,按以下方式展示 for key in args[0]: print(key,args[0][key],args[1][key]) else: print(args) if __name__=='__main__':#模块测试 mydisplay('test')
14.__init__.py的设计 #
#__init__.py __all__=['mysearch','myanalyse','mydisplay']#设定from mydic import*时导入列表内哪些模块的方法,也可以不加因为默认就是全部导入 from mydic.mysearch import * from mydic.myanalyse import * from mydic.mydisplay import *
15.main.py的设计 #
在mydic包之外新建main.py文件,通过对我们已经实现的包mydic的调用,实现程序设计的两个功能import mydic#导入mydic包 word=mydic.mysearch(head='mis',path='mydic\\六级单词.txt')#单词检索,注意路径 mydic.mydisplay(*word)#word本身就是列表,在前面加上*后表示将列表解构后,每个列表的元素都作为函数参数 mydic.mydisplay(*mydic.myanalyse(word))#同上,myanalyse(word)返回的是两个字典组成的元组,将元组解构后传入两个字典作为函数参数
习题 #
OJ训练题 #
1、可逆素数 – ★
2、剪绳子 – ★
3、最少的交换次数 – ★★
4、切割蛋糕 – ★★★
5、拉格朗日定理 – ★★★★