无法在 python 的 exec 命令中执行 if 语句

Unable to execute a if statement in exec command in python

var1 = 100   
isTrue=[]
isFalse=[] 
run_cmd = f'if var1:
              print "1 - Got a true expression value"
              print var1
              isTrue.append(var1)
           else:
              print "1 - Got a false expression value"
              print var1
              isFalse.append(var1)'
exec(run_cmd)

输出

"1 - Got a true expression value"
100

所以上面的代码我想 运行 在 exec 命令中,我无法在 python 中的 exec 命令中执行,我可以 运行 ,但是 if statement 如上所述我无法这样做..

当您的字符串有多行时,您需要像这样使用三引号:

variable = """
x = 10
print(x)
"""

或单三引号:

variable = '''
x = 10
print(x)
'''

此外 Python2 不支持 f 字符串,没有它也可以处理您的代码。

代码如下:

var1 = 100   
isTrue=[]
isFalse=[] 
run_cmd = '''
if var1:
    print "1 - Got a true expression value"
    print var1
    isTrue.append(var1)
else:
    print "1 - Got a false expression value"
    print var1
    isFalse.append(var1)
'''
exec(run_cmd)