在 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() 函式從使用者那裡獲取輸入,並在其中傳遞一個字串 Enter a string for a variable name:。然後,無論使用者輸入什麼值,該值都將儲存在變數 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 中將字串轉換為位元組 bytes