5

私はこれをやろうとしています:

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

そのため、if ステートメントの条件として文字列を使用できます。これは可能ですか?

4

3 に答える 3

11

可能ですが、しないでください。

a = '1 or 0'

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

eval()デバッグが難しく、ここでは利点がなく、任意のユーザー入力を許可すると簡単に悪用できます (例: a = "__import__('os').system('rm -Rf /')")。

于 2013-05-05T07:31:04.460 に答える
1

文字列は常に statement 用である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]: 

したがって、ブール値として計算される実際の条件を渡してみてください。

于 2013-05-05T07:23:36.740 に答える