3

私はEclipseでpython 2.7.3 PyDevを使用しています。ポーターステマーのソースコードより

if __name__ == '__main__':
    p = PorterStemmer()
    if len(sys.argv) > 1:
        for f in sys.argv[1:]:
            infile = open(f, 'r')
            while 1:
                output = ''
                word = ''
                line = infile.readline()
                if line == '':
                    break
                for c in line:
                    if c.isalpha():
                        word += c.lower()
                    else:
                        if word:
                            output += p.stem(word, 0,len(word)-1)
                            word = ''
                        output += c.lower()
                print output    # ---- ERROR
            infile.close()

エラーが発生します

. "^=" ... "<<=" ... ">>=" ... "**=" ... "or" ... "and" ... "not" ... " is" ... "in" ... "if" ... ";" ... "、" ...


4

3 に答える 3

5

使用している Python 文法のバージョンを確認してください (グローバル設定かプロジェクトごとの設定かは思い出せません)。あなたの文法は Py3k 用に設定されているようですprintが、現在はステートメントではなく関数になっています。

編集: PyDev がそのすべてを処理しない限り、そのコードが正常に実行されない理由はわかりません。コマンド ラインから呼び出された python.exe から直接実行できない場合、実際にはいくつかの卑劣なコードが存在する可能性があります。私が見逃した悪い構文。

于 2013-02-02T04:19:44.580 に答える
3

関数として試してみてくださいprint...

print(output)

また、Eclipseの設定をチェックして、使用しているPythonのバージョンを確認してください...

于 2013-02-02T04:25:55.563 に答える
2

したがって、問題は、PyDev にはエディターで使用する組み込みのインタープリターがあり、コードの実行時に外部インタープリターを使用することでした。私のコンピューターには python 2.7.3 しかインストールされておらず、Eclipse pydev によって自動構成されていましたが、組み込みのインタープリターは 3.0 に設定されていました。また、組み込みのインタープリター設定は、PyDev のオプション メニューから利用できず、むしろ非表示になっています。ファイルエクスプローラーでプロジェクトタイトルを右クリックしてプロパティを選択すると、別のインタープリター設定があります。また、更新された設定を使用するには、すべてのエディター ウィンドウを閉じてから再度開く必要があります。

于 2013-02-02T21:26:17.753 に答える