我撰寫了代碼,使用 for 回圈創建變數和賦值。
nums = [0,1,2,3]
names = ["aa","bb","cc","dd"]
for num, name in zip(nums, names):
globals()["df" str(num)]= names[num]
print(exec(f'df{num}'))
但我得到的結果是無
#result:
None
None
None
None
但即使我嘗試通過以下修改更改代碼,仍然得到相同
nums = [0,1,2,3]
names = ["aa","bb","cc","dd"]
for num, name in zip(nums, names):
globals()["df" str(num)]= name
print(exec(f'df{num}'))
有人可以幫我得到正確的答案嗎?
注意:即使我使用 exec 函式代替名稱(例如: exec(f'{names[num]}') 然后我收到名稱錯誤。
uj5u.com熱心網友回復:
考慮到execreturn None,我不明白你為什么會期待。
嘗試稍微更改您的代碼以查看它是否正常作業,例如:
nums = [0,1,2,3]
names = ["aa","bb","cc","dd"]
for num, name in zip(nums, names):
globals()["df" str(num)]= name
exec(f'print(df{num})')
輸出:
aa
bb
cc
dd
更新:如果你想退貨,你必須使用eval:
nums = [0,1,2,3]
names = ["aa","bb","cc","dd"]
for num, name in zip(nums, names):
globals()["df" str(num)]= name
print(eval(f'df{num}'))
輸出:
aa
bb
cc
dd
uj5u.com熱心網友回復:
我認為你在你的 for 回圈中放錯了列印,你應該執行你的變數的列印,只執行變數不會回傳也不會列印任何東西。這應該有效:
nums = [0, 1, 2, 3]
names = ["aa", "bb", "cc", "dd"]
for num, name in zip(nums, names):
globals()["df" str(num)] = name
exec(f"print(df{num})")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/462980.html
