【问题标题】:Need help understanding my computing CA A453 task?需要帮助了解我的计算 CA A453 任务吗?
【发布时间】:2017-02-28 03:32:47
【问题描述】:

对于我在计算机课上的评估,我已经完成了前两个任务,但需要帮助理解第三个任务问我什么。它指出“开发一个基于任务 2 的技术的程序,以压缩包含多个句子的文本文件,包括标点符号。该程序应该能够将文件压缩为单词列表和位置列表以重新创建原始文件。它还应该能够获取压缩文件并重新创建原始文件的全文,包括标点符号和大写”。

其中一些我理解,但我并不真正理解它实际上想要我做什么。此外,正如它所说,我必须在任务二的技术基础上构建,因此任务二的描述和解决方案如下(解决方案尚未完成,因为我无权访问我完成的任务)

“开发一个程序,识别句子中的单个单词,将它们存储在一个列表中,并将原始句子中的每个单词替换为该单词在列表中的位置。 例如,句子 ASK NOT WHAT YOUR COUNTRY CAN DO FOR YOU ASK WHAT YOU CAN DO FOR YOUR COUNTRY 包含单词 ASK、NOT、WHAT、Your、COUNTRY、CAN、DO、FOR、YOU 可以使用序列从这些单词在此列表中的位置重新创建句子 1,2,3,4,5,6,7,8,9,1,3,9,6,7,8,4,5 将单词列表和这些单词在句子中的位置保存为单独的文件或单个文件。”

任务2的代码:

restart = 'y'
while (True):
    sentence = input("What is your sentence?: ")
    sentence_split = sentence.split() 
    sentence2 = [0]
    print(sentence)
    for count, i in enumerate(sentence_split): 
        if sentence_split.count(i) < 2:
            sentence2.append(max(sentence2) + 1)
        else:
            sentence2.append(sentence_split.index(i) +1)
    sentence2.remove(0)
    print(sentence2)
    restart = input("would you like restart the programme y/n?").lower()
    if (restart == "n"):
            print ("programme terminated")
            break
    elif (restart == "y"):
        pass
    else:
        print ("Please enter y or n")

【问题讨论】:

    标签: python


    【解决方案1】:

    正如您对第二个任务的解决方案所示,您已经使用任务中描述的技术压缩了句子。

    您现在应该提供一个具有两个功能的程序。

    1. 读取文件并使用您的技术创建所有包含单词的列表和所有这些单词的序列,并将其写入文件(或标准输出)
    2. 读取第一个函数创建的输出以生成之前的文件。

    你的程序可能有这个命令行界面 - 也许这会让你的任务更清楚。

    python task3.py compress /path/to/inputtext.txt /path/to/outputfile

    python task3.py extract /path/to/outputfile /path/to/inputtext.txt

    这是一种非常简单的压缩文本文件的方法。最重要的是,您需要处理 pythons 文件 api。不错的任务!

    【讨论】:

    • 谢谢,这很有帮助,但我已经完成了你回答的第一部分,我必须从文件中读取和写入,但它不在代码中,因为我无法访问它。我不知道的部分是读取输出文件。我什至不知道从哪里开始
    • 您可能会开始思考如何序列化和反序列化您的数据。 JSON 可能是一个选项 - 在 python 中也有 pickle
    【解决方案2】:

    我的 GCSE 任务和你一样,我也很困惑。

    但是,任务 3 要求您更改代码,以便在拆分句子时,现在应该区分大小写。例如,hello 和 Hello 必须被视为单独的实体。所以它们在再生时必须有不同的数字。

    此外,您的代码必须兼容多个句子,而不仅仅是一个句子。 最后,您还必须将标点符号拆分为单独的实体。

    使用正则表达式值去除标点符号。 删除 .lower() 以使您的句子区分大小写。 允许代码带“。”标记为实体。

    希望有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-08-11
      • 2017-06-19
      • 2016-05-03
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多