【问题标题】:Unable to execute a if statement in exec command in python无法在python的exec命令中执行if语句
【发布时间】:2020-04-03 12:01:33
【问题描述】:
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 - 得到一个真正的表达式值”
100

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

【问题讨论】:

    标签: python-3.x exec


    【解决方案1】:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-22
      • 2023-03-06
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 2020-01-01
      • 2021-04-18
      相关资源
      最近更新 更多