Aide python

Résolu
Natane -  
 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

  1. Natane
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
  2. Natane
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
  3. Natane
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      je pense que oui. on appelle parfois cela "variable dynamique".
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

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