J'espérais intégrer Python dans JMP JSL (version 17.2). J'ai besoin de faire une imbrication complexe mais je n'arrive même pas à faire quelque chose de simple. L'index de script pour Python Submit présente Python générant une variable, puis son extraction dans JSL à l'aide de Python Get.
//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();
J'espérais commencer avec quelque chose de simple comme celui-ci, puis passer à quelque chose de plus avancé :
Python Submit("\[
for i in range(10):;
if i == 6:;
print(i);
]\");Je m'attendais à ce que le terminal imprime uniquement un six, mais après avoir exécuté le script, le résultat était un peu bizarre.
//Terminal Output<BR />/**********/<BR /><BR />for i in range(10):;<BR />if i == 6:;<BR />print(i);<BR />/**********/
J'en ai testé d'autres et j'ai appris que certaines choses fonctionnent. Mais je n'arrive toujours pas à faire fonctionner les boucles imbriquées.
//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););Si quelqu'un a des conseils, ce serait très apprécié.
Voici les structures de soumission dans l'interface JMP 17 vers Python que j'ai trouvées et qui fonctionnent
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')
");Si vous parvenez à mettre à jour vers JMP18, vous vous épargnerez de nombreux maux de tête possibles en raison de la nouvelle façon de gérer Python dans JMP.
On dirait que vous avez négligé les indentations nécessaires.
Python Submit("\[
for i in range(10):
if i == 6:
print(i)
]\"); //6 (then 0 when Python is successfully terminated)Je n'avais pas réalisé que l'indentation avait un impact aussi important dans jmp. Merci pour l'aide!
Cela n'a pas d'impact dans JMP mais cela a un impact dans Python (vous exécutez du code Python et non JSL).