Pythontex: variables globales

Added by Nicolas Roux over 5 years ago

Bonjour à toutes et à tous, je voudrais faire un QCM en utilisant Pythontex et je me demande si il est possible d'avoir une variable qui soit utilisée pour tout un document et qui soit différente pour chaque sujet, j'ai tapé ça:

\pyc{a=np.random.randint(1,3)*(np.random.randint(0,1)*2-1)}
\pyc{b=np.random.randint(1,4)}
\pyc{c=np.random.randint(5,8)}

\element{fct-expo}{
\begin{question}{1-expo-1}
L'ensemble des solutions de l'équation $\e^{\py{a}x+\py{b}}=0$ est:
\begin{reponseshoriz}
\mauvaise{$\left\{0\right\}$}
\mauvaise{$-\dfrac{\py{b}}{\py{a}}$}
\mauvaise{$\left\{1\right\}$}
\bonne{$\varnothing$}
\end{reponseshoriz}
\end{question}
}

Et tous mes sujets sont identiques, j'ai tenté de changer en faisant 1 exemplaires et 34 copies dans AMC, ou 34 exemplaires et 1 copie, sans succès.
Si je place mes affectations de variables dans \element, cela fonctionne, mais cela m'oblige à le faire pour chaque question.
J'imagine que c'est possible en créant une macro et en y faisant appel à l'intérieur de \element mais je voudrais savoir si il est possible de faire autrement.
Merci d'avance pour vos lumières!
Nico


Replies (2)

RE: Pythontex: variables globales - Added by Alexis Bienvenüe over 5 years ago

Peut-être en plaçant vos commandes qui définissent a,b et c au début de \exemplaire{ (ou de l'environnement copieexamen/examcopy) ?

RE: Pythontex: variables globales - Added by Nicolas Roux over 5 years ago

Bonjour, ça marche!
Mais uniquement avec la commande \pyc.
Si je mets mon code entre des balises pycode, erreur, je ne comprends pas pourquoi... Je croyais que cela était équivalent.

Code ok:
\pyc{a=np.random.randint(1,3)*(np.random.randint(0,1)*2-1)}
\pyc{b=np.random.randint(1,4)}
\pyc{c=np.random.randint(1,4)}

Code amenant une erreur:
\begin{pycode}
a=np.random.randint(1,3)*(np.random.randint(0,1)*2-1)
b=np.random.randint(1,4)
c=np.random.randint(1,4)
\end{pycode}

(1-2/2)