Aide python [Résolu]

Signaler
-
 Natane -
Bonjour,
J'aimerais comprendre comment ce code marche:

V = locals()
for i in range(10):
       V["var%d"%i]  = i


Je sais que c'est déconseillé mais c'est par pour l'utilisé juste le comprendre
Merci


Configuration: Android / Chrome 84.0.4147.125

5 réponses

Messages postés
15112
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 avril 2021
828
bonjour, merci d'utiliser les balises de code quand tu postes du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

as-tu essayé ceci?
V = locals()
for i in range(10):
    V["var%d"%i] = i
print(V)
for i in range(10):
    print("var%d"%i, V["var%d"%i])
Je me suis mal exprimé mon problème n'était pas de savoir que fais ce code ça je l'ai compris ça crée une nouvelle variable appelé var1/var2...
Mais je ne comprend pas la ligne :

V['var%d'%i] = i


ce qui est a l'intérieur des crochet j'ai compris on prend 'var' et avec %d on ajoute i un peu comme la fonction format mais je ne comprend
V = locals()
Et les crochet après le V
Désolé je ne suis pas très clair
(J'ai essayé d'utiliser les balises de code j'espère que ça a marché)
Messages postés
15112
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 avril 2021
828
Messages postés
15112
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 avril 2021
828 >
Messages postés
15112
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 avril 2021

V=locals()
print("V: ",V)
a=123
print("V: ",V)
print("V[""a""]: ",V["a"])
print("a: ",a)
V["a"]=1000
print("V: ",V)
print("V[""a""]: ",V["a"])
print("a: ",a)
Ah ok donc si j'ai bien compris dès que tu fais :

V = locals()


V vas contenir un dictionnaire de toute les variable local
Mais du coup pourquoi tu fais pas directement :

for i in range(10):
"Var%d"%i = i
                        
                
Messages postés
15112
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 avril 2021
828
tu ne maitrises pas encore les balises de code...
as-tu essayé ta suggestion?
imagines-tu pouvoir écrire
"a"=123

au lieu de
a=123
?
Oui je sais c'est la première fois que j'utilise les balises
En faite j'ai compris vu que locals() est un dictionnaire qui contient toute les variables du coup créé une nouvelle variable revient au même que d'ajouter un element au dictionnaire locals() sauf que vu que c'est un dictionnaire en tant que clés (donc nom de la variable) je peux mettre du str ou donner comme nom a la variable du str qui est stocké dans une autre variable (je sais que ça sert a rien et que je vais juste me perdre plus facilement avec mes nom de variable)
C'est ça ?
Messages postés
15112
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 avril 2021
828
je pense que oui. on appelle parfois cela "variable dynamique".
Ah ok ca faisait longtemps que je cherchais une explication a ce code
Merci beaucoup !