Aide python

Résolu/Fermé
Natane - Modifié le 29 sept. 2020 à 12:00
 Natane - 29 sept. 2020 à 13:26
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

yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533
29 sept. 2020 à 11:25
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])
0
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é)
0
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533
29 sept. 2020 à 12:06
0
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533 > yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024
29 sept. 2020 à 12:12
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)
0
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

                
0
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533
29 sept. 2020 à 12:52
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
?
0
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 ?
0
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533
29 sept. 2020 à 13:24
je pense que oui. on appelle parfois cela "variable dynamique".
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ah ok ca faisait longtemps que je cherchais une explication a ce code
Merci beaucoup !
0