use*_*418 4 python string if-statement conditional-statements
我想这样做:
a = "1 or 0"
if (a): Print "true"
Run Code Online (Sandbox Code Playgroud)
所以我可以使用字符串作为if语句的条件.这可能吗?
Ble*_*der 10
这是可能的,但不要这样做:
a = '1 or 0'
if eval(a):
print 'a is True'
Run Code Online (Sandbox Code Playgroud)
eval()很难调试,这里没有任何好处,如果允许任意用户输入(例如a = "__import__('os').system('rm -Rf /')"),很容易被利用.
字符串总是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]:
Run Code Online (Sandbox Code Playgroud)
因此,尝试传递一些计算为布尔值的真实条件。
| 归档时间: |
|
| 查看次数: |
4841 次 |
| 最近记录: |