Convertir une chaîne en nom de variable en Python
-
Convertir la chaîne en nom de variable en utilisant
globals()
etlocals()
en Python -
Convertir une chaîne en nom de variable en utilisant
exec()
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:
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:
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 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.
LinkedInArticle connexe - Python String
- Supprimer les virgules de la chaîne en Python
- Comment vérifier qu'une chaîne est vide de manière pythonique
- Comment supprimer les espaces dans une chaîne de caractères en Python
- Comment extraire des nombres d'une chaîne de caractèresen Python
- Comment convertir une chaîne de caractères en datetime en Python