如何在函数或for循环中将字符串作为变量执行?

可以说我具有以下功能

def code_string(a):
    for i in range(a):
        exec('f=a+i')
        print(f)

当我使用以下命令运行它

code_string(3)

它给我以下错误

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-9c91de8067f3> in <module>()
----> 1 code_string(3)

<ipython-input-2-2ae9915b0a25> in code_string(a)
      2     for i in range(a):
      3         exec('f=a+i')
----> 4         print(f)

NameError: name 'f' is not defined

当我不在函数中运行它时

a=3
for i in range(a):
    exec('f=a+i')
    print(f)

它是如此完美

3
4
5

为什么会发生这种情况,我可以在python函数中执行字符串代码吗

注意:这只是一个演示示例,请不要指望我的代码像这个演示示例一样简单。我只是用它来演示问题。

wxp1818118 回答:如何在函数或for循环中将字符串作为变量执行?

您可以尝试以下方法:

def code_string(a):
    for i in range(a):
        exec('f=a+i',locals(),globals())
        print(f)
本文链接:https://www.f2er.com/3132627.html

大家都在问