主要内容 #
综合实战:能简单了解模块化编程的基本流程,掌握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、拉格朗日定理 – ★★★★