1

Python 3 のコンテキストでの SciTE の構成に大きな問題があります。詳細に意味があるかどうかはわかりません。

[詳細]

  1. gen_python_3_api.py をダウンロードして実行しました。

  2. usr/share/scite にフォルダー「api」を作成し、そこにコピーして貼り付けました python3.api

  3. gen_python_3_api.py のドキュメントに書かれているように SciTEUser.properties を編集しました。少しは役に立たなかったので、次のようにします。

  4. SciTE のウェブサイトにあるより一般的な方法を使用しました。python.properties を編集して、次の行を追加しました。

    api.$(file.patterns.py)=$(SciteDefaultHome)\api\python.api.

    まだ効果なし。

  5. python.properties の別の行を編集しました。

    PLAT_GTK の場合

    command.go.*.py=python3 -u "$(FileNameExt)"

    それは最終的に機能しました(または私はそうですが)。

[/詳細]

ここで、IDLE でうまく機能する単純な Fibbonaci プログラムを実行したいと思います。

def Fib(n):
  a = 0                 
  b = 1                 
  FibL = []             
  for i in range (n):   
    FibL.append(a)     
    z = a               
    a = b               
    b = b+z             
  return FibL 

n = int(input("Number? "))
print(Fib(n))

そして私は得る:

>python3 -u "test.py"

Number? Traceback (most recent call last):

  File "test.py", line 38, in <module>

    n = int(input("Number? "))

EOFError: EOF when reading a line

>Exit code: 1

私は完全に混乱しています。なぜこのようなことが起こるのか、それを修正する方法を誰かが知っていますか?

4

1 に答える 1

0

まず第一に、API の生成は編集のみを目的としており、コードを実行するためのものではありません。

コマンド ラインへのフル パスを追加して、バージョンのあいまいさを解決します (質問の詳細の 5 番目のポイントでそれを行うことを願っています)。

問題は次の行にあります。

    n = int(input("Number? "))

ここでは、ユーザーからの入力、つまりインタラクティブな実行が必要ですが、エディターはプロセス内でコマンドを実行し、簡単に出力できます。

入力コマンドの代わりに変数を追加してコードを変更します

    n=5

またはパラメーターhttp://www.scintilla.org/SciTEDoc.html#property-ifを使用します

幸運を!

于 2013-11-14T11:55:23.900 に答える