上下文关键字

共享数据的主程序/子程序风格:

1、体系结构图:

  

2、简述体系结构各部件的主要功能,实现思想。

  输入:从文件读入文章,按行存入集合。

  循环移动:访问行集合,循环移动后更新集合。

  排序:访问行集合,排序后更新集合。

  输出:以输出流形式输出行集合。

3、写出主要的代码

lineList = []

def input():
    fr = open(r"D:\Desktop\KWIC\inputText.txt")
    print('-----Input-----')
    for line in fr.readlines():
        line = line.strip('\n')   
        print(line)
        lineList.append(line)

def circshift():
    for line in lineList:
        charList = line.split()
        for i in range(len(charList)):
            charList = charList[1:] + charList[:1]
            newLine = ' '.join(charList)
            if newLine not in lineList:
                lineList.append(newLine)

def sort():
    lineList.sort()

def output():
    print('-----Output-----')
    for line in lineList:
        print(line)

if __name__ == '__main__':
    input()
    circshift()
    sort()
    output()

4、显示结果:

管道-过滤器风格:

1、体系结构图:

2、简述体系结构各部件的主要功能,实现思想。

  输入:输入文件,输入行列表。

  循环移动:输入行列表,输出循环移动后的扩展列表。

  排序:输入列表,有序输出原列表。

  输出:输入列表,以输出流形式输出。

3、写出主要的代码

def input(fileName):
    fr = open(fileName)
    lineList = []
    print('-----Input-----')
    for line in fr.readlines():
        line = line.strip('\n')   
        print(line)
        lineList.append(line)
    return lineList

def circshift(lineList):
    for line in lineList:
        charList = line.split()
        for i in range(len(charList)):
            charList = charList[1:] + charList[:1]
            newLine = ' '.join(charList)
            if newLine not in lineList:
                lineList.append(newLine)
    return lineList

def sort(lineList):
    return sorted(lineList)

def output(lineList):
    print('-----Output-----')
    for line in lineList:
        print(line)

if __name__ == '__main__':
    fileName = r"D:\Desktop\KWIC\inputText.txt"
    lineList = input(fileName)
    extendedList = circshift(lineList)
    sortedList = sort(extendedList)
    output(sortedList)

4、显示结果:

实验总结

 没遇到什么问题,因为Python很好用。

 人生苦短,我用Python。

posted @ 2017-11-20 17:50  OJBK  阅读(888)  评论(0编辑  收藏  举报