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
12763
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 octobre 2020
712
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
12763
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 octobre 2020
712
Messages postés
12763
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 octobre 2020
712 >
Messages postés
12763
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 octobre 2020

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
12763
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 octobre 2020
712
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
12763
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 octobre 2020
712
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 !