上下文关键字

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

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。

转载于:https://www.cnblogs.com/Tantalus/p/7867484.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值