python - Python 中 print()[] 的含义是什么?

标签 python python-2.7

在浏览codegolf时,我发现this :

g=input();print("Approved","Summer School","Failed")[(g<7)+(g<3)]

我不明白 print() 之后的 [] 是什么意思……有什么解释吗?

最佳答案

>>> print("Approved","Summer School","Failed")[0]
Approved
>>> print("Approved","Summer School","Failed")[1]
Summer School
>>> print("Approved","Summer School","Failed")[2]
Failed

看到图案了吗?这只是简单的索引。

顺便说一句,我们总是知道(g<7)+(g<3)将是 >= 0 ( False + False ) 和 <= 2 (True + True)。

回想一下 boolint 的子类,那True == 1False == 0 (这就是为什么我们可以添加 bool s,就像上面所做的那样)。

最后,不言而喻,可以通过一组额外的括号轻松避免这种混淆:

print(("Approved","Summer School","Failed")[(g<7)+(g<3)])

关于python - Python 中 print()[] 的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17593972/

相关文章:

python - 在Python中对嵌套有序字典进行排序

python - 为什么 sqlite3 仍然使用 __conform__?

python - 替代 python 安装时出现 xvfbwrapper 导入错误

java - ImportError:运行时无法导入名称 HeaderParsingError 'psiturk-setup-example'

Python引用模型

python 美丽汤爬行 json

python - 如何在CPython源代码中找到[::-1](在python中为反向列表)的实现

python - 用 Pillow 保存在内存文件对象中

python - 如何从python中的递归函数返回值?

python SimpleHTTPRequestHandler 服务器在退出后将套接字留在 TIME_WAIT 状态