我正在尝试以文本格式打印给出的条件,而不是打印条件的最终值。下面是示例代码,可以提供更好的说明。
a = 5
b = 10
condition = a>b and a+b<10
if condition:
print"successful"
else:
print"unsuccessful"
print("The conditions applied was",condition)
在这里,我希望系统打印"a>b and a+b<10"
,但它会打印"False"
,因为条件的最终值为False
答案 0 :(得分:1)
可以,但我不推荐,
以字符串形式存储条件(用于打印部分),然后在实际需要该值时使用eval
。像这样:
a = 5
b = 10
condition = 'a>b and a+b<10'
if eval(condition):
print("successful")
else:
print("unsuccessful")
print("The conditions applied was",condition)
输出:
unsuccessful
The conditions applied was a>b and a+b<10
再次:使用评估是一种错误且有害的编程习惯(一些解释,为什么可以here以及在网络上的许多其他地方找到>
答案 1 :(得分:0)
自从您更新评论中的问题后,说
我想将结果/输出与条件(“ a> b和a + b <10”)一起保存,以便以后可以看到条件给出了什么结果。
我认为您应该使用lambda和inspect模块。
a = 5
b = 10
condition = lambda x, y: (x+y) > 10
if condition(a, b):
print('condition passed !')
else:
print('condition failed !')
如果要打印条件,可以看到它在做...
from inspect import getsourcelines
print("The condition was...")
print(getsourcelines(condition)[0])