Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/07/2017, à 23:19

paul18

exec() avec variable

Bon ça fait 2 heures que je cherche tout en tournant en rond, alors je finis une nouvelle fois par vous solliciter ; j'ai plusieurs array :

mat1 = np.random.rand(5,1); print ("mat1 : ", mat1)
mat2 = np.random.rand(5,1); print ("mat2 : ", mat2)
...
mat_n = np.random.rand(5,1); print ("mat_n : ", mat_n)

je souhaite utiliser une instruction du genre (et avec la variable i)  :

i = 1
exec("mat +str( i) + [0][0] = 100")

En dehors d'un pb de quote, comment implémenter i ? sur pas mal de forum, il est fortement déconseillé d'utiliser exec(), alors quoi employer ?

Merci par avance

Paul

Hors ligne

#2 Le 04/07/2017, à 05:16

J5012

Re : exec() avec variable

euh ... tu es dans quel langage ?

en effet exec est toujours une mauvaise idee tous langages confondus wink

precedemment tu programmais en python, bash, C, squeak ... , et la ?

Hors ligne

#3 Le 04/07/2017, à 05:52

pingouinux

Re : exec() avec variable

Bonjour,

exec("mat%s[0][0] = 100"%i)

exec peut être dangereux si tu n'es pas maître de ce qu'il exécute. C'est un peu comme exécuter un script dont tu ignores le contenu.

Hors ligne

#4 Le 04/07/2017, à 07:50

vv221

Re : exec() avec variable

J5012 a écrit :

en effet exec est toujours une mauvaise idee tous langages confondus wink

*Presque* toujours tongue

Un exemple d’utilisation sans risque de exec en Shell à la ligne 57 de ce fichier :
https://framagit.org/vv221/play.it/blob … _common.sh


Jouer sur Ubuntu ? Facile !

Hors ligne

#5 Le 04/07/2017, à 08:45

paul18

Re : exec() avec variable

A tous,

Merci pour ces retour; j'ai oublié de préciser que je codais sous python et que je cherche une façon d'introduite une variable pour pointer sur le bon tableau:
- sur le tableau n°i (i de 1 à n), je veux affecter la valeur 100 en [0][0]
- l'idée est d'intégrer ça dans une boucle, puisque je ne connais pas le nombre de tableau (cela dépend de mon fichier initial)

Sur le net j'y ai vu exec(), avec effectivement des alertes quant à son utilisation- je suis preneur de toute suggestion afin de bien faire dès le départ

Paul

Hors ligne

#6 Le 04/07/2017, à 09:06

pingouinux

Re : exec() avec variable

Tu peux aussi faire ceci :

tab=[]; n=3
for i in range(n): tab.append(np.random.rand(5,1)); print('tab%s\n%s\n'%(i,tab[i]))
i=2
tab[i][0][0]=555; print('tab%s\n%s\n'%(i,tab[i]))

Hors ligne

#7 Le 04/07/2017, à 10:09

paul18

Re : exec() avec variable

pingouinux a écrit :

Tu peux aussi faire ceci :

tab=[]; n=3
for i in range(n): tab.append(np.random.rand(5,1)); print('tab%s\n%s\n'%(i,tab[i]))
i=2
tab[i][0][0]=555; print('tab%s\n%s\n'%(i,tab[i]))

Merci mais je ne suis pas sûr que cela corresponde à mon besoin - dans l'explorateur des variables, je n'ai que "tab" et "print" ne fait qu'afficher un indice / il ne pointe pas sur le tableau visé.

Pour reprendre l'exemple, les 3 tableaux 'tab' existent, et je veux pointer si tel ou tel tableau dans une boucle pour y affecter des données
(je me suis sûrement mal exprimé)

Paul

Hors ligne