<分区>
有没有关于以下Python条件语法的解释?
>>> a = 10
>>> s = (0, 1)[a<10]
>>> print s
0
>>> a = -10
>>> s = (0, 1)[a<10]
>>> print s
1
它似乎像 if
语句一样工作。为什么会这样?
标签 python
<分区>
有没有关于以下Python条件语法的解释?
>>> a = 10
>>> s = (0, 1)[a<10]
>>> print s
0
>>> a = -10
>>> s = (0, 1)[a<10]
>>> print s
1
它似乎像 if
语句一样工作。为什么会这样?
最佳答案
>>> issubclass(bool, int)
True
换句话说,False
等于 0,并且 True
等于 1:
>>> False == 0
True
>>> True == 1
True
因此它们可以用作索引:
>>> ['No', 'Yes'][False] # ['No', 'Yes'][0]
'No'
>>> ['No', 'Yes'][True] # ['No', 'Yes'][1]
'Yes'
表达式a < 10
产量 True
或 False
基于 a
的值.所以(0, 1)[a < 10]
将产生 0
或 1
相应地。
关于python - 带圆括号和方括号的特殊条件语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31783967/
相关文章:
python - 如何使用python将表单数据插入MYSQL
python - 如何使用 pyqt4 将不同的背景颜色应用于树小部件中父文本的每一行
python - Pylons - 处理 GET 和 POST 请求
python - sqlalchemy:无需密码即可连接到 MySQL
python - 在 IPython Notebook 中绘制多个子图
python - 如何从 XML xpath 搜索生成的列表中的子字符串中去除字符?
python - Spark 引发 OutOfMemoryError
python - PyCharm 使用 Anaconda python.exe 和模块失败 - ModuleNotFoundError : No module named 'PySide'