Convertir une chaîne en nom de variable en Python

Sahil Bhosale 30 janvier 2023
  1. Convertir la chaîne en nom de variable en utilisant globals() et locals() en Python
  2. Convertir une chaîne en nom de variable en utilisant exec() en Python
Convertir une chaîne en nom de variable en Python

En Python, il existe différentes manières de convertir une valeur chaîne en un nom variable. Dans cet article, nous discuterons de différentes manières dont nous pouvons y parvenir.

Certaines personnes voudront peut-être faire cela pour définir un nom de variable de manière dynamique pendant que le programme Python est en cours d’exécution. Il n’est pas recommandé de convertir une chaîne en un nom de variable de la manière indiquée ci-dessous lors du développement d’un logiciel prêt pour la production, car cela peut entraîner des problèmes. Oui, il est possible d’y parvenir, mais soyez prudent en faisant cela.

Convertir la chaîne en nom de variable en utilisant globals() et locals() en Python

globals()

La fonction globals() en Python retourne le dictionnaire de la table de symboles globale courante. Une table de symboles globale stocke toutes les informations relatives à la portée globale du programme, accessible via la fonction globals().

user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))

Production:

Convertir la chaîne en nom de variable à l’aide de la fonction globals()

La première chose que nous faisons ici est de prendre l’entrée de l’utilisateur en utilisant la fonction input() et de passer une chaîne Enter a string for a variable name: à l’intérieur. Quelle que soit la valeur qu’un utilisateur saisira, cette valeur sera stockée dans la variable user_input. Ici, on s’attend à ce que l’utilisateur saisisse apple comme valeur de chaîne qui sera ensuite stockée dans user_input. Si l’utilisateur entre une valeur autre que apple, le programme passera par une erreur comme NameError: name 'variable' is not defined. C’est parce que nous imprimons également la valeur de apple et en vérifions le type plus tard dans notre code.

Si l’utilisateur a saisi la bonne valeur, nous pouvons modifier le dictionnaire global en utilisant globals() pour modifier le dictionnaire global et affecter n’importe quelle valeur à la variable apple. Ici, nous avons attribué 50 à la variable apple.

locals()

La fonction locals() en Python retourne le dictionnaire de la table de symboles locale courante. Une table de symboles locaux est accessible à l’aide de la fonction locals(). La fonction locals() fonctionne presque de la même manière que la fonction globals(). La seule différence est que locals() peut accéder à la table de symboles locale, et globals() peut accéder à la table de symboles globale et renvoie un dictionnaire.

user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))

Production:

Convertir la chaîne en nom de variable à l’aide de la fonction globals()

Ce code fonctionne également de la même manière que celui de globals(). La seule différence est que nous avons utilisé ici la fonction locals().

Convertir une chaîne en nom de variable en utilisant exec() en Python

Une autre façon de faire cela est d’utiliser la fonction exec() en Python. La fonction exec() permet d’exécuter dynamiquement le programme Python. Nous avons une variable name à l’intérieur de laquelle nous stockons une valeur de chaîne Elon.

name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)

Production:

100

À l’intérieur de la fonction exec(), nous avons %s et %d, utilisés comme espace réservé pour la valeur de chaîne et la valeur décimale, respectivement. Cela signifie que nous attribuons une valeur entière à une chaîne à l’aide de l’opérateur d’affectation =. %s et %d sont placés entre les guillemets =. Ensuite, nous avons une parenthèse à l’intérieur de laquelle nous avons 2 choses, la première est la variable que nous avons créée c’est-à-dire name, qui contient la valeur Elon, et la seconde nous avons un entier 100.

Ici, au lieu de la variable name, la valeur à l’intérieur de cette variable sera substituée. L’entier 100 sera attribué à Elon. Elon devient un nom de variable, et si vous l’imprimez, vous obtiendrez 100 en sortie.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Article connexe - Python String

Article connexe - Python Variable