私は Python を JMP JSL (バージョン 17.2) に統合したいと考えていました。複雑なネストを行う必要があるのですが、簡単なことさえできないようです。Python Submit のスクリプト インデックスでは、Python が変数を生成し、それを Python Get を使用して JSL に取り込む様子が紹介されています。
//scripting index code
Names Default To Here( 1 );
Python Init();
Python Submit( "\[
str = 'The quick brown fox jumps over the lazy dog';
a = 200;
]\");
getStr = Python Get( str );
getNum = Python Get( a );
Show( getStr, getNum);
Python Term();
私は、このような簡単なものから始めて、その後、より高度なものに進みたいと考えていました。
Python Submit("\[
for i in range(10):;
if i == 6:;
print(i);
]\");ターミナルには 6 だけが出力されると思っていましたが、スクリプトを実行した後の結果は少し奇妙でした。
//Terminal Output<BR />/**********/<BR /><BR />for i in range(10):;<BR />if i == 6:;<BR />print(i);<BR />/**********/
さらにいくつかテストしてみたところ、いくつかの方法が機能することがわかりました。しかし、ネストされたループはまだ機能しません。
//Code that seemingly works
Python Submit("print('Hello World')");
Python Submit("for i in range(10): print(i); print(i);");
//Code that doesn't work for some reason
Python Submit("for i in range(10):; if i == 6; print(i)");
Python Submit("for i in range(10): if i == 6: print(i)");<BR />Python Submit("for i in range(10): if i == 6:; print(i););どなたかアドバイスがありましたら、大変ありがたく思います。
JMP 17のPythonインターフェースで動作するSubmit構造は次のとおりです。
Names Default To Here( 1 );
Python Init();
Python Submit("\[
for i in range(11):
if i == 6:
print(i)
print(i)
]\");
Python Submit("i=6
if i == 6: print(i); print('i is 6')
");JMP18 にアップデートできれば、JMP で Python を処理する新しい方法により、多くの頭痛の種から解放されます。
必要なインデントを見落としているようです。
Python Submit("\[
for i in range(10):
if i == 6:
print(i)
]\"); //6 (then 0 when Python is successfully terminated)jmp でインデントがこれほど大きな影響を与えるとは知りませんでした。 ご協力ありがとうございます!
JMP には影響はありませんが、Python には影響があります (JSL ではなく Python コードを実行しているため)。