Python - 在if语句中使用string作为条件

时间:2013-05-05 07:20:36

标签: python string if-statement conditional-statements

我正在尝试这样做:

a = "1 or 0"
if (a): Print "true"

所以我可以使用字符串作为if语句的条件。这可能吗?

3 个答案:

答案 0 :(得分:9)

这是可能的,但不要这样做:

a = '1 or 0'

if eval(a):
    print 'a is True'

eval()很难调试,这里没有任何好处,并且如果您允许任意用户输入(例如a = "__import__('os').system('rm -Rf /')"),则很容易被利用。

答案 1 :(得分:3)

您可以将字符串“a ==”与输入字符串和eval()组合在一起。您应该仔细执行此操作,因为您允许执行任意代码。

答案 2 :(得分:2)

True语句if的字符串始终为if it is not empty,因此在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]: 

因此,尝试传递一些计算为布尔值的实际条件。