Невозможно выполнить оператор if в команде exe c в python - PullRequest
0 голосов
/ 03 апреля 2020
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

Так что выше код я хочу выполнить команду exec, я не могу выполнить команду exe c в python, один код строки, который я могу запустить, но if statement, как указано выше, я не могу это сделать ..

1 Ответ

1 голос
/ 05 апреля 2020

Если ваша строка состоит из нескольких строк, вам нужно использовать тройные кавычки, например:

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

Или одинарные тройные кавычки:

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

Также строка f не поддерживается в Python2 и ваш код может быть обработан без него.

Вот код:

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)
...