Python 3.x 无法在python中的exec命令中执行if语句

Python 3.x 无法在python中的exec命令中执行if语句,python-3.x,exec,Python 3.x,Exec,输出 “1-获得了真实的表达式值” 一百 因此,上面的代码我想在exec命令中运行,我无法在python中的exec命令中执行,一行代码我可以运行,但是if语句如上所述,我无法执行。当字符串有多行时,需要使用如下三重引号: var1 = 100 isTrue=[] isFalse=[] run_cmd = f'if var1: print "1 - Got a true expression value" print var1

输出

“1-获得了真实的表达式值”
一百


因此,上面的代码我想在
exec
命令中运行,我无法在python中的exec命令中执行,一行代码我可以运行,但是
if语句
如上所述,我无法执行。

当字符串有多行时,需要使用如下三重引号:

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)
或单引号或三引号:

variable = """
x = 10
print(x)
"""
此外,Python2中不支持f字符串,您的代码可以在没有它的情况下处理

代码如下:

variable = '''
x = 10
print(x)
'''
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)