2016-11-19 3 views
0

私のコンピューティングクラスでの評価では、最初の2つのタスクを完了しましたが、3番目のタスクが私に求めていることを理解するのに役立つ必要があります。 「句読点を含むいくつかの文章を含むテキストファイルを圧縮するためのタスク2の技術をベースにしたプログラムを開発する」プログラムは、単語のリストと位置のリストにファイルを圧縮して元のファイルを再作成できる必要があります。また、圧縮されたファイルを取得し、元のファイルの句読点や大文字を含む完全なテキストを再作成することもできます。私のコンピューティングCA A453タスクを理解する助けが必要ですか?

私はこのことを理解していますが、実際に私がしたいことを本当に理解していません。また、タスク2のテクニックをベースにして、タスク2の説明と解決策を以下に示します(完了したソリューションにアクセスできないため、解決策が完了していない)

"プログラムを開発する文中の個々の単語を特定し、それらをリストに格納し、元の文の各単語をリスト内のその単語の位置に置き換えます。 たとえば、あなたの国があなたにできることあなたの国のために には、次の単語が含まれています: 1,2,3、 4,5,6,7,8,9,1,3,9,6,7,8,4,5 単語のリストとtの位置を保存する文中の言葉を別々のファイルとして、あるいは単一のファイルとして捉えることができます。

とタスク2のコード: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") 

答えて

0

、あなたはすでにタスクに記載された技術で、文に圧縮されています。

これで2つの機能を持つプログラムを提供するはずです。

  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に対処する必要があります。素敵な仕事!

+0

ありがとう、これは非常に役に立ちますが、私はすでにファイルから読み書きする必要がある答えの最初の部分を行っていますが、コードにアクセスできないためコードにはありません。私は出力ファイルを読むことではありません。私はどこから始めるべきかを知りません –

+0

あなたのデータをシリアライズしてデシリアライズする方法について考え始めるかもしれません。 JSONはオプションかもしれません - Pythonには[pickle](https://docs.python.org/3/library/pickle.html)もあります。 – dahrens

0

私のGCSEと同じ仕事をしていますが、私も混乱しました。

しかし、タスク3では、文を分割するときに大文字小文字を区別するようにコードを変更するように求めています。 helloとHelloは別々のエンティティとして扱わなければなりません。したがって、再生時には異なる数にする必要があります。

また、あなたのコードは、1つのセンテンスではなく複数のセンテンスに対して互換性がなければなりません。 最後に、句読点を別々のエンティティに分割する必要があります。

句読点を除外するために正規表現の値を使用します。 .lower()を削除して、大文字と小文字を区別します。 コードに "。エンティティとしてマークします。

希望しました。

関連する問題