Converti una stringa in nome variabile in Python
-
Converti stringa in nome variabile usando
globals()
elocals()
in Python -
Converti stringa in nome variabile usando
exec()
in Python
In Python, ci sono vari modi in cui possiamo convertire un valore stringa in un nome variabile. In questo articolo, discuteremo vari modi in cui possiamo ottenere questo risultato.
Alcune persone potrebbero volerlo fare per definire dinamicamente un nome di variabile mentre il programma Python è in esecuzione. La conversione di una stringa in un nome di variabile utilizzando i metodi mostrati di seguito non è consigliata durante lo sviluppo di software pronto per la produzione perché ciò può causare alcuni problemi. Sì, è possibile ottenere questo risultato, ma si prega di essere cauti mentre lo si fa.
Converti stringa in nome variabile usando globals()
e locals()
in Python
globals()
La funzione globals()
in Python restituisce il dizionario della tabella dei simboli globale corrente. Una tabella di simboli globale memorizza tutte le informazioni relative all’ambito globale del programma, a cui è possibile accedere utilizzando la funzione globals()
.
user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))
Produzione:
La prima cosa che stiamo facendo qui è prendere l’input dell’utente usando la funzione input()
e passando una stringa Inserisci una stringa per il nome di una variabile:
al suo interno. Quindi qualunque valore un utente inserirà, quel valore verrà memorizzato all’interno della variabile user_input
. Qui, ci aspettiamo che l’utente inserisca apple
come un valore di stringa che verrà poi memorizzato all’interno di user_input
. Se l’utente inserisce un valore diverso da apple
, il programma eseguirà un errore come NameError: name 'variable' is not defined
. È perché stampiamo anche il valore di apple
e poi ne controlliamo il tipo più avanti nel nostro codice.
Se l’utente ha inserito il valore corretto, possiamo modificare il dizionario globale usando globals()
per modificare il dizionario globale e assegnare un qualsiasi valore alla variabile apple
. Qui, abbiamo assegnato 50
alla variabile apple
.
locals()
La funzione locals()
in Python restituisce il dizionario della tabella dei simboli locale corrente. È possibile accedere a una tabella di simboli locale con l’aiuto della funzione locals()
. La funzione locals()
funziona quasi allo stesso modo della funzione globals()
. L’unica differenza è che locals()
può accedere alla tabella dei simboli locale, e globals()
può accedere alla tabella dei simboli globale e restituisce un dizionario.
user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))
Produzione:
Anche questo codice funziona allo stesso modo di quello di globals()
. L’unica differenza è che qui abbiamo usato la funzione locals()
.
Converti stringa in nome variabile usando exec()
in Python
Un altro modo per fare questa cosa è usare la funzione exec()
in Python. La funzione exec()
è usata per eseguire dinamicamente il programma Python. Abbiamo una variabile name
all’interno della quale memorizziamo un valore di stringa Elon
.
name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)
Produzione:
100
All’interno della funzione exec()
, abbiamo %s
e %d
, usati rispettivamente come segnaposto per il valore della stringa e il valore decimale. Significa che assegniamo un valore intero a una stringa con l’aiuto dell’operatore di assegnazione =
. Sia %s
che %d
sono racchiusi tra le virgolette =
. Quindi abbiamo una parentesi all’interno della quale abbiamo 2 cose, la prima è la variabile che abbiamo creato cioè name
, che contiene il valore Elon
, e la seconda abbiamo un intero 100
.
Qui, invece della variabile name
, verrà sostituito il valore all’interno di quella variabile. L’intero 100
verrà assegnato a Elon
. Elon
diventa il nome di una variabile e, se lo stampi, otterrai 100
come output.
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.
LinkedInArticolo correlato - Python String
- Come controllare una stringa è vuota in modo pitonico
- Come rimuovere gli spazi bianchi in una stringa in Python
- Estrai numeri da una stringa in Python
- Come convertire una stringa in datario in Python
- Come convertire una stringa in minuscola in Python 2 e 3