Konvertieren einer Zeichenkette in einen Variablennamen in Python
-
Konvertieren von einen String in einen Variablennamen mit
globals()
undlocals()
in Python -
Konvertieren von einen String in einen Variablennamen mit
exec()
in Python
In Python gibt es verschiedene Möglichkeiten, einen Zeichenketten Wert in einen Variablen -Namen umzuwandeln. In diesem Artikel werden wir verschiedene Möglichkeiten diskutieren, wie wir dies erreichen können.
Einige Benutzer möchten dies möglicherweise tun, um einen Variablennamen dynamisch zu definieren, während das Python-Programm ausgeführt wird. Das Konvertieren einer Zeichenkette in einen Variablennamen auf die unten gezeigte Weise wird bei der Entwicklung produktionsfähiger Software nicht empfohlen, da dies einige Probleme verursachen kann. Ja, dies ist möglich, aber bitte seien Sie dabei vorsichtig.
Konvertieren von einen String in einen Variablennamen mit globals()
und locals()
in Python
globals()
Die Funktion globals()
in Python gibt das Dictionary der aktuellen globalen Symboltabelle zurück. In einer globalen Symboltabelle werden alle Informationen zum globalen Bereich des Programms gespeichert, auf die mit der Funktion globals()
zugegriffen werden kann.
user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))
Ausgabe:
Das erste, was wir hier tun, ist, Eingaben vom Benutzer mit der Funktion input()
zu übernehmen und eine Zeichenkette zu übergeben. Enter a string for a variable name:
darin. Unabhängig davon, welchen Wert ein Benutzer eingibt, wird dieser Wert in der Variablen user_input
gespeichert. Hier erwarten wir, dass der Benutzer apple
als Zeichenkettenwert eingibt, der dann in user_input
gespeichert wird. Wenn der Benutzer einen anderen Wert als apple
eingibt, wird das Programm einen Fehler als NameError: name 'variable' is not defined
ausgeben. Dies liegt daran, dass wir auch den Wert von apple
drucken und den Typ später in unserem Code überprüfen.
Wenn der Benutzer den richtigen Wert eingegeben hat, können wir das globale Dictionary mit globals()
ändern, um das globale Dictionary zu ändern und der Variablen apple
einen beliebigen Wert zuzuweisen. Hier haben wir der Variablen apple
50
zugeordnet.
locals()
Die Funktion locals()
in Python gibt das Dictionary der aktuellen lokalen Symboltabelle zurück. Auf eine lokale Symboltabelle kann mit Hilfe der Funktion locals()
zugegriffen werden. Die Funktion locals()
funktioniert fast genauso wie die Funktion globals()
. Der einzige Unterschied besteht darin, dass local()
auf die lokale Symboltabelle zugreifen kann und globals()
auf die globale Symboltabelle zugreifen und ein Dictionary zurückgeben kann.
user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))
Ausgabe:
Dieser Code funktioniert genauso wie der von globals()
. Der einzige Unterschied ist, dass wir hier die Funktion locals()
verwendet haben.
Konvertieren von einen String in einen Variablennamen mit exec()
in Python
Eine andere Möglichkeit, dies zu tun, ist die Verwendung der Funktion exec()
in Python. Mit der Funktion exec()
wird das Python-Programm dynamisch ausgeführt. Wir haben eine Variable name
, in der wir einen String-Wert Elon
speichern.
name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)
Ausgabe:
100
Innerhalb der Funktion exec()
haben wir %s
und %d
, die als Platzhalter für den Zeichenkettenwert bzw. den Dezimalwert verwendet werden. Dies bedeutet, dass wir einem String mit Hilfe des Zuweisungsoperators =
einen ganzzahligen Wert zuweisen. Sowohl %s
als auch %d
sind in den Anführungszeichen =
enthalten. Dann haben wir eine Klammer, in der wir zwei Dinge haben, die erste ist die Variable, die wir erstellt haben, d. H. name
, die den Wert Elon
enthält, und die zweite, wir haben eine ganze Zahl 100
.
Hier wird anstelle der Variablen name
der Wert innerhalb dieser Variablen ersetzt. Die Ganzzahl 100
wird Elon
zugewiesen. Elon
wird zu einem Variablennamen, und wenn Sie ihn drucken, erhalten Sie 100
als Ausgabe.
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.
LinkedInVerwandter Artikel - Python String
- Entfernen Kommas aus String in Python
- Wie man prüft, ob eine Zeichenkette auf pythonische Weise leer ist
- Wie man Leerzeichen in einem String in Python entfernt
- Wie man in Python Zahlen aus einer Zeichenkette extrahiert
- Wie man in Python String in datetime konvertiert