在 Python 中将字符串转换为变量名

  1. 在 Python 中使用 globals()locals() 将字符串转换为变量名
  2. 在 Python 中使用 exec() 将字符串转换为变量名

在 Python 中,可以通过多种方法将字符串值转换为变量的名称。在本文中,我们将讨论实现此目标的各种方法。

有些人可能想这样做,以便在执行 Python 程序时动态定义变量名。在开发可用于生产环境的软件时,建议不要使用以下所示的方式将字符串转换为变量名,因为这可能会引起一些问题。是的,可以实现这一点,但是在执行此操作时请务必谨慎。

在 Python 中使用 globals()locals() 将字符串转换为变量名

globals()

Python 中的 globals() 函数返回当前全局符号表的字典。全局符号表存储与程序的全局范围有关的所有信息,可以使用 globals() 函数进行访问。

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

输出:

使用 globals()函数将字符串转换为变量名

我们在这里要做的第一件事是使用 input() 函数从用户那里获取输入,并在其中传递一个字符串输入一个变量名字符串:。然后,无论用户输入什么值,该值都将存储在变量 user_input 中。在这里,我们希望用户输入 apple 作为字符串值,然后将其存储在 user_input 中。如果用户输入的内容不是 apple,则程序将通过 NameError: name 'variable' is not defined 的错误提示。这是因为我们也在打印 apple 的值,然后稍后在我们的代码中检查它的类型。

如果用户输入了正确的值,我们可以使用 globals() 修改全局字典,以修改全局字典,并将任何值分配给变量 apple。在这里,我们为变量 apple 分配了 50

locals()

Python 中的 locals() 函数返回当前本地符号表的字典。可以通过 locals() 函数访问本地符号表。locals() 函数的工作方式几乎与 globals() 函数相同。唯一的区别是 locals() 可以访问本地符号表,而 globals() 可以访问全局符号表并返回字典。

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

输出:

使用 globals()函数将字符串转换为变量名

此代码也与 globals() 相同。唯一的区别是我们在这里使用了 locals() 函数。

在 Python 中使用 exec() 将字符串转换为变量名

完成此操作的另一种方法是在 Python 中使用 exec() 函数。exec() 函数用于动态执行 Python 程序。我们有一个变量名称,其中存储了一个字符串值 Elon

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

输出:

100

exec() 函数内部,我们有%s%d 分别用作字符串值和十进制值的占位符。这意味着我们将在赋值运算符 = 的帮助下为字符串赋一个整数值。%s%d 都包含在引号""内。然后我们有一个括号,里面有 2 个东西,第一个是我们创建的变量,即 name,其中包含值 Elon,第二个是整数 100

在这里,将代替该变量中的值代替 name 变量。整数 100 将分配给 ElonElon 成为变量名,如果你打印它,将得到 100 作为输出。

相关文章 - Python String

  • 如何在 Python 中基于多个定界符分割字符串
  • Python 将浮点数转换为字符串
  • 相关文章 - Python Variable

  • 在 Python 中将字符串转换为十六进制
  • 在 Python 中转换字符串为双精度数