在浏览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
)。
回想一下 bool
是 int
的子类,那True == 1
和 False == 0
(这就是为什么我们可以添加 bool
s,就像上面所做的那样)。
最后,不言而喻,可以通过一组额外的括号轻松避免这种混淆:
print(("Approved","Summer School","Failed")[(g<7)+(g<3)])
关于python - Python 中 print()[] 的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17593972/