I am trying to do this:
a = "1 or 0"
if (a): Print "true"
So I can use a string as the condition of an if statement. Is this possible?
It's possible, but don't do it:
a = '1 or 0'
if eval(a):
print 'a is True'
eval() is hard to debug, offers no benefit here and is easily exploitable if you allow arbitrary user input (e.g. a = "__import__('os').system('rm -Rf /')").
You could combine the string "a == " with your input string and eval() it. You should do this carefully, because you are allowing arbitrary code to be executed.
A string will always be True for the if statement if it is not empty, so it is of no use to use it in the if statement.
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]:
So Try to pass some real condition that computes to be a boolean.
evalis for.eval.