我想要实现这个功能:
a = "1 or 0"
if (a): Print "true"
我可以使用字符串作为if语句的条件吗?这是可能的吗?
我想要实现这个功能:
a = "1 or 0"
if (a): Print "true"
我可以使用字符串作为if语句的条件吗?这是可能的吗?
这是可能的,但不要这样做:
a = '1 or 0'
if eval(a):
print 'a is True'
eval()
很难调试,在这里没有任何优点,而且如果您允许任意用户输入的话,它很容易被利用(例如:a = "__import__('os').system('rm -Rf /')"
)。
如果字符串不为空,if
语句中的字符串将始终为True
,因此在if
语句中使用它是没有用的。
In [12]: my_str = 'a=a'
In [13]: if my_str:
....: print True
....: else:
....: print False
....:
True
In [14]: new_str = ''
In [15]: if new_str:
....: print True
....: else:
....: print False
....:
False
In [16]:
尝试传递一些计算结果为布尔值的实际条件。
eval
的作用。 - Blender