Python中的print()[]是什么意思?

Mat*_*rlé 3 python python-2.7

浏览codegolf时,我发现了这一点

g=input();print("Approved","Summer School","Failed")[(g<7)+(g<3)]
Run Code Online (Sandbox Code Playgroud)

我不明白print()之后[]的含义是什么?

ars*_*jii 6

>>> print("Approved","Summer School","Failed")[0]
Approved
>>> print("Approved","Summer School","Failed")[1]
Summer School
>>> print("Approved","Summer School","Failed")[2]
Failed
Run Code Online (Sandbox Code Playgroud)

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

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

回想这bool是和的子类intTrue == 1并且False == 0(这就是我们可以添加的原因bool S,如上面完成)。

最后,不用多说,可以很容易避免这种混淆:

print(("Approved","Summer School","Failed")[(g<7)+(g<3)])
Run Code Online (Sandbox Code Playgroud)