2

Python でハングマン プログラムを作成していますが、複数の単語の文字列と単一の単語の文字列を含むファイルを渡すときに問題が発生しました。

ファイル:

こんにちは茶色のキツネ

ジャンプ

#initialize list
wordList = []
# get and open file
getFile = raw_input("Enter file name: ")
filename = open(getFile, "r")

def readWords(filename):
    for line in filename:
        # split any multi word line
        line.split()
        # add line to wordList
        wordList.append(line)

それでも、wordList の出力は次のようになります。

wordList = ['hello brown fox\n', 'dog\n', 'cat\n', 'water\n', 'jump\n']

「こんにちは茶色のキツネ」が3つの別々の文字列として表示されるようにしようとしています。

4

3 に答える 3

1

これを複雑にしすぎています-.splitファイルの内容全体だけです:

with open(getFile, "r") as f:
    words = f.read().split()
于 2012-11-09T17:38:33.017 に答える
0

あなたが抱えている問題は、あなたが分割しているが、分割された線を保存していないということです:

>>> a = "hello brown fox"
>>> a.split()
['hello', 'brown', 'fox']
>>> a
'hello brown fox'
>>> 

それで:

wordList.extend(line.split())

あなたのためにトリックをする必要があります

于 2012-11-09T17:00:00.897 に答える
0

split 関数は結果をリストとして返すので、それを直接追加することはおそらくあなたが望むものではないでしょう. 次の例を試すことができます。

def main():
    l_wordList = ['hello brown fox\n', 'dog\n', 'cat\n', 'water\n', 'jump\n']
    l_words_list = []
    l_word = ''
    for word in l_wordList:
        if isinstance(word.split(), list):
            for token in word.split():
                l_words_list.append(token)
        else:
            l_words_list.append(word)

    for word in l_words_list:
        print(word)

main()

で、結果はこうなります

>>>
hello
brown
fox
dog
cat
water
jump
>>>

よろしく、

ダリヨーシュ

于 2012-11-09T17:08:40.353 に答える