浏览codegolf时,我发现了这一点:
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)])
| 归档时间: | 
 | 
| 查看次数: | 1056 次 | 
| 最近记录: |