私が現在持っているコードを以下に示します。最初に行うのは、ユーザーに文章を入力することです。次に、プログラムは、文中の各単語の位置を見つけ、その単語をリストに分割して個々の単語を得る。次に、プログラムは繰り返し単語を取り除いて、リスト内の単語をユニークにします。次に、プログラムは、文(例えば、1,2,3,4,1,1,2,3,5)内の単語の位置とユニークな単語を別々のファイル(ユーザが名前を付けることができる)に保存する)。プログラムの次の部分は、別個のファイルから一意のテキストを解凍しようとし、その文および一意の単語中の単語の位置から元の文を再作成しようと試みる。私は別にこのテストを行ったので、この段階が機能することは分かっています。 OutputDecompressed decompression.append(orgwords [i])と はIndexErrorで、リストの索引が範囲外ですpython解凍テキスト
ファイル "/Users/Sid/Desktop/Task3New.py"、行70:私は今、プログラムを実行するときしかし、私はこのエラーメッセージを取得しておきます:リストインデックスが範囲外です
なぜこれが機能しないのか分かりません。すべての助けを感謝、ありがとう。
import json
import os.path
def InputSentence():
global sentence
global words
sentence = input("Enter a sentence: ")
words = sentence.split(' ')
def Validation():
if sentence == (""):
print ("No sentence was inputted. \nPlease input a sentence...")
Error()
def Uniquewords():
print ("Words in the sentence: " + str(words))
for i in range(len(words)):
if words[i] not in unilist:
unilist.append(words[i])
print ("Unique words: " + str(unilist))
def PosText():
global find
global pos
find = dict((sentence, words.index(sentence)+1) for sentence in list(words))
pos = (list(map(lambda sentence: find [sentence], words)))
return (pos)
def OutputText():
print ("The positions of the word(s) in the sentence are: " + str(pos))
def SaveFile():
filename = input("We are now going to save the contents of this program into a new file. \nWhat would you like to call the new file? ")
newfile = open((filename)+'.txt', 'w')
json.dump([unilist, pos], newfile)
newfile.close
def InputFile():
global compfilename
compfilename = input("Please enter an existing compressed file to be decompressed: ")
def Validation2():
if compfilename == (""):
print ("Nothing was entered for the filename. Please re-enter a valid filename.")
Error()
if os.path.exists(filename + ".txt") == False:
print ("No such file exists. Please enter a valid existing file.")
Error()
def OutputDecompressed():
newfile = open((compfilename)+'.txt', 'r')
saveddata = json.load(newfile)
orgpos = saveddata[1]
orgwords = saveddata[0]
print ("Unique words in the original sentence: " + str(orgwords) + "\nPosition of words in the sentence: " + str(orgpos))
decompression = []
prev = orgpos[0]
x=0
#decomposing the index locations
for cur in range(1,len(orgpos)):
if (prev == orgpos[cur]): x+= 1
else:
orgpos[cur]-=x
x=0
prev = orgpos[cur]
#Getting the output
for i in orgpos:
decompression.append(orgwords[i-1])
finalsentence = (' '.join(decompression))
print ("Original sentence from file: " + finalsentence)
def Error():
MainCompression()
def MainCompression():
global unilist
unilist = []
InputSentence()
Uniquewords()
PosText()
OutputText()
SaveFile()
InputFile()
Validation()
OutputDecompressed()
MainCompression()
に指定されたPythonのコーディングスタイルを使用することができ、それは他のPythonプログラマのための簡単にあなたのコードを読むために作るために